Skip to main content
CPO command endpoints let Charge Point Operators send operational commands to their charge point fleet. Unlike the OCPP 1.6 endpoints that map directly to OCPP protocol actions, CPO commands are higher-level operations that Dynamo CSMS translates to the appropriate OCPP messages automatically. All CPO command endpoints require an organization API key with the write:charge_points scope. History endpoints additionally require read:charge_points. Base URL: https://api.dynamo-csms.com

Send command to a charge point

POST /api/v1/cpo/commands/{charge_point_id} Sends a command to a single charge point. The command is executed immediately and the response includes the charge point’s acknowledgement.
string
required
The unique identifier of the target charge point.
string
required
The command to execute. See the supported commands table below for valid values.
object
Command-specific parameters. Required fields vary by command — see the command reference below.
integer
How long to wait for the charge point to acknowledge the command (default: 10, max: 60).

Supported commands

Response 200 OK
string
Unique identifier for this command execution. Use it to look up history.
string
Dynamo CSMS status: Accepted, Rejected, Timeout, Error.
object
Raw OCPP response from the charge point.
integer
Milliseconds between sending the command and receiving the charge point acknowledgement.

Send bulk command

POST /api/v1/cpo/commands/bulk Sends the same command to multiple charge points simultaneously. Commands are dispatched in parallel. The response includes per-charge-point results.
string[]
required
List of charge point identifiers to target. Maximum 100 per request.
string
required
The command to send to all charge points. Must be the same command for all targets.
object
Parameters applied uniformly to all charge points.
integer
Per-charge-point timeout in seconds (default: 10, max: 60).
boolean
If true, continues sending to remaining charge points even if some fail. Defaults to true.
Response 207 Multi-Status
string
Identifier for the bulk operation as a whole.
integer
Number of charge points that returned Accepted.
integer
Number of charge points that timed out, rejected, or errored.
array
Per-charge-point result objects.
string
Per-charge-point outcome: Accepted, Rejected, Timeout, Error, Offline.

Get command history for a charge point

GET /api/v1/cpo/commands/{charge_point_id}/history Returns the history of commands sent to a specific charge point, ordered by most recent first.
string
required
The charge point to retrieve history for.
string
Filter by command type (e.g. start_session, soft_reset).
string
Filter by outcome: Accepted, Rejected, Timeout, Error.
string
ISO 8601 start of date range (e.g. "2024-03-01T00:00:00Z").
string
ISO 8601 end of date range.
integer
Page number (default: 1).
integer
Results per page (default: 20, max: 100).
Response 200 OK
string
The API key or user that triggered the command, in the format api_key:{key_id} or installer:{installer_id}.

Get organization-wide command history

GET /api/v1/cpo/commands/history Returns command history across all charge points in your organization. Useful for audit trails, troubleshooting, and usage reporting.
string
Filter to a specific charge point.
string
Filter by command type.
string
Filter by outcome.
string
Filter by the API key or installer that sent the command.
string
ISO 8601 start of date range.
string
ISO 8601 end of date range.
integer
Page number (default: 1).
integer
Results per page (default: 20, max: 200).
Response 200 OK

Pagination

All history endpoints use cursor-free page-based pagination. The response always includes total, page, and per_page. To retrieve subsequent pages, increment page in your query:

Error responses