Endpoint reference
All paths are under /api/v1/workspaces/{ws} unless stated otherwise. Endpoints are available to a PAT when its scope is granted. A CSV import is all-or-nothing (dryRun: true for a preview).
| Area | Endpoints |
|---|---|
| Workspace | GET .../ (summary and effective rights), PATCH, DELETE (owner only, not a PAT) |
| Channels and Devices | channels, devices (CRUD, import CSV), connections (POST, POST .../disconnect), devices/{id}/key |
| Groups | groups, groups/tree, groups/{id}/children, groups/{id}/members?kind=device|channel, groups/import |
| Rules | rules (CRUD), rules/quick-store, rules/test, rules/{id}/run, rules/{id}/executions, rules/test-postgres, custom-nodes |
| Messages | messages, messages/aggregate, messages/names, messages/series, messages/value, messages/send, messages/export.csv, messages/stream (SSE) |
| Dashboards and Reports | dashboards, dashboards/{id}/share, dashboards/{id}/duplicate, reports, reports/{id}/run (POST), reports/{id}/runs, reports/{id}/runs/{runId}/download |
| Alarms | alarms (list), alarms/summary, alarms/export.csv, alarms/{id}/acknowledge, .../resolve, .../assign, .../comments, alarms/bulk, alarms/settings |
| Provisioning | device-types, bootstrap/profiles, bootstrap/configs |
| Status | presence/devices, devices/{id}/presence, devices/{id}/roster (gateway), devices/{id}/last-messages |
| Metric Catalog | metric-catalog (GET, POST), metric-catalog/defaults (POST), metric-catalog/{id} (PATCH, DELETE), metric-catalog/export |
| Config templates | device-config-templates (GET, POST), .../catalog, .../{id} (GET, PUT, DELETE), .../{id}/apply (POST {deviceIds, overwrite, channelId, form, push, dryRun}) |
| Device configuration | devices/{id}/device-config (GET; PUT a draft), .../device-config/push (POST), devices/{id}/command (POST), devices/{id}/command-result (GET) |
| Bulk output control | device-outputs/send (POST {deviceIds, output: "o1".."o4", state, seconds, channelId, form, dryRun}) |
| Rules on device | devices/{id}/device-rules (GET; PUT a draft), .../device-rules/push, .../confirm, .../cancel, .../rollback, .../current, .../check |
| Rule sets | device-rule-sets (CRUD), .../{id}/apply, .../{id}/bindings, device-rule-rollouts |
| Firmware OTA | firmware (GET; POST multipart), firmware/{id}, firmware/rollouts, .../{id}/pause|resume|cancel|retry|skip, devices/{id}/firmware |
Commands to a device
Section titled “Commands to a device”A single command (for example turning on an output) uses POST .../devices/{id}/command:
{ "channelId": "<channel-id>", "command": { "action": "output", "output": "o1", "state": true, "seconds": 30 } }The device.configure permission is required, and the destination must be followed by the device itself or its intermediary gateway. The device’s reply is read with GET .../devices/{id}/command-result (match the command’s id).
Public endpoints without sign-in
Section titled “Public endpoints without sign-in”| Endpoint | Purpose |
|---|---|
GET /api/v1/public/dashboards/{token} and .../data?widget=&source= |
A dashboard with a public link. The token acts as the credential, limited to 300 requests per minute per token. |
POST /api/bootstrap/{ws}/challenge and .../claim |
The Bootstrap protocol. |
GET /api/fw/{token}/{name} |
A signed firmware download (OTA). |