Skip to content

List granted devices

GET
/integration/v1/organizations/{organization}/devices
curl --request GET \
--url 'https://api.elwids.xyz/api/integration/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/devices?page=1&per_page=25' \
--header 'Authorization: Bearer <token>'

Requires: devices:read

Rate limits: 240 a minute per address, 60 a minute per application

The devices granted to the application, ordered by creation. Current state, not a snapshot.

organization
required
string format: uuid

The organization UUID. A value that does not match returns 404.

page
integer
default: 1 >= 1 <= 100000

Page number.

per_page
integer
default: 25 >= 1 <= 100

Items per page.

A page of devices.

Media typeapplication/json
object
meta
required
object
current_page
required
integer
>= 1
last_page
required
integer
>= 1
total
required
integer
data
required
Array<object>
<= 100 items

A device granted to the application.

object
uuid
required
string format: uuid
code
required
string
name
required
string
lifecycle
required

Lifecycle state, for example registered, active, deactivated or archived.

string
presence
required

online, offline, unseen, or unknown when the runtime’s last online report is more than 20 seconds old. Presence is separate from data quality.

string
last_seen_at
required
string | null format: date-time

Example

{
"data": [
{
"uuid": "3f8a1c2e-5b6d-4e7f-8a9b-0c1d2e3f4a5b",
"code": "tracker-017",
"name": "Herd tracker 17",
"lifecycle": "active",
"presence": "online",
"last_seen_at": "2026-10-12T08:14:52.000000Z"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"total": 1
}
}
Cache-Control
required
string
/(^|[ ,])no-store([ ,]|$)/

Responses to authenticated integration requests are never cached. The header also carries private.

Example
no-store, private

No valid credentials: no session (first-party API), or a missing, invalid, expired or revoked application token (integration API).

Media typeapplication/json

The body of most error responses.

object
message
required
string

Example generated

{
"message": "example"
}

The caller is not allowed: not a member of the organization, missing a tenant or platform permission, or (integration API) an ability not granted on both the application and the token.

Media typeapplication/json

The body of most error responses.

object
message
required
string

Example generated

{
"message": "example"
}

Not found: an unknown organization or resource, a resource in another organization or not granted to the application, or a malformed identifier (the route does not match).

Media typeapplication/json

The body of most error responses.

object
message
required
string

Example generated

{
"message": "example"
}

The input failed validation.

Media typeapplication/json

422 for input that failed validation.

object
message
required

The first error, followed by a count of the others.

string
errors
required

Messages per field, keyed by the field’s dotted path. A rejection by the device runtime appears under runtime.

object
runtime
Array<string>
key
additional properties
Array<string>

Example generated

{
"message": "example",
"errors": {
"runtime": [
"example"
]
}
}

A rate limit was reached; see x-rate-limits on the operation.

Media typeapplication/json

The body of most error responses.

object
message
required
string

Example generated

{
"message": "example"
}
Retry-After
required
integer

Seconds to wait before retrying.

Report a problem with this page