List geofences with granted devices
const url = 'https://api.elwids.xyz/api/integration/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/geofences';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/geofences \ --header 'Authorization: Bearer <token>'Requires: geofences:read
Rate limits: 240 a minute per address, 60 a minute per application
Geofences that have at least one granted device assigned, ordered by name, each with only the granted devices’ assignments. Not paginated.
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.
Responses
Section titled “Responses”The geofences.
object
A geofence, with only the assignments of devices granted to the application.
object
A GeoJSON Polygon with one ring of 4 to 257 positions.
object
One device assigned to the geofence, with its own workflow.
object
When a device counts as wandering outside the geofence.
object
pending, active, failed or removing.
object
The assignment workflow’s deployment status, for example pending, active or inactive.
Example
{ "data": [ { "uuid": "1e2d3c4b-5a69-4788-9a6b-5c4d3e2f1a0b", "name": "North paddock", "geometry": { "type": "Polygon", "coordinates": [ [ [ -114.01, 50.99 ], [ -113.99, 50.99 ], [ -113.99, 51.01 ], [ -114.01, 51.01 ], [ -114.01, 50.99 ] ] ] }, "revision": 2, "created_at": "2026-10-01T09:00:00.000000Z", "updated_at": "2026-10-12T08:00:00.000000Z", "assignments": [ { "uuid": "4c5d6e7f-8a9b-4c0d-9e1f-2a3b4c5d6e7f", "policy": { "outside_for_seconds": 60, "max_gap_seconds": 45, "minimum_samples": 2, "uncertainty_metres": 2 }, "desired_geofence_revision": 2, "applied_geofence_revision": 2, "status": "active", "diagnostic": null, "device": { "uuid": "3f8a1c2e-5b6d-4e7f-8a9b-0c1d2e3f4a5b", "name": "Herd tracker 17", "code": "tracker-017" }, "workflow_uuid": "5a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d", "deployment_status": "active" } ] } ]}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"}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.