Skip to main content

List Devices

GET /clients/{client_id}/devices

Returns a paginated list of devices for a client organization. Use this endpoint for inventory tables, search, and filtering devices by a specific user.

Path Parameters

ParameterTypeDescription
client_idstring (uuid)Unique identifier for the client organization

Query Parameters

ParameterTypeDefaultDescription
qstring-Search filter against name (case-insensitive, partial match)
user_idstring (uuid)-Filter to devices associated with a specific user
statusstring-Filter by device status: active, inactive, pending
os_namestring-Filter by OS name (e.g. Windows, macOS, Linux)
sort_bystringlast_seen_atSort field: name, status, os_name, last_seen_at, installed_at, created_at
sort_orderstringdescSort direction: asc, desc
page_sizeinteger50Items per page. Max: 500
cursorstring-Pagination cursor from a previous response

Response

FieldTypeDescription
dataDevice[]Array of device objects
total_countintegerTotal number of devices matching the current filters
next_cursorstring | nullCursor to pass as cursor for the next page. null when on the last page.

Example Requests

List all devices

curl -X GET "https://api.example.com/v2/clients/aa7cf840-9ca9-46a3-9778-9015d6580d50/devices" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Devices for a specific user

curl -X GET "https://api.example.com/v2/clients/aa7cf840-9ca9-46a3-9778-9015d6580d50/devices?user_id=a1d97031-04e2-4907-a249-093f7436207b" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Filter active Windows devices

curl -X GET "https://api.example.com/v2/clients/aa7cf840-9ca9-46a3-9778-9015d6580d50/devices?status=active&os_name=Windows" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Search by name

curl -X GET "https://api.example.com/v2/clients/aa7cf840-9ca9-46a3-9778-9015d6580d50/devices?q=macbook" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Example Response

{
"data": [
{
"id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"name": "DESKTOP-DEV-ALICE",
"status": "active",
"serial_number": "5CG1234567",
"unique_key": "DESKTOP-DEV-ALICE-HWID-5CG1234567",
"os_name": "Windows",
"os_version": "10.0.19045",
"last_seen_at": "2026-02-24T21:23:53.082Z",
"installed_at": "2025-11-01T08:00:00.000Z",
"agent_version": "1.2.3",
"hardware": {
"manufacturer": "Dell Inc.",
"model": "XPS 15 9520",
"cpu_model": "Intel(R) Core(TM) i7-12700H",
"cpu_cores": 8,
"ram": 17179869184
},
"extensions": {
"chrome": {
"version": "1.11.0",
"installed": true,
"auto_update": true,
"last_activity_at": "2026-02-24T21:23:53.082Z"
},
"edge": {
"version": "1.11.0",
"installed": true,
"auto_update": false,
"last_activity_at": "2026-02-24T21:22:00.000Z"
},
"firefox": {
"version": null,
"installed": false,
"auto_update": false,
"last_activity_at": null
}
},
"created_at": "2025-11-01T08:00:00.000Z",
"updated_at": "2026-02-24T21:23:53.082Z"
},
{
"id": "a9b8c7d6-e5f4-3210-fedc-ba9876543210",
"name": "MacBook-Morgan",
"status": "active",
"serial_number": "C02G1234MD6T",
"unique_key": "MACBOOK-MORGAN-HWID-C02G1234MD6T",
"os_name": "macOS",
"os_version": "14.2.1",
"last_seen_at": "2026-02-24T20:00:00.000Z",
"installed_at": "2025-10-15T10:30:00.000Z",
"agent_version": "1.2.3",
"hardware": {
"manufacturer": "Apple Inc.",
"model": "MacBook Pro",
"cpu_model": "Apple M2 Pro",
"cpu_cores": 10,
"ram": 34359738368
},
"extensions": {
"chrome": {
"version": "1.11.0",
"installed": true,
"auto_update": true,
"last_activity_at": "2026-02-24T20:00:00.000Z"
},
"edge": {
"version": null,
"installed": false,
"auto_update": false,
"last_activity_at": null
},
"firefox": {
"version": null,
"installed": false,
"auto_update": false,
"last_activity_at": null
}
},
"created_at": "2025-10-15T10:30:00.000Z",
"updated_at": "2026-02-24T20:00:00.000Z"
}
],
"total_count": 84,
"next_cursor": "eyJsYXN0X2lkIjoiYTliOGM3ZDYifQ"
}

Empty Result

{
"data": [],
"total_count": 0,
"next_cursor": null
}

Pagination

This endpoint uses cursor-based pagination.

  1. Omit cursor on the first request
  2. If next_cursor is not null, pass its value as cursor on the next request
  3. Repeat until next_cursor is null

Error Responses

StatusDescription
400Invalid query parameters (e.g. unknown sort_by value)
401Authentication required
403Insufficient permissions for this client
404Client not found
500Server error