List booking types
/booking-typesReturns your booking types (the kinds of meeting people can book), sorted by name. With a publishable key,
only public booking types are returned.
Each public booking type carries a public_form: the intake questions an attendee answers, taken from the
visit form of its visit_type without the fields your staff fill in. A booking widget renders these.
Scope: bookings:read · Plan: Pro and Enterprise in live mode; every plan in test mode.
Publishable keys: allowed (public booking types only).
Send Authorization: Bearer <token> on every request. The token is one of:
| Prefix | What it is | Where it may be used |
|---|---|---|
agoo_sk_live_ | Secret key, live mode | Your servers only |
agoo_sk_test_ | Secret key, test mode | Your servers only |
agoo_pk_live_ | Publishable key, live mode | Browsers and apps: create pre-registrations and bookings, read public booking types (with their intake questions) and their free slots, read the visit types open for pre-registration with their public forms. Never lists people. |
agoo_pk_test_ | Publishable key, test mode | As above, in test mode |
Admins create keys in Console → Developers → API keys and choose each key's scopes. A key is shown once. Never put a secret key in a URL, a browser or a mobile app.
In: header
Scope: bookings:read
Query Parameters
How many items to return, from 1 to 100.
1 <= value <= 10025The next_cursor from the previous page. Leave it out for the first page.
length <= 512Only booking types held at this site.
^site_[0-7][0-9a-hjkmnp-tv-z]{25}$"site_01kjpt3yw0fz0v414608h9x65s"Only booking types this person takes.
^person_[0-7][0-9a-hjkmnp-tv-z]{25}$"person_01kjsesxm0e4zbyvkr7bcfxbfg"Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/booking-types?limit=25"{ "data": [ { "id": "btype_01kn44arm0eya81713cpbnfbpq", "name": "Meet Treasury", "slug": "meet-treasury", "description": "A 30-minute meeting with the Treasury team at Ridge HQ.", "duration_minutes": 30, "meeting_kind": "in_person", "visit_type": "meeting", "site_id": "site_01kjpt3yw0fz0v414608h9x65s", "host_ids": [ "person_01kjsesxm0e4zbyvkr7bcfxbfg" ], "requires_confirmation": false, "confirmation_window_hours": 24, "visibility": "public", "public_form": { "version": 2, "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "vehicle_plate": { "type": "string", "title": "Vehicle number plate", "maxLength": 12 }, "bringing_laptop": { "type": "boolean", "title": "Bringing a laptop?" } }, "additionalProperties": false } }, "time_zone": "Africa/Accra", "created_at": "2026-04-01T09:00:00Z", "updated_at": "2026-09-02T11:20:00Z" }, { "id": "btype_01kqs3efm0emma1643wwgmw0jc", "name": "New client consultation", "slug": "new-client-consultation", "description": "A 45-minute first meeting with a relationship manager at Ridge HQ. The host confirms each request.", "duration_minutes": 45, "meeting_kind": "in_person", "visit_type": "meeting", "site_id": "site_01kjpt3yw0fz0v414608h9x65s", "host_ids": [ "person_01kjsesxm0e4zbyvkr7bcfxbfg" ], "requires_confirmation": true, "confirmation_window_hours": 24, "visibility": "public", "public_form": { "version": 2, "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "vehicle_plate": { "type": "string", "title": "Vehicle number plate", "maxLength": 12 }, "bringing_laptop": { "type": "boolean", "title": "Bringing a laptop?" } }, "additionalProperties": false } }, "time_zone": "Africa/Accra", "created_at": "2026-05-04T09:00:00Z", "updated_at": "2026-05-04T09:00:00Z" } ], "next_cursor": null, "has_more": false}Mark a delivery as collected POST
Marks a `received` delivery as collected and fires `delivery.collected`. Leave `collected_by_name` out when the recipient collected it themselves. A delivery that is already collected returns `invalid_state`. **Scope:** `deliveries:write` · **Plan:** Pro and Enterprise in live mode; every plan in test mode.
Get free slots GET
Returns the slots that can be booked for a booking type between two dates, after working hours, Ghana public holidays, buffers, minimum notice, daily caps and existing bookings are taken into account. A `pending` booking holds its slot until the host declines it or it expires. Slots are a snapshot: one can be taken before you book it, which returns `conflict`. The range covers whole days in `time_zone` and can span up to 31 days. **Scope:** `bookings:read` · **Plan:** Pro and Enterprise in live mode; every plan in test mode. **Publishable keys:** allowed for public booking types.