ampr docs

Commands

Send control commands to chargers

POST /chargers/{charger_id}/sockets/{socket_id}/start Start a charging session

Parameters

Name In Type Required Description
charger_id path string required
socket_id path string required
wait query boolean Wait for charger response before returning
timeout query integer Max seconds to wait for charger response (requires wait=true)

Request body

PropertyTypeRequiredDescription
id_tagstringrequiredIdentifier of the user/card authorizing the session

Responses

200 Command accepted (sync mode)

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

202 Command pending (async mode or sync timeout)

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

404 Resource not found application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

422 Request understood but cannot be processed (e.g., invalid state) application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

curl -X POST "https://api.ampr.dev/v1/chargers/chg_example/sockets/skt_example/start" \
  -H "Authorization: Bearer $AMPR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id_tag": "string"
  }'
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

POST /chargers/{charger_id}/sockets/{socket_id}/stop Stop an active charging session

Parameters

Name In Type Required Description
charger_id path string required
socket_id path string required
wait query boolean Wait for charger response before returning
timeout query integer Max seconds to wait for charger response (requires wait=true)

Responses

200 Command accepted (sync mode)

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

202 Command pending

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

404 Resource not found application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

422 Request understood but cannot be processed (e.g., invalid state) application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

curl -X POST "https://api.ampr.dev/v1/chargers/chg_example/sockets/skt_example/stop" \
  -H "Authorization: Bearer $AMPR_API_KEY"
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

POST /chargers/{charger_id}/sockets/{socket_id}/unlock Unlock a connector (release cable)

Parameters

Name In Type Required Description
charger_id path string required
socket_id path string required
wait query boolean Wait for charger response before returning
timeout query integer Max seconds to wait for charger response (requires wait=true)

Responses

200 Command accepted

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

202 Command pending

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

404 Resource not found application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

curl -X POST "https://api.ampr.dev/v1/chargers/chg_example/sockets/skt_example/unlock" \
  -H "Authorization: Bearer $AMPR_API_KEY"
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

POST /chargers/{charger_id}/sockets/{socket_id}/charging-profile Set a charging profile on a connector

Dispatches an OCPP 1.6 SetChargingProfile request setting a current limit on a connector. Used by Dynamic Load Balancing to enforce per-connector ceilings (TxDefaultProfile baseline or transaction-scoped TxProfile). The charging rate unit is amps; the profile pins a single phase (single-phase worst-case model).

Parameters

Name In Type Required Description
charger_id path string required
socket_id path string required
wait query boolean Wait for charger response before returning
timeout query integer Max seconds to wait for charger response (requires wait=true)

Request body

PropertyTypeRequiredDescription
limit_aintegerrequiredCurrent ceiling in whole amps for the connector. 0 suspends an active session (a reversible pause).
transaction_idintegerOCPP transaction id. When present the profile is a transaction-scoped TxProfile; when absent it is a TxDefaultProfile baseline.

Responses

200 Command accepted (sync mode)

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

202 Command pending (async mode or sync timeout)

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

404 Resource not found application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

422 Request understood but cannot be processed (e.g., invalid state) application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

curl -X POST "https://api.ampr.dev/v1/chargers/chg_example/sockets/skt_example/charging-profile" \
  -H "Authorization: Bearer $AMPR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "limit_a": 16,
    "transaction_id": 0
  }'
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

POST /chargers/{charger_id}/sockets/{socket_id}/clear-charging-profile Clear the transaction charging profile on a connector

Dispatches an OCPP 1.6 ClearChargingProfile request removing the transaction-scoped TxProfile from a connector, filtered by `chargingProfilePurpose = TxProfile`. The managed TxDefaultProfile baseline is a different purpose and is intentionally spared, so the connector reverts to its baseline default rather than to no limit.

Parameters

Name In Type Required Description
charger_id path string required
socket_id path string required
wait query boolean Wait for charger response before returning
timeout query integer Max seconds to wait for charger response (requires wait=true)

Responses

200 Command accepted (sync mode)

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

202 Command pending (async mode or sync timeout)

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

404 Resource not found application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

curl -X POST "https://api.ampr.dev/v1/chargers/chg_example/sockets/skt_example/clear-charging-profile" \
  -H "Authorization: Bearer $AMPR_API_KEY"
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

POST /chargers/{charger_id}/reset Reset a charger (soft or hard)

Parameters

Name In Type Required Description
charger_id path string required
wait query boolean Wait for charger response before returning
timeout query integer Max seconds to wait for charger response (requires wait=true)

Request body

PropertyTypeRequiredDescription
typeenum
  • Soft
  • Hard
required

Responses

200 Command accepted

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

202 Command pending

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

404 Resource not found application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

curl -X POST "https://api.ampr.dev/v1/chargers/chg_example/reset" \
  -H "Authorization: Bearer $AMPR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "Soft"
  }'
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

GET /chargers/{charger_id}/firmware Read current firmware-update status

Returns the charger's most recent firmware-update state, driven by inbound OCPP FirmwareStatusNotification messages. `firmware_update_status` is null until the charger reports progress.

Parameters

Name In Type Required Description
charger_id path string required

Responses

200 Current firmware-update state

PropertyTypeRequiredDescription
dataFirmwareStatus
PropertyTypeRequiredDescription
charger_idstringrequired
firmware_update_statusenumnullable
  • Downloaded
  • DownloadFailed
  • Downloading
  • Idle
  • InstallationFailed
  • Installing
  • Installed
requiredMost recent OCPP 1.6 FirmwareStatusNotification status, or null if the charger has never reported firmware progress.
firmware_update_status_atstringnullableformat: date-timerequiredWhen the current firmware status was last reported.

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

404 Resource not found application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

curl -X GET "https://api.ampr.dev/v1/chargers/chg_example/firmware" \
  -H "Authorization: Bearer $AMPR_API_KEY"
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

POST /chargers/{charger_id}/firmware Push a firmware update to a charger

Dispatches an OCPP 1.6 UpdateFirmware request telling the charger to fetch and install a firmware image from `location`. Ampr never fetches the URL; the charger dereferences it. Progress is observed via FirmwareStatusNotification (see GET) and the `charger.firmware_status` webhook.

Parameters

Name In Type Required Description
charger_id path string required
wait query boolean Wait for charger response before returning
timeout query integer Max seconds to wait for charger response (requires wait=true)

Request body

PropertyTypeRequiredDescription
locationstringformat: urirequiredAbsolute http(s) URL the charger fetches the firmware image from.
retrieveDatestringformat: date-timeWhen the charger should start retrieving the firmware.
retriesintegerNumber of download retry attempts.
retryIntervalintegerSeconds between retry attempts.

Responses

200 Command accepted (sync mode)

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

202 Command pending (async mode or sync timeout)

PropertyTypeRequiredDescription
dataCommand
PropertyTypeRequiredDescription
idstringrequired
typeenum
  • RemoteStartTransaction
  • RemoteStopTransaction
  • UnlockConnector
  • Reset
  • UpdateFirmware
required
charger_idstringrequired
socket_idstringnullable
statusenum
  • pending
  • accepted
  • rejected
  • timeout
required
errorstringnullable
created_atstringformat: date-timerequired
completed_atstringnullableformat: date-time

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

404 Resource not found application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

422 Request understood but cannot be processed (e.g., invalid state) application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

curl -X POST "https://api.ampr.dev/v1/chargers/chg_example/firmware" \
  -H "Authorization: Bearer $AMPR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "location": "https://firmware.example.com/rolec/v2.1.bin",
    "retrieveDate": "2026-01-01T00:00:00Z",
    "retries": 0,
    "retryInterval": 0
  }'
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.