Free times
https://api.norreach.app/v1/availabilityFree times for a meeting type (default: the booking page's default type) between from and to (default: the next 7 days; at most 31 days), worked out from the hosts' working hours, calendars, buffers and notice — the same times your booking page offers. Narrow it to one host with host_id. Book one with POST /meetings.
curl -X GET "https://api.norreach.app/v1/availability" \
-H "Authorization: Bearer $NORREACH_API_KEY"{
"object": "availability",
"meeting_type_id": "5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e",
"duration_minutes": 30,
"timezone": "Europe/Stockholm",
"from": "2026-11-10T00:00:00.000Z",
"to": "2026-11-17T00:00:00.000Z",
"slots": [
{
"start": "2026-11-12T09:00:00.000Z",
"end": "2026-11-12T09:30:00.000Z",
"host_ids": [
"0b6f8a52-8d9e-4c1a-b7f3-5e2d9c4a1b00"
]
}
],
"truncated": false
}Authorizations
Bearer authentication: send Authorization: Bearer <key>, with an API key or an OAuth access token. The key needs the scope meetings:read. API keys and scopes
Query parameters
An id (UUID).
An id (UUID).
Response
200application/json— Free times
An id (UUID).
The booking page's time zone (slots themselves are UTC).
RFC 3339 UTC timestamp with milliseconds.
RFC 3339 UTC timestamp with milliseconds.
Show child attributesHide child attributes
RFC 3339 UTC timestamp with milliseconds.
RFC 3339 UTC timestamp with milliseconds.
More free times exist than were returned — narrow the range.
Errors
Errors are application/problem+json with a stable code.
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_request | The request couldn't be read. |
| 400 | unknown_field | The request has a field this operation doesn't know. |
| 401 | unauthorized | A valid API key is required. |
| 403 | insufficient_scope | This API key doesn't have the scope this operation needs. |
| 403 | feature_not_enabled | The API isn't switched on for this workspace. |
| 404 | not_found | That doesn't exist. |
| 409 | conflict | That conflicts with the current state. |
| 422 | validation_failed | The request has invalid fields. |
| 429 | rate_limited | Too many requests. Slow down and try again. |
| 500 | server_error | Something went wrong on our side. |
| 503 | unavailable | The API isn't available right now. Try again shortly. |