Skip to main content
GET
Returns the bookable slot starts for a single location across the requested window. Slots are generated from the location’s open_hours, with global / per-location blocked dates skipped and already-booked Aniva test sessions subtracted, so the result reflects what your partners can actually reserve client-side. Requires the test_sessions_schedule scope. The location must also fall within your API key’s location-group access context.
Use this endpoint instead of inferring availability from the static open_hours returned by List Locations — only this endpoint accounts for live bookings and provider-side schedule changes.
Responses are returned with Cache-Control: private, max-age=30, stale-while-revalidate=60, so the browser may serve a cached payload for up to ~30 seconds. A slot booked inside that window can still appear bookable until the next refresh — surface conflicts at booking time as well.

Path parameters

string
required
Location identifier (UUID). Use the id from List Locations.

Query parameters

string
Inclusive start of the window in YYYY-MM-DD (interpreted in timezone). Optional. Defaults to today when neither date is supplied, or to end_date − 30 days when only end_date is supplied. Past dates are silently clamped to today.
string
Inclusive end of the window in YYYY-MM-DD (interpreted in timezone). Optional. Defaults to today + 30 days when neither date is supplied, or to start_date + 30 days when only start_date is supplied. Must be on or after start_date and within 90 days of today.
string
IANA timezone (e.g. Europe/Berlin) used to interpret start_date / end_date and to group slots by calendar date. Optional — defaults to the location’s own timezone. Slot start times themselves are always rendered as UTC instants (Z); the timezone only affects which calendar day a slot is grouped under.

Response

On success, the API returns 200 OK with a single availability object.
string
required
Echoed location identifier.
string
IANA timezone used to render the response (e.g., Europe/Berlin) — echoes the timezone query param when supplied, otherwise the location’s timezone. May be null if unknown.
integer
Spacing between consecutive bookable slot starts in minutes. The location-configured grid step — every slot in availability falls on this grid. null only when the location has no scheduling configuration. Not a session-duration window: overlapping bookings at different starts do not conflict; only exact-start collisions count toward concurrency.
array
required
Per-day bookable slots. Days with zero bookable slots are omitted to keep the payload tight. Each entry has:

Error responses