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
Responses carry
open_hours, with global / per-location blocked dates skipped and
already-booked Aniva test sessions subtracted, so the result reflects what your patients 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,
per-date schedule exceptions, and the 12-hour minimum
notice at Aniva-operated locations. Every
slot returned here is bookable as-is.Cache-Control: private, max-age=30, stale-while-revalidate=60, so a 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) and never shift with this parameter — the
slot grid is always projected from the location’s own timezone; the parameter only affects which
calendar day a slot is grouped under. Day entries in the response cover exactly
start_date..end_date as calendar days in this timezone. Omit it unless you render the picker
in another timezone.Response
On success, the API returns200 OK with a single availability object.
string
required
Echoed location identifier.
string
required
IANA timezone the response is rendered in (e.g.,
Europe/Berlin) — echoes the timezone query
param when supplied, otherwise the location’s own timezone.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: