Charger Commands
Send OCPP commands to connected chargers — reset, unlock, configure, update firmware, and more. All endpoints require the X-API-Key header.
Charger commands require Starter tier or above. Free tier users can register chargers, view status, and start/stop transactions. Upgrade to access reset, unlock, configuration, firmware, and diagnostics commands.
Reset charger
POST
/api/v1/chargers/:chargeBoxId/resetSend a soft or hard reset to a charger.
Request body
json
{"type": "Soft"}
| Parameter | Type | Description |
|---|---|---|
type* | string | "Soft" (graceful) or "Hard" (full reboot) |
Response — 200 OK
json
{"message": "Soft reset accepted by charger","chargeBoxId": "CHARGER-001","type": "Soft","status": "accepted"}
Unlock connector
POST
/api/v1/chargers/:chargeBoxId/unlockUnlock a connector — useful when a cable is stuck.
Request body
json
{"connectorId": 1}
Response — 200 OK
json
{"message": "Connector unlocked successfully","chargeBoxId": "CHARGER-001","connectorId": 1,"status": "unlocked"}
Clear cache
POST
/api/v1/chargers/:chargeBoxId/cache/clearClear the charger's local authorization cache.
Response — 200 OK
json
{"message": "Cache cleared successfully","chargeBoxId": "CHARGER-001","status": "accepted"}
Trigger message
POST
/api/v1/chargers/:chargeBoxId/triggerRequest the charger to send a specific OCPP message on demand.
Request body
json
{"requestedMessage": "StatusNotification","connectorId": 1}
| Parameter | Type | Description |
|---|---|---|
requestedMessage* | string | BootNotification, Heartbeat, MeterValues, StatusNotification, DiagnosticsStatusNotification, FirmwareStatusNotification |
connectorId | number | Target connector (for StatusNotification, MeterValues) |
Change availability
POST
/api/v1/chargers/:chargeBoxId/availabilitySet a connector or entire charger to operative/inoperative.
Request body
json
{"connectorId": 1,"type": "Inoperative"}
| Parameter | Type | Description |
|---|---|---|
connectorId* | number | Connector ID (use 0 for entire charger) |
type* | string | "Operative" or "Inoperative" |
If a transaction is active, the change may be scheduled and take effect when the transaction completes.
Get configuration
POST
/api/v1/chargers/:chargeBoxId/configuration/getRetrieve configuration keys from a charger.
Request — get specific keys
json
{"key": ["HeartbeatInterval", "MeterValueSampleInterval"]}
Response — 200 OK
json
{"chargeBoxId": "CHARGER-001","configurationKey": [{"key": "HeartbeatInterval","readonly": false,"value": "300"},{"key": "MeterValueSampleInterval","readonly": false,"value": "60"}],"unknownKey": []}
Send an empty body
{} to retrieve all configuration keys.Change configuration
POST
/api/v1/chargers/:chargeBoxId/configuration/changeChange a configuration key on a charger.
Request body
json
{"key": "HeartbeatInterval","value": "600"}
Response — 200 OK
json
{"chargeBoxId": "CHARGER-001","key": "HeartbeatInterval","value": "600","status": "Accepted","message": "Configuration changed successfully"}
Possible status values: Accepted, RebootRequired, Rejected, NotSupported
Update firmware
POST
/api/v1/chargers/:chargeBoxId/firmware/updateTell the charger to download and install new firmware.
Request body
json
{"location": "https://firmware.example.com/v2.0.0/firmware.bin","retrieveDate": "2026-02-10T14:00:00Z","retries": 3,"retryInterval": 60}
| Parameter | Type | Description |
|---|---|---|
location* | string | Firmware download URL (HTTP/HTTPS/FTP) |
retrieveDate* | string | ISO 8601 timestamp to start download |
retries | number | Download retry attempts |
retryInterval | number | Seconds between retries |
Firmware updates may cause the charger to reboot. Schedule during low-usage periods.
Get diagnostics
POST
/api/v1/chargers/:chargeBoxId/diagnosticsTell the charger to upload diagnostic logs to a URL.
Request body
json
{"location": "https://uploads.example.com/diagnostics/","startTime": "2026-02-09T00:00:00Z","stopTime": "2026-02-10T00:00:00Z","retries": 3,"retryInterval": 60}