List booking types
GET/api/v1/booking-types
scope
bookings:readThe things a customer can book — a consultation, a site visit — each with its duration and location. Only active types are returned, in the order the business arranged them. Types are managed in Bookings → Settings.
Request
curl "https://your-crm.example.com/api/v1/booking-types" \
-H "Authorization: Bearer $RAABTA_API_KEY"Response · 200 OK
{
"data": [
{
"id": "b00c1e00-1234-4abc-9def-000000000002",
"name": "Consultation",
"description": "A 30-minute discovery call",
"duration_minutes": 30,
"buffer_after_minutes": 0,
"location": "Clinic, Room 2",
"color": "#10b981"
}
]
}Response
Wrapped in { data: … }| Name | Type | Description |
|---|---|---|
idrequired | string (uuid) | UUID |
namerequired | string | What the customer is booking, e.g. Consultation |
descriptionrequired | string | null | A line about the type, shown to customers |
duration_minutesrequired | integer | How long a booking of this type lasts |
buffer_after_minutesrequired | integer | Gap kept free after the booking; already accounted for in the slots |
locationrequired | string | null | Where it happens; copied onto each booking |
colorrequired | string | null | Hex colour used on the calendar |
Errors
| Status | Code | When |
|---|---|---|
| 401 | unauthorized | No usable API key: the Authorization header is missing or malformed, or the key is unknown, revoked or expired. The three are deliberately indistinguishable. |
| 403 | forbidden | The key is valid but lacks the scope this endpoint requires, or the request came from an address outside the key’s IP allowlist. The message says which. |
| 403 | account_suspended | The account this key belongs to is suspended. Rotating the key will not help; contact support. |
| 422 | unprocessable | The request was well-formed but cannot be carried out. `reason` is a stable string saying why (for example `outside_window` or `stage_not_in_pipeline`). |
| 429 | rate_limited | The per-key budget, or the per-IP budget for failed authentication, is exhausted. Honour `Retry-After` before retrying. |
| 500 | internal | Something failed on our side. Safe to retry with the same Idempotency-Key; quote `request_id` if it persists. |