The SchedulingKit REST API lets you programmatically manage event types, events, clients, locations, workflows, invoices, transactions, and taxes.
All API requests require a Bearer token in the Authorization header.
Include the token in every request:
Authorization: Bearer your-api-token-here
https://yourdomain.com/api/v1
Replace yourdomain.com with your app's domain or subdomain.
| Method | Endpoint | Description |
|---|---|---|
| GET | /team | Get current team info |
| PUT | /team | Update team info |
| Method | Endpoint | Description |
|---|---|---|
| GET | /event-types | List all event types |
| POST | /event-types | Create an event type |
| GET | /event-types/{id} | Get a specific event type |
| PUT | /event-types/{id} | Update an event type |
| DELETE | /event-types/{id} | Delete an event type |
| Method | Endpoint | Description |
|---|---|---|
| GET | /events | List events (supports filters) |
| POST | /events | Create an event |
| GET | /events/{id} | Get event details |
| PUT | /events/{id} | Update an event |
| DELETE | /events/{id} | Cancel an event |
| GET | /events/{id}/occurrences | List recurring event occurrences |
| Method | Endpoint | Description |
|---|---|---|
| GET | /clients | List clients |
| POST | /clients | Create a client |
| GET | /clients/{id} | Get client details |
| PUT | /clients/{id} | Update a client |
| DELETE | /clients/{id} | Delete a client |
| Method | Endpoint | Description |
|---|---|---|
| GET | /locations | List locations |
| POST | /locations | Create a location |
| GET | /locations/{id} | Get location details |
| PUT | /locations/{id} | Update a location |
| DELETE | /locations/{id} | Delete a location |
| Method | Endpoint | Description |
|---|---|---|
| GET | /workflows | List workflows |
| POST | /workflows | Create a workflow |
| GET | /workflows/{id} | Get workflow details |
| PUT | /workflows/{id} | Update a workflow |
| DELETE | /workflows/{id} | Delete a workflow |
| Method | Endpoint | Description |
|---|---|---|
| GET | /invoices | List invoices |
| POST | /invoices | Create an invoice |
| GET | /invoices/{id} | Get invoice details |
| PUT | /invoices/{id} | Update an invoice |
| Method | Endpoint | Description |
|---|---|---|
| GET | /transactions | List transactions |
| GET | /transactions/{id} | Get transaction details |
| Method | Endpoint | Description |
|---|---|---|
| GET | /taxes | List tax rules |
| POST | /taxes | Create a tax rule |
| GET | /taxes/{id} | Get tax rule details |
| PUT | /taxes/{id} | Update a tax rule |
| DELETE | /taxes/{id} | Delete a tax rule |
List endpoints return paginated results. Use query parameters:
page — Page number (default: 1).per_page — Items per page (default: 15, max: 100).Response includes pagination metadata: current_page, last_page, per_page, total.
List endpoints support query filters. Common filters:
search — Text search across relevant fields.status — Filter by status.from / to — Date range filters.Refer to specific endpoint documentation for available filters.
API requests are rate-limited. If you exceed the limit, you'll receive a 429 Too Many Requests response with a Retry-After header.
| Status | Meaning |
|---|---|
200 | Success |
201 | Created |
400 | Bad request (invalid parameters) |
401 | Unauthorized (invalid or missing token) |
403 | Forbidden (insufficient permissions) |
404 | Not found |
422 | Validation error (details in response body) |
429 | Rate limited |
500 | Server error |
Error responses include a JSON body with message and optionally errors (for validation).
Connect Zoom to automatically create meeting links when customers book video calls.
Get booking notifications in Slack, manage your schedule with slash commands, and book from Slack.
Sync with Microsoft Outlook/Office 365 for conflict checking and event creation.
Accept payments for bookings and invoices with Stripe Connect.
Embed the booking flow on your website so visitors can book without leaving your site.