Locations
Get Availability
Retrieve bookable slot starts for a single location
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
Location identifier (UUID). Use the
id from List Locations.Query parameters
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.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.IANA timezone (e.g.
Europe/Berlin) used to interpret start_date / end_date and to render the
offset on every returned slot. Optional — defaults to the location’s own timezone. The wall-clock
bookable times are unchanged; only the offset notation differs.Response
On success, the API returns200 OK with a single availability object.
Echoed location identifier.
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.Length of each appointment in minutes.
null only when the location has no scheduling
configuration at all.Gap between consecutive slot starts in minutes — inferred from the response.
null when fewer
than two slots were returned. The buffer between back-to-back appointments equals
slot_interval_minutes − slot_duration_minutes.Per-day bookable slots. Days with zero bookable slots are omitted to keep the payload tight.
Each entry has:
Error responses
| Status | Description |
|---|---|
400 | Invalid date or timezone format, end_date before start_date, or end_date more than 90 days in the future. |
403 | Forbidden — missing test_sessions_schedule scope or location outside your access context. |
404 | Location not found or inactive. |
500 | Internal server error. |