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.
The unique identifier of the target charge point.
The command to execute. See the supported commands table below for valid values.
Command-specific parameters. Required fields vary by command — see the command reference below.
How long to wait for the charge point to acknowledge the command (default: 10, max: 60).
Supported commands
| Command | Description | Required parameters |
|---|---|---|
start_session | Start a charging session | connector_id, id_tag |
stop_session | Stop an active session | transaction_id |
set_available | Mark connector as available | connector_id |
set_unavailable | Mark connector as unavailable | connector_id |
soft_reset | Restart after active sessions end | — |
hard_reset | Immediate restart | — |
set_power_limit | Cap charging power | connector_id, limit_watts |
clear_power_limit | Remove power cap | connector_id |
unlock_connector | Mechanically unlock connector | connector_id |
update_firmware | Trigger firmware update | firmware_url, retrieve_date |
get_diagnostics | Request diagnostic upload | upload_url |
send_local_list | Push local RFID authorization list | list_version, local_authorization_list |
200 OK
Unique identifier for this command execution. Use it to look up history.
Dynamo CSMS status:
Accepted, Rejected, Timeout, Error.Raw OCPP response from the charge point.
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.
List of charge point identifiers to target. Maximum 100 per request.
The command to send to all charge points. Must be the same command for all targets.
Parameters applied uniformly to all charge points.
Per-charge-point timeout in seconds (default: 10, max: 60).
If
true, continues sending to remaining charge points even if some fail. Defaults to true.207 Multi-Status
Identifier for the bulk operation as a whole.
Number of charge points that returned
Accepted.Number of charge points that timed out, rejected, or errored.
Per-charge-point result objects.
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.
The charge point to retrieve history for.
Filter by command type (e.g.
start_session, soft_reset).Filter by outcome:
Accepted, Rejected, Timeout, Error.ISO 8601 start of date range (e.g.
"2024-03-01T00:00:00Z").ISO 8601 end of date range.
Page number (default: 1).
Results per page (default: 20, max: 100).
200 OK
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.
Filter to a specific charge point.
Filter by command type.
Filter by outcome.
Filter by the API key or installer that sent the command.
ISO 8601 start of date range.
ISO 8601 end of date range.
Page number (default: 1).
Results per page (default: 20, max: 200).
200 OK
Pagination
All history endpoints use cursor-free page-based pagination. The response always includestotal, page, and per_page. To retrieve subsequent pages, increment page in your query:
Error responses
| Status | Code | Meaning |
|---|---|---|
400 | validation_error | Missing or invalid field in request |
400 | invalid_command | Command name is not recognized |
400 | missing_parameters | Required parameters for this command are absent |
400 | too_many_targets | Bulk request exceeds 100 charge points |
401 | unauthorized | Missing or invalid API key |
403 | forbidden | Key lacks write:charge_points scope |
404 | not_found | Charge point does not belong to your organization |
408 | timeout | Charge point did not respond within the timeout |
422 | charge_point_offline | Charge point is not connected via OCPP |
422 | ocpp_rejected | Charge point returned Rejected |
429 | rate_limited | Exceeded command rate limit (10/s per charge point) |