Use these endpoints to sync event types, bookings, and availability with your own systems. List endpoints return up to 100 records ordered by newest first and include pagination metadata.
GET/api/v1/me
Read the account identity attached to the API key. Useful for smoke tests and integration setup validation.
GET/api/v1/event-types?active=true&limit=50
List event types with cursor pagination. Optional active: true or false. Use pagination.nextCursor as cursor for the next page.
POST/api/v1/event-types
Create an event type with booking rules, location, paid-booking promo fields, active state, and customQuestions. Question types include TEXT, TEXTAREA, EMAIL, PHONE, URL, FILE, and SELECT.
GET/api/v1/event-types/:id
Read one event type and its public bookingUrl and embedUrl.
PATCH/api/v1/event-types/:id
Update event type fields, paid-booking promo fields, or replace its customQuestions array, including FILE upload questions.
DELETE/api/v1/event-types/:id
Delete an event type owned by the API key user.
POST/api/v1/event-types/:id/duplicate
Duplicate an existing event type with API-key auth, including rules, branding, questions, and event-specific workflows.
GET/api/v1/bookings?status=confirmed&limit=50
List bookings with cursor pagination. Optional status: pending, confirmed, cancelled, rescheduled, or no_show. Use pagination.nextCursor as cursor for the next page.
POST/api/v1/bookings
Create a booking after Slotly validates availability, buffers, notice, booking window, conflicts, and optional referrer attribution.
DELETE/api/v1/bookings/:id
Cancel a future booking and dispatch cancellation webhooks.
POST/api/v1/bookings/:id/approval
Approve or decline a pending booking request with {"action":"approve"} or {"action":"decline","reason":"Optional note"}. Approval creates calendar events, sends confirmation email, and dispatches booking webhooks.
GET/api/v1/people?q=acme&limit=50
List saved contacts with cursor pagination and optional search across name, email, and company.
POST/api/v1/people
Create a contact with name, optional email, phone, company, and notes.
GET/api/v1/people/:id
Read one contact owned by the API key user.
PATCH/api/v1/people/:id
Update contact profile fields.
DELETE/api/v1/people/:id
Delete a contact owned by the API key user.
GET/api/v1/teams?limit=50
List teams where the API key user is an active member.
POST/api/v1/teams
Create a team when the account has team access.
GET/api/v1/teams/:id
Read team details, members, team event types, host assignments, and public booking links.
PATCH/api/v1/teams/:id
Update team name or slug. Owner or admin role required.
DELETE/api/v1/teams/:id
Delete a team. Owner role required.
GET/api/v1/teams/:id/members
List active and inactive members for a team.
POST/api/v1/teams/:id/members
Add or reactivate a Slotly user by username or email. Owner or admin role required.
PATCH/api/v1/teams/:id/members
Update member role, active state, scheduling access, or booking weight.
DELETE/api/v1/teams/:id/members?userId=:userId
Remove a non-owner team member.
GET/api/v1/teams/:id/event-types?active=true&limit=50
List team scheduling links with host assignments and public bookingUrl values.
POST/api/v1/teams/:id/event-types
Create round-robin or collective team event types with hosts and weights.
PATCH/api/v1/teams/:id/event-types?eventTypeId=:eventTypeId
Update a team event type, routing mode, status, or host assignments.
DELETE/api/v1/teams/:id/event-types?eventTypeId=:eventTypeId
Delete a team event type. Owner or admin role required.
GET/api/v1/teams/:id/calendar-events?start=2026-06-01T00:00:00.000Z&end=2026-07-01T00:00:00.000Z
List master-calendar events for a team, optionally filtered by date range or userId.
POST/api/v1/teams/:id/calendar-events
Create a team master-calendar event for yourself, or for another member when owner/admin.
GET/api/v1/teams/:id/calendar-events/:eventId
Read one team master-calendar event.
PATCH/api/v1/teams/:id/calendar-events/:eventId
Update a team master-calendar event. Members can edit their own; owners/admins can edit any.
DELETE/api/v1/teams/:id/calendar-events/:eventId
Delete a team master-calendar event. Members can delete their own; owners/admins can delete any.
GET/api/v1/teams/:id/analytics?from=2026-06-01&to=2026-06-30
Read team booking totals, manual calendar events, host utilization, team link performance, daily trends, and upcoming workload. Use days for quick ranges or from/to for a custom YYYY-MM-DD reporting window.
GET/api/v1/teams/:id/analytics/export?from=2026-06-01&to=2026-06-30
Download a CSV team analytics report with summary totals, member utilization, team link performance, daily trends, and upcoming items. Supports days or a custom from/to date range.
GET/api/teams/:id/bookings/export?type=event&calendarStatus=upcoming&from=2026-06-01&to=2026-06-30
Download a dashboard-authenticated CSV of team bookings and master-calendar events. Optional filters: q, type, calendarStatus, status, from, to, and limit. Date filters accept YYYY-MM-DD or ISO date-time values.
GET/api/v1/routing-forms?active=true&limit=50
List routing forms with target event type metadata and publicUrl values.
POST/api/v1/routing-forms
Create an intake routing form with questions, conditional routingRules, and a fallback target event type.
GET/api/v1/routing-forms/:id
Read one routing form owned by the API key user.
PATCH/api/v1/routing-forms/:id
Update routing form title, URL, questions, routingRules, target event type, or active state.
DELETE/api/v1/routing-forms/:id
Delete a routing form owned by the API key user.
GET/api/v1/analytics?from=2026-06-01&to=2026-06-30
Read booking totals, conversion, revenue, top event types, source attribution, daily buckets, and upcoming meetings. Use days for quick ranges or from/to for a custom YYYY-MM-DD reporting window.
GET/api/v1/analytics/export?from=2026-06-01&to=2026-06-30
Download a CSV analytics report with summary totals, event performance, traffic sources, daily trends, routing performance, team utilization, and upcoming meetings. Supports days or a custom from/to date range.
GET/api/v1/one-off-links?status=ACTIVE&limit=50
List private one-off booking links with usage counts, expiry, and publicUrl values.
POST/api/v1/one-off-links
Create a limited-use private booking link for an active event type.
GET/api/v1/one-off-links/:id
Read one one-off link owned by the API key user.
PATCH/api/v1/one-off-links/:id
Update label, max uses, status, or expiry.
DELETE/api/v1/one-off-links/:id
Delete a one-off link owned by the API key user.
GET/api/v1/meeting-polls?status=OPEN&limit=50
List meeting polls with options, vote counts, responses, finalized booking info, and publicUrl values.
POST/api/v1/meeting-polls
Create a meeting poll with 2-12 proposed start times for an active event type.
GET/api/v1/meeting-polls/:id
Read one meeting poll owned by the API key user.
PATCH/api/v1/meeting-polls/:id
Update title, description, open/closed status, or expiry for an unfinalized poll.
POST/api/v1/meeting-polls/:id/finalize
Finalize a poll option into a confirmed booking with connected calendar and Zoom writeback.
DELETE/api/v1/meeting-polls/:id
Delete an unfinalized meeting poll.
GET/api/v1/availability
Read timezone, weekly blocks, active date ranges, and date overrides.
PUT/api/v1/availability
Replace weekly availability and overrides using the dashboard validator.
{
"timezone": "America/Chicago",
"activeFrom": "2026-06-01",
"activeUntil": "2026-08-31",
"days": [
{
"dayOfWeek": 1,
"enabled": true,
"blocks": [
{ "startTime": 540, "endTime": 1020, "priority": "IDEAL" }
]
}
],
"overrides": [
{
"date": "2026-07-04",
"unavailable": true,
"priority": "IDEAL",
"note": "Holiday"
}
]
}