List granted devices
const url = 'https://api.elwids.xyz/api/integration/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/devices?page=1&per_page=25';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The organization UUID. A value that does not match returns 404.
Query Parameters
Section titled “Query Parameters”Page number.
Items per page.
Responses
Section titled “Responses”A page of devices.
object
object
A device granted to the application.
object
Lifecycle state, for example registered, active, deactivated or archived.
online, offline, unseen, or unknown when the runtime’s last online report is more than 20 seconds old. Presence is separate from data quality.
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 }}Headers
Section titled “Headers”Responses to authenticated integration requests are never cached. The header also carries private.
Example
no-store, privateNo valid credentials: no session (first-party API), or a missing, invalid, expired or revoked application token (integration API).
The body of most error responses.
object
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.
The body of most error responses.
object
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).
The body of most error responses.
object
Example generated
{ "message": "example"}The input failed validation.
422 for input that failed validation.
object
The first error, followed by a count of the others.
Messages per field, keyed by the field’s dotted path. A rejection by the device runtime appears under runtime.
object
Example generated
{ "message": "example", "errors": { "runtime": [ "example" ] }}A rate limit was reached; see x-rate-limits on the operation.
The body of most error responses.
object
Example generated
{ "message": "example"}Headers
Section titled “Headers”Seconds to wait before retrying.