/api/classesTenant keyList upcoming scheduled class sessions for a provider. Filtered to status=Scheduled; cancelled and completed sessions never appear. The response always reflects bookable state.
Query
handle(required) — The provider's handle (e.g. sculpt-co).from(required) — Inclusive start of the date range, YYYY-MM-DD.to(required) — Inclusive end of the date range, YYYY-MM-DD. Maximum 60 days from from.
curl 'https://alerabooking.com/api/classes?handle=sculpt-co&from=2026-05-13&to=2026-06-13' \
-H 'x-alera-key: alr_sclp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
-H 'Origin: https://your-site.com'Response (200)
{
"classes": [
{
"id": "class-7a2c",
"scheduledAt": "2026-05-18T11:00:00.000Z",
"nameSnapshot": "Pilates Class",
"durationMin": 50,
"priceCents": 2000,
"capacity": 6,
"enrolledCount": 4,
"seatsLeft": 2,
"publicNote": null,
"instructor": { "id": "ins-...", "name": "Sarah Lee" }
}
],
"blackouts": [
{
"id": "bo-...",
"label": "Studio closed for Memorial Day",
"startsAt": "2026-05-25T00:00:00.000Z",
"endsAt": "2026-05-27T00:00:00.000Z",
"allDay": true,
"kind": "holiday"
}
]
}Errors
- 400 — Missing or invalid query params
- 401 — Invalid or revoked API key
- 403 — Origin not allowed for this API key, or handle does not match the key's provider
- 429 — Rate-limit exceeded (60/min/IP)