🔌 REST API Documentation
Build on
Book with Schedulo
Automate bookings, sync calendars, trigger workflows, and embed scheduling into any product using the Schedulo REST API.
Base URLapi.bookwithschedulo.com/api
FormatJSON
AuthBearer Token
Versionv1
BASE URL
https://api.bookwithschedulo.com/api
🔑
Authentication
All API requests require a Bearer token
Generate your API key from the dashboard under Account → API Keys. Include it in every request.
Request Header
Authorization: Bearer sk_live_your_api_key_here
cURL Example
curl -X GET "https://api.bookwithschedulo.com/api/bookings" \ -H "Authorization: Bearer sk_live_your_key_here" \ -H "Content-Type: application/json"
⚠️
Keep your API key secret. Never expose it in client-side code or commit it to version control. Revoke immediately if compromised from the dashboard.
⚡
Errors
Standard HTTP status codes
Error Response
{
"error": "Invalid or expired token",
"code": "UNAUTHORIZED"
}
🚦
Rate Limits
Per API key, per month
Each API key is limited to 10,000 requests per month on Pro plan. Limits reset on the 1st of each month.
Rate Limit Headers
X-RateLimit-Limit: 10000 X-RateLimit-Remaining: 9847 X-RateLimit-Reset: 2026-06-01T00:00:00Z
📅
Bookings
List, retrieve, update and manage bookings
GET
/bookings
List all bookings
| Param | Type | Required | Description |
|---|---|---|---|
| status | string | optional | confirmed, cancelled, pending |
| limit | integer | optional | Results per page (default 20, max 100) |
| offset | integer | optional | Pagination offset |
GET
/bookings/:id
Get a single booking by ID
PATCH
/bookings/:id
Cancel or reschedule a booking
| Param | Type | Required | Description |
|---|---|---|---|
| status | string | optional | Set to "cancelled" |
| scheduled_at | datetime | optional | New meeting time in ISO 8601 |
| cancellation_reason | string | optional | Reason shown to guest |
POST
/bookings/:id/no-show
Mark guest as no-show
Booking Object
{
"id": "b1234567-0000-0000-0000-000000000001",
"guest_name": "Priya Sharma",
"guest_email": "priya@example.com",
"guest_phone": "+91 98765 43210",
"event_title": "30 Minute Consultation",
"scheduled_at": "2026-06-01T10:00:00+05:30",
"duration_minutes": 30,
"status": "confirmed",
"meeting_link": "https://zoom.us/j/1234567890",
"no_show": false,
"host_notes": null,
"created_at": "2026-05-22T08:00:00Z"
}
🎯
Event Types
Manage your meeting types and settings
GET/eventsList all event types
GET/events/:idGet a single event type
POST/eventsCreate a new event type
PATCH/events/:idUpdate an event type
DELETE/events/:idDelete an event type
🕐
Availability
Get available slots for a date
GET
/public/slots/:event_type_id
Get available time slots
| Param | Type | Required | Description |
|---|---|---|---|
| date | string | required | Date in YYYY-MM-DD format |
| timezone | string | optional | IANA timezone (e.g. Asia/Kolkata) |
Example Response
GET /public/slots/evt_abc?date=2026-06-01
{
"slots": ["09:00", "09:30", "10:00", "10:30", "11:00"],
"timezone": "Asia/Kolkata"
}
🔗
Webhooks
Real-time booking event notifications
Subscribe to booking events and receive instant HTTP POST notifications at your endpoint.
GET/integrations/zapier/webhooksList subscriptions
POST
/integrations/zapier/webhooks
Subscribe to an event
| Param | Type | Required | Description |
|---|---|---|---|
| url | string | required | Your HTTPS endpoint to receive payloads |
| event | string | required | booking_confirmed, booking_cancelled, booking_rescheduled |
DELETE/integrations/zapier/webhooks/:idUnsubscribe
Webhook Payload Example
{
"event": "booking_confirmed",
"booking": {
"id": "b1234567-...",
"guest_name": "Priya Sharma",
"guest_email": "priya@example.com",
"event_title": "30 Minute Consultation",
"scheduled_at": "2026-06-01T10:00:00+05:30",
"meeting_link": "https://zoom.us/j/1234567890"
}
}
📦
Objects Reference
Core data types returned by the API
💡
All datetime fields are returned in ISO 8601 format with timezone offset. All IDs are UUIDs.
⚡
Zapier Integration
Connect Schedulo to 6,000+ apps — no code needed
Triggers
New Booking
Booking Cancelled
Booking Rescheduled
Actions
Create Booking
Cancel Booking
🔑
Authentication: Use your Schedulo API key as the Bearer token when connecting in Zapier. Generate one from dashboard → API Keys.