List alerts on granted devices
const url = 'https://api.elwids.xyz/api/integration/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/alerts?condition=active&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/alerts?condition=active&page=1&per_page=25' \ --header 'Authorization: Bearer <token>'Requires: alerts:read
Rate limits: 240 a minute per address, 60 a minute per application
Alert episodes whose workflow is bound to a granted device, ordered by creation. Current state, not a snapshot; build a projection with the event feed.
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 alerts.
object
object
A snapshot of one alert episode. The same object is the data of the alert.*.v1 events.
object
Why the alert’s workflow stopped evaluating, for example binding_changed.
Example
{ "data": [ { "uuid": "7c9e2a41-1d3b-4f5e-8a6c-2b4d6f8a0c1e", "episode": 3, "condition": "active", "activated_at": "2026-10-12T07:58:10.000000Z", "cleared_at": null, "acknowledged_at": null, "workflow_uuid": "5a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d", "workflow_name": "North paddock — Herd tracker 17", "device_uuid": "3f8a1c2e-5b6d-4e7f-8a9b-0c1d2e3f4a5b", "execution_stopped_reason": null } ], "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.