Deployment Manager
Manage and monitor computer vision models deployed on edge hardware.
About

Key Requirements:
Edge Services
Guides
Setting Up
Making Changes
Monitoring
HTTP API
Authentication
Device-scoped API keys
Cross-workspace isolation
Errors
List and Get Devices
List Devices
List every device registered in the workspace. Device-scoped API keys cannot call this endpoint and receive 403.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Devices in the workspace.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Get Device
Retrieve a single device by ID.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
The device.
online if a heartbeat was received within the last 5 minutes, offline if older, unknown if no heartbeat has ever been recorded.
Version of the Roboflow Device Manager running on the device.
Device type reported by the device (for example "jetson").
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Create a Device
Create a new device in the workspace and return the identifiers needed to install it. Device-scoped API keys cannot call this endpoint and receive 403. Requires the device:update scope.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Human-readable name for the device. For AI1 devices that are not duplicating an existing device and do not specify a workflow_id, the slugified name must contain at least one alphanumeric character, otherwise the request returns 400.
Device type. Common values are "ai1" and "edge"; any custom string is also accepted. AI1 creation requires the workspace to have the deviceAio feature enabled.
Optional initial workflow assignment. For AI1 devices it seeds the default aione stream.
Tags to attach to the device. Must be an array of non-empty strings; duplicates are removed and entries are trimmed.
Only valid for AI1 devices, and only if the workspace has the roboflowLiteMode feature.
Duplicate an existing device's config instead of generating a fresh one. The source device must belong to the same workspace.
Device created.
ID of the newly-created device.
Short-lived install token. Feed it into GET /devices/v2/{installId}/install.sh from the device to bootstrap RFDM.
Returned only for AI1 devices created in offline mode. Encodes the QR payload used by the offline RFDM provisioner.
Invalid query parameter or request body.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Notes on AI1 devices
Notes on duplication
Device Config
Get Workspace Default Config
Get Config
Returns the device's current runtime configuration. The response includes per-service environment_variables and any integration credentials embedded in the config; treat the body as sensitive.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
The current device configuration.
Full RFDM configuration document.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Config History
List prior configuration revisions for a device, newest first.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
Number of revisions to return. Clamped to 1-500.
10Opaque pagination cursor from a previous response. Pass back next_cursor to fetch the next page.
A page of revisions, newest first.
Invalid query parameter or request body.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Device Commands
Get Pending Commands
Returns the commands queued for a device, oldest first. The read does not remove commands: each one stays queued until the device acknowledges it. Commands queued more than 5 minutes ago expire and are not returned.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
The commands waiting for the device.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Queue a Command
Queue a command for a device. The device runs it on its next poll. This is the API equivalent of the actions you start from the web app.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
What the device should do. An action outside this list returns 400.
restartPossible values: The command was queued.
Command ID, used to match the device's acknowledgement.
cmd_abcInvalid query parameter or request body.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Device Streams
List Streams
List every stream configured on a device, including streams that are set up in the device config but have not reported in yet, which are returned with a provisioning status. Credentials are stripped from URLs and known credential-bearing object keys are removed from each stream's source.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
Streams configured on the device.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Get Stream
Retrieve a single stream on a device. A stream that exists only in the device config is returned as a provisioning entry. Returns 404 when the stream exists neither live nor in the config.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
Stream ID.
Set to status_events to attach the stream's 20 most recent lifecycle events from the last 7 days.
The stream.
Stream status reported by the streams service (for example "running", "stopped", or transitional states). Streams that exist in the device config but have not reported in yet are returned with status "provisioning".
True when the stream is in the config but has not reported in yet.
"triggered" for streams that run their Workflow only when triggered, "continuous" for streams that run all the time. Null when the stream has no config entry.
Sanitized source descriptor. URL userinfo is stripped; object keys named password, passwd, secret, api_key, apikey, auth, authorization, token, or access_token are removed.
Source taken from the device config, sanitized the same way as source. Filled in for provisioning streams that have no live source yet, and null otherwise.
Camera frame rate reported by the device heartbeat.
Inference pipeline frame rate reported by the device heartbeat.
Image sharpness score reported by the device heartbeat.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Report Pipeline Status
Report the inference pipelines a device is running. Each reported pipeline updates the matching stream, including its FPS and sharpness metrics. A stream that was declared in the device config is matched by its stream key and stops showing as provisioning. Devices running the device-manager container report the same data inside their healthcheck instead.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
When the status was measured, as a Unix timestamp in seconds or an ISO 8601 string. Defaults to the time the request is received.
2026-04-28T10:00:00ZThe reported pipelines were applied.
trueHow many reported pipelines had a pipeline_id.
1Invalid query parameter or request body.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Device Logs and Telemetry
Logs
Returns paginated device logs. Rate-limited to 5 requests per minute per IP and 50 per minute globally.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
Number of log entries to return. Clamped to 1-1000.
100ISO 8601 timestamp lower bound. Returns 400 if not parseable.
ISO 8601 timestamp upper bound. Returns 400 if not parseable.
Comma-separated list of service names to filter by.
Comma-separated list of severity levels to filter by (for example "INFO,WARN,ERROR").
Pass back next_cursor from the previous response to fetch the next page (older logs). Returns 400 if not parseable.
A page of logs.
Invalid query parameter or request body.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Rate limit exceeded. Most rate-limited responses are JSON; the device logs limiter can return a plain string response.
Telemetry
Returns device health data: hardware metrics (CPU, memory, disk, GPU, network) bucketed across the requested time window, plus Docker and NTP health, per-service container status, per-stream FPS, hardware, and network interfaces. Rate-limited to 60 requests per minute per device with a 10-request burst over 10 seconds.
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
Time window to aggregate over.
24hPossible values: Comma-separated sections to return: metrics, system_status, services, service_history, stream_fps, hardware, network_interfaces. Every section except service_history is returned by default, and service_history implies services. Smaller requests return faster. An unknown section returns 400 with the valid values.
metrics,system_status,services,stream_fps,hardware,network_interfacesAggregated telemetry buckets.
Sections are selected with the include query parameter. Every section except service_history is returned by default.
Human-readable bucket size (for example "30 MINUTE", "4 HOUR").
Present when the service query hit its cap. Gaps in service history may come from the cap rather than a real outage.
Present when the stream FPS query hit its row cap, so some buckets are missing.
Invalid query parameter or request body.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Rate limit exceeded. Most rate-limited responses are JSON; the device logs limiter can return a plain string response.
Device Events
Returns device and stream lifecycle events (for example device boots, stream starts and stops, errors, config changes).
Roboflow API key passed as a Bearer token.
Workspace ID (URL slug).
Device ID.
Number of events to return. Clamped to 1-1000.
100Filter to events for a single entity type (for example "device", "stream").
Filter to events for a single entity ID.
Filter to events with this event name.
ISO 8601 timestamp lower bound. Returns 400 if not parseable.
ISO 8601 timestamp upper bound. Returns 400 if not parseable.
Opaque pagination cursor from a previous response. Pass back next_cursor or prev_cursor. Malformed cursors return 400.
Pagination direction. Other values return 400.
backwardPossible values: A page of events.
Invalid query parameter or request body.
Missing or invalid API key.
API key is bound to a different device, or this endpoint is not permitted for device-scoped keys, a source device belongs to another workspace, or a feature gate (for example AI1 creation, roboflowLiteMode) blocks the request.
Device, stream, configuration, or source device not found. Read requests for devices owned by another workspace also return 404.
Last updated
Was this helpful?