Skip to main content

List Devices

Retrieve a paginated list of devices with optional filtering and sorting.

Query Parameters

page_size
integer
default:"25"
Number of results per page
bookmark
string
Pagination token from previous response
sort_by
string
Field name to sort by (e.g., creation_timestamp, id, status)
sort_mode
string
Sort direction: asc or desc
filter
string
Filter expression. Supports filtering by:
  • id - Device identifier
  • dms_owner - DMS identifier
  • status - Device status
  • tags - Device tags
  • creation_timestamp - Creation time
See filtering examples below.

Response

next
string
Bookmark for the next page (empty if no more results)
list
array
Array of device objects
id
string
Device identifier
tags
array
Device tags
status
string
Device status (NO_IDENTITY, ACTIVE, RENEWAL_WINDOW, ABOUT_TO_EXPIRE, EXPIRED, REVOKED, DECOMMISSIONED)
icon
string
Device icon name
icon_color
string
Icon color (hex format)
creation_timestamp
string
ISO 8601 creation timestamp
metadata
object
Device metadata (key-value pairs)
dms_owner
string
DMS identifier that manages this device
identity
object
Active identity slot information
slots
object
All identity slots
events
object
Device events

Example Request

curl -X GET "https://your-instance.com/api/devmanager/v1/devices?page_size=50&sort_by=creation_timestamp&sort_mode=desc" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Filtering Examples

# Filter by DMS
curl "https://your-instance.com/api/devmanager/v1/devices?filter=dms_owner[eq]:dms-production" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

# Filter by tag (case-insensitive)
curl "https://your-instance.com/api/devmanager/v1/devices?filter=tags[contains_ic]:sensor" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

# Filter by status
curl "https://your-instance.com/api/devmanager/v1/devices?filter=status[eq]:ACTIVE" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

# Multiple filters: active devices with 'production' tag
curl "https://your-instance.com/api/devmanager/v1/devices?filter=status[eq]:ACTIVE&filter=tags[contains]:production" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

# Devices created after a specific date
curl "https://your-instance.com/api/devmanager/v1/devices?filter=creation_timestamp[af]:2024-01-01T00:00:00Z" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Create Device

Create a new device in the system.

Request Body

id
string
required
Unique device identifier
alias
string
Device alias or friendly name
tags
array
Array of string tags for categorization
metadata
object
Key-value pairs for custom device metadata
dms_id
string
DMS identifier that will manage this device
icon
string
Icon name for UI display
icon_color
string
Icon color in hex format (e.g., #FF5733)

Response

Returns the created device object with all fields populated.

Example Request

curl -X POST "https://your-instance.com/api/devmanager/v1/devices" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "device-12345",
    "alias": "Warehouse Temperature Sensor",
    "tags": ["sensor", "temperature", "warehouse-a"],
    "metadata": {
      "location": "warehouse-a",
      "floor": "2",
      "zone": "storage"
    },
    "dms_id": "dms-production",
    "icon": "thermometer",
    "icon_color": "#FF5733"
  }'

Get Device by ID

Retrieve a specific device by its identifier.

Path Parameters

id
string
required
Device identifier

Response

Returns the device object with all fields.

Example Request

curl -X GET "https://your-instance.com/api/devmanager/v1/devices/device-12345" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Delete Device

Permanently delete a device from the system.

Path Parameters

id
string
required
Device identifier

Response

Returns 204 No Content on success.

Example Request

curl -X DELETE "https://your-instance.com/api/devmanager/v1/devices/device-12345" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Update Identity Slot

Update the device’s identity slot configuration.

Path Parameters

id
string
required
Device identifier

Request Body

status
string
Identity slot status
active_version
integer
Active version number
type
string
Identity type
versions
object
Version-specific identity information

Response

Returns the updated device object.

Example Request

curl -X PUT "https://your-instance.com/api/devmanager/v1/devices/device-12345/idslot" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "ACTIVE",
    "active_version": 2,
    "type": "X509"
  }'

Update Device Metadata

Replace all device metadata with new values.

Path Parameters

id
string
required
Device identifier

Request Body

patches
array
required
Array of JSON Patch operations
op
string
required
Operation type: add, remove, replace, move, copy, test
path
string
required
JSON path to the field (e.g., /location, /sensors/0)
value
any
Value for the operation (not used with remove)
from
string
Source path for move and copy operations

Response

Returns the updated device object.

Example Request

curl -X PUT "https://your-instance.com/api/devmanager/v1/devices/device-12345/metadata" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "patches": [
      {
        "op": "replace",
        "path": "/location",
        "value": "warehouse-b"
      },
      {
        "op": "add",
        "path": "/firmware_version",
        "value": "2.1.0"
      }
    ]
  }'

Patch Device Metadata

Partially update device metadata using JSON Patch operations.

Path Parameters

id
string
required
Device identifier

Request Body

Same as Update Device Metadata.

Response

Returns the updated device object.

Example Request

curl -X PATCH "https://your-instance.com/api/devmanager/v1/devices/device-12345/metadata" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "patches": [
      {
        "op": "add",
        "path": "/last_maintenance",
        "value": "2026-03-09T10:00:00Z"
      }
    ]
  }'

Decommission Device

Decommission a device, setting its status to DECOMMISSIONED.

Path Parameters

id
string
required
Device identifier

Response

Returns 204 No Content on success.

Example Request

curl -X DELETE "https://your-instance.com/api/devmanager/v1/devices/device-12345/decommission" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

List Devices by DMS

Retrieve devices managed by a specific DMS.

Path Parameters

id
string
required
DMS identifier

Query Parameters

Supports the same query parameters as List Devices:
  • page_size
  • bookmark
  • sort_by
  • sort_mode
  • filter

Response

Returns the same response structure as List Devices.

Example Request

curl -X GET "https://your-instance.com/api/devmanager/v1/devices/dms/dms-production?filter=status[eq]:ACTIVE" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Build docs developers (and LLMs) love