List bookable appointment types.
List bookable appointment types.
GET
https://app.softsolz.uk/api/v1/services/appointments/typesRecent Requests
Kept only in this browserTimeStatusTook
Send a request with Try it to see it here.
Headers
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Query Params
statusstringFilter by draft, active, or archived.
public_onlybooleanWhen "true", return only types bookable from a public link.
limitintegerPage size, 1-200.
offsetintegerPagination offset.
Response
Response Body · array of objects
idstringAppointment type id.slugstringURL-safe type slug, unique per tenant.namestringDisplay name.descriptionstring | nullOptional description.kindstringHow this type is scheduled. Built-in values are one_time, recurring, multi_visit, project, route, maintenance, emergency and walk_in; any other lowercase slug is kept as your own wording.duration_minutesintegerDefault duration.arrival_window_minutesinteger | nullWhen set, the customer books an arrival window of this length instead of an exact time.buffer_before_minutesintegerProtected time before the appointment.buffer_after_minutesintegerProtected time after the appointment.travel_minutesintegerTravel time reserved around the appointment.location_modestringWhere the appointment happens. Built-in values are business, customer, virtual, phone, route_stop and hybrid; any other lowercase slug is kept as your own wording.meeting_urlstring | nullStatic meeting room URL.capacityintegerPlaces per slot. 1 is one-to-one; above 1 enables group booking.booking_modestringWhether bookings confirm instantly or need approval.price_centsinteger | nullPrice in the smallest currency unit.currencystring | nullISO 4217 currency code.deposit_centsinteger | nullDeposit taken at booking, in the smallest currency unit.is_publicbooleanWhether the type is bookable from a public booking link or widget.intake_fieldsarray of objectsQuestions asked at booking time. Same field-schema shape the Forms builder uses.requirementsarray of objectsWhat the appointment needs simultaneously, for example one engineer and one van.stagesarray of objectsOrdered visits for multi-visit, project, and route types.resourcesarray of objectsWhich resources can deliver this type, with optional duration and price overrides.statusstringCurrent status.created_atstringWhen the record was created.updated_atstringRound-trip as expected_updated_at to guard against stale writes.Request
curl --request GET \ --url https://app.softsolz.uk/api/v1/services/appointments/types \ --header 'Authorization: Bearer sk_live_your_key'Credentials
Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.
Response · 200
{ "data": [ { "id": "7", "slug": "boiler-service", "name": "Boiler service", "description": "your-description", "kind": "maintenance", "duration_minutes": 60, "arrival_window_minutes": 240, "buffer_before_minutes": 0, "buffer_after_minutes": 15, "travel_minutes": 20, "location_mode": "customer", "meeting_url": "https://example.com", "capacity": 1, "booking_mode": "instant", "price_cents": 9500, "currency": "gbp", "deposit_cents": 2000, "is_public": true, "intake_fields": [ { "id": "boiler_make", "type": "text", "label": "Boiler make", "required": false } ], "requirements": [ { "resource_kind": "staff", "count": 1 } ], "stages": [ { "sequence": 1, "name": "Survey", "duration_minutes": 45, "blocks_resource": true } ], "resources": [ { "resource_id": 3, "duration_override_minutes": 45 } ], "status": "active", "created_at": "2026-01-01T09:00:00.000Z", "updated_at": "2026-01-01T09:00:00.000Z" } ], "meta": { "limit": 50, "offset": 0, "total": 1, "has_more": false }}