Skip to content

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

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).

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).