Skip to content

Deploy Firmware

POST
/api/firmware/{firmware_id}/deploy
curl --request POST \
--url 'https://example.com/api/firmware/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/deploy?organization_id=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "device_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "force": false, "rollout": { "batch_interval_s": 0, "batch_percent": 1, "batch_size": 1, "max_failure_percent": 10 }, "rollout_percentage": 1 }'

Deploy firmware to devices.

When force=False (default) any device whose current firmware_version is below the firmware’s min_version is silently skipped.

When force=True those devices are included anyway (with a warning), but only an org owner (OWNER or ADMIN role) may set this flag.

firmware_id
required
Firmware Id
string format: uuid
organization_id
required
Organization Id
string format: uuid
Media type application/json
CreateDeploymentRequest

Create deployment request

object
device_ids
required
Device Ids
Array<string>
>= 1 items
force
Force
boolean
rollout
Any of:
RolloutRequest

Phased-rollout parameters (TODO-052/S56 design 3B).

Exactly one of batch_size/batch_percent must be set — this is a distinct mechanism from the pre-existing one-shot rollout_percentage canary on CreateDeploymentRequest, which stays as-is for backward compatibility.

object
batch_interval_s
Batch Interval S
integer
0
batch_percent
Any of:
number
> 0 <= 100
batch_size
Any of:
integer
>= 1
max_failure_percent
Max Failure Percent
number
default: 10 <= 100
rollout_percentage
Any of:
number
<= 100

Successful Response

Media type application/json
Example generated
example

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Example generated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}