Booking pages

List booking pages

Returns every booking page on the key's account, newest first. The list includes inactive and private pages: check is_active (and visibility, if it matters to you) before you show a page to guests. Scope: booking_pages:read. Keys: secret and publishable.

GET/booking-pageslistBookingPages

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

Responses

200Your booking pages.application/json
dataarray<object>required
idstring<uuid>required

Pass this as bookingPageId when you create a booking.

slugstringrequired

URL segment, unique per account. Lowercase letters, digits and hyphens.

titlestringrequired
descriptionstringnullrequired

Markdown, written by the host. Render it as Markdown, not as plain text.

duration_minutesintegerrequired

Length of every slot.

booking_typeenum("direct", "approval")required

direct bookings are confirmed on the spot. approval bookings start as pending until the host confirms or cancels them.

max_days_aheadintegernullrequired

How many days ahead guests can book. Slots further out are not returned. null means no limit.

buffer_time_minutesintegernullrequired

Gap the host keeps between consecutive slots.

visibilityenum("public", "private", "team")required

Who can open the hosted booking page at www.clndr.pro/{username}/{slug}. private pages need an access code; team pages need a signed-in team member. API keys see all of their owner's pages regardless.

auto_generate_meet_linkbooleannullrequired

When true, confirmed bookings get a Google Calendar event with a Google Meet link.

is_activebooleannullrequired

Inactive pages still appear in List booking pages, but can't be fetched, offer no slots and can't be booked.

created_atstring<date-time>required
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.

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/booking-pages \
  --header 'Authorization: Bearer <token>'
{
  "data": [
    {
      "id": "8b6f2c1e-4a1d-4f0b-9a63-2f0c5d7e9b14",
      "slug": "intro-call",
      "title": "Intro call",
      "description": "A 30 minute call to see if we're a fit.\n\n- What you're building\n- Timeline and budget",
      "duration_minutes": 30,
      "booking_type": "direct",
      "max_days_ahead": 30,
      "buffer_time_minutes": 10,
      "visibility": "public",
      "auto_generate_meet_link": true,
      "is_active": true,
      "created_at": "2026-09-02T08:14:55.120+00:00"
    }
  ]
}