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/reset

Send a soft or hard reset to a charger.

Request body
json
{
  "type": "Soft"
}
ParameterTypeDescription
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/unlock

Unlock 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/clear

Clear 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/trigger

Request the charger to send a specific OCPP message on demand.

Request body
json
{
  "requestedMessage": "StatusNotification",
  "connectorId": 1
}
ParameterTypeDescription
requestedMessage*stringBootNotification, Heartbeat, MeterValues, StatusNotification, DiagnosticsStatusNotification, FirmwareStatusNotification
connectorIdnumberTarget connector (for StatusNotification, MeterValues)

Change availability

POST/api/v1/chargers/:chargeBoxId/availability

Set a connector or entire charger to operative/inoperative.

Request body
json
{
  "connectorId": 1,
  "type": "Inoperative"
}
ParameterTypeDescription
connectorId*numberConnector 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/get

Retrieve 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/change

Change 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/update

Tell 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
}
ParameterTypeDescription
location*stringFirmware download URL (HTTP/HTTPS/FTP)
retrieveDate*stringISO 8601 timestamp to start download
retriesnumberDownload retry attempts
retryIntervalnumberSeconds between retries
Firmware updates may cause the charger to reboot. Schedule during low-usage periods.

Get diagnostics

POST/api/v1/chargers/:chargeBoxId/diagnostics

Tell 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
}