REST API
Read and write your calendars, event types and bookings over HTTP.
Authentication
Every request carries an API key as a bearer token. Keys are created on the Developers page and shown exactly once — only a SHA-256 hash is stored.
Keys are rate limited per hour according to your plan: 600 on Pro, 3000 on Scale.
curl https://your-tandem-host/api/v1/me \
-H 'Authorization: Bearer tnd_live_...'Endpoints
Everything returns `{ data }` on success and `{ error: { code, message } }` on failure.
| Method | Path | What it does |
|---|---|---|
| GET | /api/v1/me | The authenticated account and its plan |
| GET | /api/v1/accounts | Connected calendar accounts |
| GET | /api/v1/calendars | Every calendar Tandem can see |
| GET | /api/v1/sync-groups | List sync groups |
| POST | /api/v1/sync-groups | Create a sync group |
| PATCH | /api/v1/sync-groups/:id | Update one |
| DELETE | /api/v1/sync-groups/:id | Delete one and remove its mirrors |
| GET | /api/v1/event-types | List event types |
| POST | /api/v1/event-types | Create an event type |
| GET | /api/v1/event-types/:id/availability | Bookable slots, computed live |
| GET | /api/v1/bookings | List bookings |
| POST | /api/v1/bookings | Create a booking |
| DELETE | /api/v1/bookings/:id | Cancel a booking |
| GET | /api/v1/webhooks | List webhook endpoints |
| POST | /api/v1/webhooks | Subscribe to events |
| DELETE | /api/v1/webhooks/:id | Unsubscribe |