Skip to content

Rollouts & Jobs

Rollouts apply a change to many devices in waves; jobs are the individual commands sent to each device.

Rollout endpoints are organization-scoped under /orgs/:orgId.

MethodPathDescription
GET/orgs/:orgId/rolloutsList rollouts
POST/orgs/:orgId/rolloutsCreate a rollout (starts as a draft)
POST/orgs/:orgId/rollouts/:id/startStart the rollout by dispatching the canary
POST/orgs/:orgId/rollouts/:id/advanceRelease the next wave
POST/orgs/:orgId/rollouts/:id/pausePause the rollout
POST/orgs/:orgId/rollouts/:id/cancelCancel the rollout
POST /orgs/:orgId/rollouts
Content-Type: application/json
{
"kind": "apply_config",
"name": "Q3 config refresh"
}

A rollout applies a config, a firmware update, a reboot, or a speed test. The request kind uses the values apply_config, firmware_update, reboot, and speedtest. You target a group or a set of devices, and choose how large the canary and each wave should be. Start the rollout, review the canary’s jobs, then advance wave by wave - pausing or cancelling if needed.

MethodPathDescription
GET/jobsList jobs
POST/jobsDispatch a job to a single device
GET /jobs?orgId=<uuid>&deviceId=<uuid>

Filter by organization and device. Each job reports a status of pending, running, succeeded, failed, or canceled, along with timing and any error.

POST /jobs
Content-Type: application/json
{
"deviceId": "<uuid>",
"kind": "reboot"
}

Common kind values are reboot, apply_config, firmware_update, and speedtest.