Resolve a stored event to a location fix
const url = 'https://api.elwids.xyz/api/integration/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/devices/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/locations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0?version_uuid=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';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/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/locations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0?version_uuid=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0' \ --header 'Authorization: Bearer <token>'Requires: telemetry:read
Rate limits: 240 a minute per address, 60 a minute per application
Resolves one stored telemetry event through the selected binding (version_uuid from the bindings list) with the same resolver as geofencing. data is the device runtime’s location-fix.v1 output, unchanged. 404 when the binding or the event is not found in retention; 422 when the runtime rejects the read (under errors.runtime); 503 when it is unavailable.
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.
A value that does not match returns 404.
A value that does not match returns 404.
Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”The fix resolved through the selected binding.
object
object
Example
{ "version_uuid": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e", "data": { "schema_version": "location-fix.v1", "binding_uuid": "00000000-0000-4000-8000-000000000001", "binding_revision": 1, "event_id": "00000000-0000-4000-8000-000000000065", "organization_uuid": "00000000-0000-4000-8000-000000000002", "device_uuid": "00000000-0000-4000-8000-000000000003", "configuration_uuid": "00000000-0000-4000-8000-000000000004", "generation": 1, "evaluated_at": "2026-09-25T00:00:32Z", "observed_at": "2026-09-25T00:00:30Z", "received_at": "2026-09-25T00:00:31Z", "timestamp_source": "source", "historical": false, "status": "valid", "reason": "eligible", "live_eligible": true, "point": { "latitude": 51, "longitude": -114, "accuracy_metres": 5 } }}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.
The device runtime is not configured, unavailable, or could not complete the request.
The body of most error responses.
object
Example generated
{ "message": "example"}