Charging Limits
Install, list, and remove charging limits — what a charging station (or one connector, or one active session) is allowed to draw, and when. See docs/architecture/api-gateway-roadmap.md's "Protocol opacity" section: nothing here names OCPP's own charging-profile vocabulary.
4 endpoints
Lists a charging_station's installed charging limits, unpaginated (bounded by the station's own capability, always a handful of rows).
get/v1/charging-stations/{charging_station_id}/charging-limitsRequires a bearer token
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| charging_station_id* | path | string<uuid> | ChargingStation id |
Responses
| Status | Body | Description |
|---|---|---|
| 200 | ListChargingLimitsResponse | The charging_station's installed charging limits |
| 401 | ErrorBody | Missing, invalid, or expired bearer token |
| 403 | ErrorBody | The caller is a member of the charging_station's organization but below the required role |
| 404 | ErrorBody | No charging_station with this id exists, or the caller cannot access its environment |
Installs a charging limit.
post/v1/charging-stations/{charging_station_id}/charging-limitsRequires a bearer token
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| charging_station_id* | path | string<uuid> | ChargingStation id |
Request bodyChargingLimitRequest
| Field | Type | Description |
|---|---|---|
| ends_at | string | null<date-time> | When this limit stops being eligible. Omit for "until replaced". |
| priority* | integer<int32> | When multiple limits apply to the same scope at the same time, the one with the highest priority wins. Lowest is 0. |
| recurrence* | Recurrence | How a charging limit repeats (1.6's ChargingProfileKind +
RecurrencyKind collapsed into one enum — see the module docs). |
| schedule* | ChargingScheduleRequest | — |
| scope* | ChargingLimitScope | What a charging limit applies to (1.6's ChargingProfilePurpose,
translated) — see the module docs. |
| starts_at | string | null<date-time> | When this limit becomes eligible to apply at all. Omit to make it eligible immediately. |
Responses
| Status | Body | Description |
|---|---|---|
| 200 | CreateChargingLimitResponse | The charging_station answered |
| 401 | ErrorBody | Missing, invalid, or expired bearer token |
| 403 | ErrorBody | The caller is a member of the charging_station's organization but below the required role |
| 404 | ErrorBody | No charging_station with this id exists, the caller cannot access it, or scope names an unknown connector/session |
| 409 | ErrorBody | The charging_station is not connected to the CSMS |
| 422 | ErrorBody | The request exceeds this station's capability, or its recurrence and schedule.anchor contradict each other |
| 502 | ErrorBody | The charging_station gave no usable answer |
| 503 | ErrorBody | The request could not be sent |
| 504 | ErrorBody | The charging_station did not answer in time |
Removes every charging limit matching the given criteria — all optional, and all omitted clears everything.
delete/v1/charging-stations/{charging_station_id}/charging-limitsRequires a bearer token
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| charging_station_id* | path | string<uuid> | ChargingStation id |
| scope | query | "station_limit" | "default_policy" | "session" | Only clears limits with this scope's purpose — station_limit,
default_policy, or session. Omit to match any. |
| connector_id | query | string<uuid> | Only meaningful combined with scope=default_policy: narrows to
one connector's default policy. |
| priority | query | integer<int32> | Only clears limits at this priority. |
Responses
| Status | Body | Description |
|---|---|---|
| 200 | DeleteChargingLimitResponse | The charging_station answered |
| 401 | ErrorBody | Missing, invalid, or expired bearer token |
| 403 | ErrorBody | The caller is a member of the charging_station's organization but below the required role |
| 404 | ErrorBody | No charging_station with this id exists, or connector_id names an unknown connector |
| 409 | ErrorBody | The charging_station is not connected to the CSMS |
| 502 | ErrorBody | The charging_station gave no usable answer |
| 503 | ErrorBody | The request could not be sent |
| 504 | ErrorBody | The charging_station did not answer in time |
Removes one charging limit by id.
delete/v1/charging-stations/{charging_station_id}/charging-limits/{id}Requires a bearer token
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| charging_station_id* | path | string<uuid> | ChargingStation id |
| id* | path | string<uuid> | Charging limit id |
Responses
| Status | Body | Description |
|---|---|---|
| 200 | DeleteChargingLimitResponse | The charging_station answered |
| 401 | ErrorBody | Missing, invalid, or expired bearer token |
| 403 | ErrorBody | The caller is a member of the charging_station's organization but below the required role |
| 404 | ErrorBody | No charging_station or charging limit with this id exists |
| 409 | ErrorBody | The charging_station is not connected to the CSMS |
| 502 | ErrorBody | The charging_station gave no usable answer |
| 503 | ErrorBody | The request could not be sent |
| 504 | ErrorBody | The charging_station did not answer in time |