Skip to main content
POST
/
clusters
/
{clusterId}
/
schedules
Apply a schedule to every location in a cluster
curl --request POST \
  --url https://api.ridergy.com/v1/clusters/{clusterId}/schedules \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "startTime": "2026-06-12T08:00:00Z",
  "endTime": "2026-06-12T18:00:00Z",
  "limitKw": 50,
  "priority": 5
}
'
{
  "clusterId": "clst_20260612_a1b2c3d4",
  "applied": [
    {
      "locationId": "3632155",
      "priority": 5,
      "limitKw": 50,
      "startTime": "2023-11-07T05:31:56Z",
      "endTime": "2023-11-07T05:31:56Z",
      "permanentLimitKw": 100,
      "effectiveLimitKw": 50
    }
  ],
  "errors": [
    {
      "locationId": "<string>",
      "error": {
        "error": {
          "code": "LOCATION_NOT_FOUND",
          "message": "Location 123 was not found for the provided tenant",
          "requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        }
      }
    }
  ],
  "totalLocations": 2
}

Authorizations

x-api-key
string
header
required

Per-tenant API key. Tenant is derived from the key — never from the request.

Path Parameters

clusterId
string
required

Body

application/json
startTime
string<date-time>
required

ISO-8601 UTC timestamp. Required.

Example:

"2026-06-12T08:00:00Z"

endTime
string<date-time>
required

ISO-8601 UTC timestamp. Must be after startTime and in the future. Required.

Example:

"2026-06-12T18:00:00Z"

limitKw
number<float>
required

Power limit in kW. Must be greater than 0. Required.

Example:

50

priority
integer
default:0

OCPP-stack-style priority level, 0 (lowest) to 10 (highest). Submitting a profile at a priority that already exists for this target replaces it.

Required range: 0 <= x <= 10
Example:

5

Response

Schedule applied to at least one location

clusterId
string
Example:

"clst_20260612_a1b2c3d4"

applied
object[]
errors
object[]
totalLocations
integer
Example:

2