Skip to content

Availability

Computed free appointment slots. Availability is derived from Team Member schedules, existing appointments, and service durations — query it right before creating an appointment to offer valid start times.

Search availability slots

Request

Computes available start times for the given services within a date range — optionally narrowed to one Team Member. Slots are derived from configured schedules, existing appointments, and service durations; starts_at values carry the Location's local UTC offset and can be passed directly to createAppointment.

This is a computed read-only aggregate: slots have no ids and can disappear at any moment when another request schedules an overlapping appointment (a lost race on create returns 409 slot_taken).

Security
OAuth2(Required scopes: availability:read) or RestrictedKey
Path
location_idintegerrequired

Identifier of the Location. Verified against the credential on every call — a Location the credential cannot access responds with 404.

Query
service_idsArray of integers, non-emptyrequired

Services the appointment will consist of.

team_member_idinteger

Restrict the search to one Team Member.

date_fromstring, (date)required

First date of the range (inclusive), YYYY-MM-DD.

date_tostring, (date)required

Last date of the range (inclusive), YYYY-MM-DD.

curl -i -X GET \
  'https://developer.alteg.io/_mock/en/b2b-v3/openapi/locations/{location_id}/availability?service_ids=0&team_member_id=0&date_from=2019-08-24&date_to=2019-08-24' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Free slots for the requested services and range.

Headers
RateLimit-Remaininginteger, (int32), >= 0

Requests left in the most constrained policy window that applies to this request.

RateLimit-Resetinteger, (int32), >= 0

On 429, seconds until the most constrained policy frees up; it equals Retry-After there. On a successful response it reports the length of that policy's window rather than the time left in the current one, so treat it as the window size, not as a countdown — the counter to pace against is RateLimit-Remaining.

RateLimit-Policystring

Most constrained policy applied to the request, as <limit>;w=<window in seconds>.

Example:"10;w=60"
X-Request-Idstring

Request identifier for support and log correlation.

Bodyapplication/json
dataArray of objects(AvailabilitySlot)required
has_morebooleanrequired

Whether more items exist beyond this page.

next_cursorstring or nullrequired

Opaque cursor for the next page; null on the last page.

objectstringrequired
Value:"list"
Response
{ "object": "list", "data": [ {}, {} ], "has_more": false, "next_cursor": null }