Report fleet state
A heartbeat on devices' behalf. Devices are upserted on `(app, deviceId)` and appear in the fleet dashboard, adoption charts and live feed exactly as if they had checked in themselves. Up to 500 devices per call.
A heartbeat on devices' behalf. Devices are upserted on
(app, deviceId) and appear in the fleet dashboard, adoption
charts and live feed exactly as if they had checked in themselves.
Up to 500 devices per call.
Authorization
bearerAuth Mint keys from the dashboard (API keys). Shown once, stored hashed.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
App ref or id
1 <= items <= 500Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/fleet/report" \ -H "Content-Type: application/json" \ -d '{ "app": "qsxsicotpbmtf8ag", "devices": [ { "deviceId": "router-0042", "version": "1.4.0", "platform": "linux", "arch": "aarch64", "labels": { "customerRef": "acme-42", "siteRef": "blr-dc1" } } ] }'{ "app": "string", "received": 0}{ "error": "Unknown app"}{ "error": "Unknown app"}{ "error": "Unknown app"}List apps GET
Your organization's apps with refs and channels.
Plan an update wave POST
One decision per device, using the exact same rollout logic as `GET /u/`: version comparison, sticky staged-rollout cohorts with fall-through, artifact matching and channel policy. Up to 500 devices per call, one rate-limit hit. `dryRun: true` plans without writing telemetry (no device upserts, no check-ins).