Skip to main content
The firmware management API lets you inspect what firmware version is running on every charger in your fleet and orchestrate updates safely using staged rollout strategies. You can deploy to a small canary group first, roll out incrementally, or push to all chargers simultaneously.

List firmware versions across fleet

GET /api/v1/cpo/fleet/firmware Returns a list of all distinct firmware versions currently running in your fleet along with the chargers on each version.
string
Filter results to chargers at a specific site.
string
Filter by charger vendor/manufacturer.
object[]

Create a firmware rollout

POST /api/v1/cpo/firmware/rollout Defines and schedules a new firmware update rollout. The rollout does not begin automatically — call the execute stage endpoint to start it. Three rollout strategies are available:
  • canary — deploys to a small initial subset, then waits for manual promotion before continuing to the rest
  • rolling — deploys to chargers in sequential batches of a configurable size
  • all_at_once — deploys to all specified chargers simultaneously
string[]
required
List of charge_point_id values to include in the rollout.
string
required
HTTPS URL where chargers can download the firmware file. Must be publicly reachable by chargers.
string
required
Rollout strategy. Accepted values: canary, rolling, all_at_once.
number
Number of chargers per batch. Used by the rolling strategy. Defaults to 10% of total chargers.
number
default:"1"
Number of chargers in the initial canary stage. Used by the canary strategy.
string
ISO 8601 date/time chargers should start downloading the firmware. Defaults to immediately on execution.
string
Unique identifier for the rollout.
string
Overall rollout status. One of: pending, in_progress, paused, completed, failed.
object[]

Get rollout status

GET /api/v1/cpo/firmware/rollout/{rollout_id} Returns the current status of a rollout and per-charger progress.
string
required
The unique identifier of the rollout.

Execute rollout stage

POST /api/v1/cpo/firmware/rollout/{rollout_id}/execute-stage Advances the rollout to the next pending stage. For a canary rollout, call this once to deploy to the canary group, verify results, then call it again to release to the remaining chargers. For a rolling rollout, each call releases the next batch.
string
required
The unique identifier of the rollout.
number
The stage number that was just triggered.
string[]
Chargers in the stage that have been sent the update command.

Pause a rollout

POST /api/v1/cpo/firmware/rollout/{rollout_id}/pause Pauses an in-progress rollout. Chargers that are already downloading or installing will complete their current operation, but no new chargers will be triggered. Call execute stage to resume.
string
required
The unique identifier of the rollout.
string
Optional explanation for why the rollout was paused. Stored for audit purposes.