Skip to main content
POST
/
v3
/
chargers
/
commands
/
bulk
Bulk Command
curl --request POST \
  --url https://app.plugchoice.com/api/v3/chargers/commands/bulk \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "command": "<string>",
  "data": {},
  "charger_ids": [
    {}
  ]
}
'
{
  "uuid": "<string>",
  "command": "<string>",
  "data": {},
  "status": "<string>",
  "total_count": 123,
  "sent_count": 123,
  "offline_count": 123,
  "error_count": 123,
  "skipped_count": 123,
  "results": [
    {}
  ]
}
Queues the same OCPP 1.6 command against multiple chargers at once. Each charger is processed by a background job; the response returns a run resource you can poll to track progress. Chargers the authenticated user cannot access are silently reported as skipped_forbidden in the run results. Chargers that are offline at dispatch time are reported as offline. Other failures are reported as error with a message.
command
string
required
The OCPP 1.6 command name (e.g. Reset, ChangeAvailability, UnlockConnector, TriggerMessage, ChangeConfiguration).
data
object
Command-specific payload forwarded to each charger. Optional. Shape depends on the command.
charger_ids
array
required
UUIDs of the target chargers. Minimum 1, no hard upper bound — result rows are inserted in batches and one queue job is dispatched per accessible charger.

Response

Returns 202 Accepted with the created run wrapped in data.
uuid
string
Unique identifier of the bulk run. Use this with GET /v3/chargers/commands/bulk/{run} to poll progress.
command
string
The OCPP command that was queued.
data
object
The command payload forwarded to each charger.
status
string
running while jobs are in flight, completed once every charger has a terminal result.
total_count
integer
Number of chargers submitted.
sent_count
integer
Chargers that acknowledged the command.
offline_count
integer
Chargers that were offline when the command was dispatched.
error_count
integer
Chargers whose command failed for any other reason (message in the per-result payload).
skipped_count
integer
Chargers the authenticated user does not have access to, or that could not be resolved.
results
array
Per-charger status. Each entry contains charger_uuid, status (pending, sent, offline, error, skipped_forbidden), message, executed_at, and — when the user has access — an embedded charger object with uuid, identity, and reference.