Demo bookings
Demo booking APIs exist in two mounts:
- Global —
/api/v1/demo-bookings/(uses active workspace or query param) - Workspace nested —
/api/v1/{workspace_id}/leads/demo-bookings/
Global routes
GET /api/v1/demo-bookings/
POST /api/v1/demo-bookings/create/
POST /api/v1/demo-bookings/check-overlap/
GET /api/v1/demo-bookings/settings/
PATCH /api/v1/demo-bookings/settings/
GET /api/v1/demo-bookings/{booking_id}/
PUT /api/v1/demo-bookings/{booking_id}/update/
DELETE /api/v1/demo-bookings/{booking_id}/delete/
POST /api/v1/demo-bookings/{booking_id}/convert-to-lead/
POST /api/v1/demo-bookings/bulk-convert-to-lead/
Authorization: Bearer <token>
Check overlap (pre-flight)
Call this before creating a Google Meet or Microsoft Teams calendar event so a slot conflict does not leave an orphan meeting in Outlook/Google.
POST /api/v1/demo-bookings/check-overlap/
Content-Type: application/json
Authorization: Bearer <token>
{
"workspace_id": "20acf86e-f26f-4e70-aaa4-e6097d5a680b",
"start_time": "2026-08-20T15:00:00Z",
"end_time": "2026-08-20T15:30:00Z",
"mode": "microsoft_teams",
"source": "manual"
}
200→{ "ok": true, "available": true }409→ samedemo_booking_time_overlappayload as create- Calendly mode/source skips the check (always available here)
Recommended client order for Meet/Teams:
check-overlap…/integrations/calendar/create-demo-event/or…/microsoft-calendar/create-demo-event/…/demo-bookings/create/withmeeting_link+ calendar fields
Create booking
POST /api/v1/demo-bookings/create/
Content-Type: application/json
Authorization: Bearer <token>
Request body
{
"event_id": "550e8400-e29b-41d4-a716-446655440000",
"lead_name": "Jane Doe",
"lead_email": "jane@example.com",
"scheduled_at": "2026-07-01T14:00:00Z"
}
Response (201 Created)
{
"id": "dd0e8400-e29b-41d4-a716-446655440008",
"lead_name": "Jane Doe",
"lead_email": "jane@example.com",
"scheduled_at": "2026-07-01T14:00:00Z",
"status": "scheduled",
"event_id": "550e8400-e29b-41d4-a716-446655440000"
}
Convert to lead
POST /api/v1/demo-bookings/{booking_id}/convert-to-lead/
Creates or links a lead from the demo booking.
Settings
GET /api/v1/demo-bookings/settings/
PATCH /api/v1/demo-bookings/settings/
Configure demo booking defaults (Calendly integration, etc.).
Webhooks
demo_booking.createddemo_booking.updated/demo_booking.status_changed
Integrations
Calendly sync and booking creation: Calendly guide · API