ampr docs

Locations

Group chargers by physical site

GET /locations List locations

Parameters

Name In Type Required Description
page query integer
per_page query integer

Responses

200 Location list

PropertyTypeRequiredDescription
dataarray<Location>
PropertyTypeRequiredDescription
idstringrequired
namestringrequired
addressstringnullable
latitudenumbernullableformat: double
longitudenumbernullableformat: double
max_amperageintegernullableSite electrical capacity limit (Amps)
dlb_enabledbooleanWhether Dynamic Load Balancing is active for this location.
charger_countinteger
tariff_idstringnullable
metering_regimeenum
  • confirmed_register_ok
  • signed_required
Metering compliance regime for CDR finalization at this location.
idle_finalize_thresholdintegernullableSeconds of post-charge idle time before an abandoned session is force-finalized. Null falls back to the global default.
created_atstringformat: date-timerequired
paginationPagination
PropertyTypeRequiredDescription
totalintegerrequired
pageintegerrequired
per_pageintegerrequired
has_morebooleanrequired

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

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

POST /locations Create a location

Request body

PropertyTypeRequiredDescription
namestringrequired
addressstring
latitudenumber
longitudenumber
max_amperageinteger
dlb_enabledbooleanEnable Dynamic Load Balancing for this location.
tariff_idstringnullable
metering_regimeenum
  • confirmed_register_ok
  • signed_required
Metering compliance regime for CDR finalization at this location. Defaults to confirmed_register_ok.
idle_finalize_thresholdintegernullableSeconds of post-charge idle time before an abandoned session is force-finalized. Null falls back to the global default.

Responses

201 Location created

PropertyTypeRequiredDescription
dataLocation
PropertyTypeRequiredDescription
idstringrequired
namestringrequired
addressstringnullable
latitudenumbernullableformat: double
longitudenumbernullableformat: double
max_amperageintegernullableSite electrical capacity limit (Amps)
dlb_enabledbooleanWhether Dynamic Load Balancing is active for this location.
charger_countinteger
tariff_idstringnullable
metering_regimeenum
  • confirmed_register_ok
  • signed_required
Metering compliance regime for CDR finalization at this location.
idle_finalize_thresholdintegernullableSeconds of post-charge idle time before an abandoned session is force-finalized. Null falls back to the global default.
created_atstringformat: date-timerequired

401 Missing or invalid API key application/problem+json

PropertyTypeRequiredDescription
typestringformat: urirequired
titlestringrequired
statusintegerrequired
detailstringnullable
instancestringnullable

Request example

curl -X POST "https://api.ampr.dev/v1/locations" \
  -H "Authorization: Bearer $AMPR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string",
    "address": "string",
    "latitude": 0,
    "longitude": 0,
    "max_amperage": 0,
    "dlb_enabled": true,
    "tariff_id": "string",
    "metering_regime": "confirmed_register_ok",
    "idle_finalize_threshold": 0
  }'
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

GET /locations/{location_id} Get location detail

Parameters

Name In Type Required Description
location_id path string required

Responses

200 Location detail

PropertyTypeRequiredDescription
dataLocation
PropertyTypeRequiredDescription
idstringrequired
namestringrequired
addressstringnullable
latitudenumbernullableformat: double
longitudenumbernullableformat: double
max_amperageintegernullableSite electrical capacity limit (Amps)
dlb_enabledbooleanWhether Dynamic Load Balancing is active for this location.
charger_countinteger
tariff_idstringnullable
metering_regimeenum
  • confirmed_register_ok
  • signed_required
Metering compliance regime for CDR finalization at this location.
idle_finalize_thresholdintegernullableSeconds of post-charge idle time before an abandoned session is force-finalized. Null falls back to the global default.
created_atstringformat: date-timerequired

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/locations/loc_example" \
  -H "Authorization: Bearer $AMPR_API_KEY"
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

DELETE /locations/{location_id} Delete location (unassigns chargers)

Parameters

Name In Type Required Description
location_id path string required

Responses

204 Location deleted

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 DELETE "https://api.ampr.dev/v1/locations/loc_example" \
  -H "Authorization: Bearer $AMPR_API_KEY"
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

PATCH /locations/{location_id} Update location

Parameters

Name In Type Required Description
location_id path string required

Request body

PropertyTypeRequiredDescription
namestring
addressstring
latitudenumber
longitudenumber
max_amperageinteger
dlb_enabledbooleanEnable or disable Dynamic Load Balancing for this location.
tariff_idstringnullable
metering_regimeenum
  • confirmed_register_ok
  • signed_required
Metering compliance regime for CDR finalization at this location.
idle_finalize_thresholdintegernullableSeconds of post-charge idle time before an abandoned session is force-finalized. Null falls back to the global default.

Responses

200 Location updated

PropertyTypeRequiredDescription
dataLocation
PropertyTypeRequiredDescription
idstringrequired
namestringrequired
addressstringnullable
latitudenumbernullableformat: double
longitudenumbernullableformat: double
max_amperageintegernullableSite electrical capacity limit (Amps)
dlb_enabledbooleanWhether Dynamic Load Balancing is active for this location.
charger_countinteger
tariff_idstringnullable
metering_regimeenum
  • confirmed_register_ok
  • signed_required
Metering compliance regime for CDR finalization at this location.
idle_finalize_thresholdintegernullableSeconds of post-charge idle time before an abandoned session is force-finalized. Null falls back to the global default.
created_atstringformat: date-timerequired

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 PATCH "https://api.ampr.dev/v1/locations/loc_example" \
  -H "Authorization: Bearer $AMPR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string",
    "address": "string",
    "latitude": 0,
    "longitude": 0,
    "max_amperage": 0,
    "dlb_enabled": true,
    "tariff_id": "string",
    "metering_regime": "confirmed_register_ok",
    "idle_finalize_threshold": 0
  }'
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.

GET /locations/{location_id}/load Get the location's live DLB load snapshot

Returns the location's current Dynamic Load Balancing state: the site capacity, the total in-force allocated current, per-session allocations (including any suspended sessions), and the capacity reserved for offline-but-active connectors.

Parameters

Name In Type Required Description
location_id path string required

Responses

200 DLB load snapshot

PropertyTypeRequiredDescription
dataLoadSnapshotrequiredPoint-in-time Dynamic Load Balancing state for a location: the site cap, the total in-force allocated current, per-session allocations, and the capacity reserved for offline-but-active connectors.
PropertyTypeRequiredDescription
max_amperageintegernullablerequiredThe location's per-phase continuous current limit (Amps).
allocated_aintegerrequiredSum of every active session's in-force allocated current (Amps).
sessionsarray<object>requiredOne entry per active session participating in DLB.
PropertyTypeRequiredDescription
session_idstringrequired
allocated_aintegerrequiredIn-force allocated current for the session (0 if suspended).
suspendedbooleanrequired
reserved_offline_aintegerrequiredCapacity reserved for offline connectors still holding a session (Amps).

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/locations/loc_example/load" \
  -H "Authorization: Bearer $AMPR_API_KEY"
Note
This endpoint requires an API key. Send it as a Bearer token in the Authorization header.