Booking pages
Get a booking page
Returns one active booking page with the host's public profile and the questions to ask guests. This is everything you need to render a booking form. Scope: booking_pages:read. Keys: secret and publishable.
GET
/booking-pages/{slug}getBookingPageAuthorizations
bearerAuthhttp (bearer)Authorization: Bearer clndr_sk_… (secret) or clndr_pk_… (publishable).
apiKeyHeaderapiKeyThe same key in a custom header, for clients that can't set Authorization.
Server
https://www.clndr.pro/api/v1Production
Path Parameters
The booking page's slug.
Example: intro-call
Responses
200The booking page, its host and its questions.application/json
401The key is missing, unknown, revoked or expired.application/json
What went wrong, in plain English.
403The key doesn't have the scope this endpoint needs.application/json
What went wrong, in plain English.
404No active booking page with this slug on the key's account.application/json
What went wrong, in plain English.
429Too many requests from this key in the current 60-second window.application/json
What went wrong, in plain English.
500Something failed on our side. Retry with exponential backoff.application/json
What went wrong, in plain English.
curl https://www.clndr.pro/api/v1/booking-pages/intro-call \
--header 'Authorization: Bearer <token>'fetch('https://www.clndr.pro/api/v1/booking-pages/intro-call', {
headers: {
Authorization: 'Bearer <token>'
}
})requests.get(
"https://www.clndr.pro/api/v1/booking-pages/intro-call",
headers={
"Authorization": "Bearer <token>"
}
)fetch('https://www.clndr.pro/api/v1/booking-pages/intro-call', {
headers: {
Authorization: 'Bearer <token>'
}
}){
"data": {
"bookingPage": {
"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",
"user_id": "5d2e9f40-7c1b-4e8a-b0d6-3a9f1c2e8d77",
"updated_at": "2026-09-30T11:02:10.004+00:00",
"availability_set_id": "a1f0c2d3-4e5b-4c6d-8e7f-9a0b1c2d3e4f",
"allowed_team_id": null,
"show_access_code_prompt": true,
"show_on_profile": true
},
"userProfile": {
"username": "ada",
"full_name": "Ada Lovelace",
"bio": "Building analytical engines.",
"avatar_url": "https://www.clndr.pro/avatars/ada.png",
"timezone": "Europe/London"
},
"questions": [
{
"id": "0e4b7a2c-9d1f-4b3e-a6c8-5f2d1e9b7c40",
"question_text": "What would you like to talk about?",
"question_type": "textarea",
"options": null,
"is_required": true,
"order_index": 0
},
{
"id": "6f1c3e8a-2d7b-4a9e-b5c1-8e0d4f2a6b93",
"question_text": "Phone number",
"question_type": "phone",
"options": null,
"is_required": false,
"order_index": 1
}
]
}
}{
"error": "Missing API key. Send `Authorization: Bearer <key>` or `x-clndr-key` header."
}{
"error": "API key is missing required scope(s): bookings:read"
}{
"error": "Booking page not found"
}{
"error": "Rate limit exceeded. This publishable key allows 120 requests per 60s window."
}{
"error": "Failed to fetch bookings"
}