Skip to content

API Reference

This reference documents every module of the backend: each endpoint with its parameters, request and response schemas, worked examples, errors and rate limits — plus the events a module emits. It is generated from the backend's route definitions, so it cannot drift from the code. For a guided introduction, start with the Application Developer Guide.

Conventions

  • All REST endpoints live under https://<host>/api/v1/….
  • Requests are authenticated with a DPoP-bound access token: Authorization: DPoP <accessToken> plus a signed proof per request — the full flow is in Authentication & Sessions. Routes reachable without a token show no implicit 401 entry in their error table.
  • Resources are identified by CRNs (crn#tenant:….device:…) — opaque handles; pass them back unchanged.
  • {deviceId} path parameters accept the device id or the device's IMEI.
  • Property ids are canonical hex strings (0x0800); only websocket payloads carry decimal propIds.
  • Timestamps are UTC epoch milliseconds.
  • Value encodings follow the property type: INT64/UINT64 travel as decimal strings, BIN/UUID as base64.
  • List endpoints fold nested resources into one response via depth; optional fields are requested with expand.

Errors

Each route lists its declared errors with status, body shape and example. Four answers are implicit on (almost) every route: 400 (validation failed, with details), 401 (missing or invalid token/proof), 429 (rate limited — the affected routes state their limits, and the response carries a Retry-After header), and 500 (server-side failure, safe to retry).

Events

State changes are emitted as events — { "type", "resourceIdentifier", "payload" } — documented in the Events section of the emitting module's page and delivered live over the websocket.

ModuleEndpointsEvents
IAM5740
Audit11
Billing135
Register57
Flake1011
Meta53
Devicegroup85
Functions128
Metaschema63
Email19
Health2
Socket1
Userdata72
Data52
Schema53
Codebook95
Notification43
Geolocation64
Temporal5
Updates1