Bookings

Get a booking

Returns one booking with the guest's answers. Scope: bookings:read. Keys: secret.

GET/bookings/{id}getBooking

Authorizations

bearerAuthhttp (bearer)

Authorization: Bearer clndr_sk_… (secret) or clndr_pk_… (publishable).

apiKeyHeaderapiKey

The same key in a custom header, for clients that can't set Authorization.

Server

https://www.clndr.pro/api/v1

Production

Path Parameters

idstring<uuid>required

The booking's id.

Example: c3a7e5d1-2b9f-4c6e-8a1d-7f4b0e2c9a58

Responses

200The booking and the guest's answers.application/json
dataobjectrequired
idstring<uuid>required
booking_page_idstring<uuid>required
user_idstring<uuid>required

The host.

guest_namestringrequired
guest_emailstring<email>required
start_timestring<date-time>required
end_timestring<date-time>required
statusenum("pending", "confirmed", "cancelled", "completed")required

pending is waiting for the host's approval. completed is reserved and not set today.

cancellation_reasonstringnull
reminder_sentbooleannull
google_meet_linkstring,null<uri>

Set once a Google Meet link exists: at booking time for direct pages with Meet links on, at confirmation for approval pages.

google_calendar_event_idstringnull
google_calendar_idstringnull
sync_statusenum("not_synced", "pending", "synced", "failed")

Whether the booking's Google Calendar event was created, as recorded when the guest booked or the host acted in the dashboard. Confirming or cancelling through this API doesn't update it, so check google_calendar_event_id and google_meet_link after a PATCH or DELETE. not_synced means no event was needed when it was last recorded (no Meet links on the page, or not confirmed yet).

last_synced_atstring,null<date-time>
sync_failure_reasonstringnull

Why the Google Calendar event couldn't be created, for example Google Calendar is not connected.

created_atstring<date-time>required
updated_atstring<date-time>required
meeting_responsesarray<object>required

The guest's answers to the page's questions.

question_idstring<uuid>required
answerstringrequired
401The key is missing, unknown, revoked or expired.application/json
errorstringrequired

What went wrong, in plain English.

403The key doesn't have the scope this endpoint needs.application/json
errorstringrequired

What went wrong, in plain English.

404No booking with this id on the key's account.application/json
errorstringrequired

What went wrong, in plain English.

429Too many requests from this key in the current 60-second window.application/json
errorstringrequired

What went wrong, in plain English.

500Something failed on our side. Retry with exponential backoff.application/json
errorstringrequired

What went wrong, in plain English.

curl https://www.clndr.pro/api/v1/bookings/c3a7e5d1-2b9f-4c6e-8a1d-7f4b0e2c9a58 \
  --header 'Authorization: Bearer <token>'
{
  "data": {
    "id": "c3a7e5d1-2b9f-4c6e-8a1d-7f4b0e2c9a58",
    "booking_page_id": "8b6f2c1e-4a1d-4f0b-9a63-2f0c5d7e9b14",
    "user_id": "5d2e9f40-7c1b-4e8a-b0d6-3a9f1c2e8d77",
    "guest_name": "Grace Hopper",
    "guest_email": "grace@example.com",
    "start_time": "2026-10-15T08:40:00+00:00",
    "end_time": "2026-10-15T09:10:00+00:00",
    "status": "confirmed",
    "cancellation_reason": null,
    "reminder_sent": false,
    "google_meet_link": "https://meet.google.com/abc-defg-hij",
    "google_calendar_event_id": "6v1m0r2k8f3t5q9b7n4c",
    "google_calendar_id": "primary",
    "sync_status": "synced",
    "last_synced_at": "2026-10-10T12:31:07.481+00:00",
    "sync_failure_reason": null,
    "created_at": "2026-10-10T12:31:05.902+00:00",
    "updated_at": "2026-10-10T12:31:07.481+00:00",
    "meeting_responses": [
      {
        "question_id": "0e4b7a2c-9d1f-4b3e-a6c8-5f2d1e9b7c40",
        "answer": "Moving our sales demos onto clndr.pro."
      }
    ]
  }
}