Download OpenAPI specification:
The Check Cherry Business API allows automated access to events, leads, bookings, and other business-specific features for individual Check Cherry accounts.
Base URL — All API requests should be made to:
https://api.checkcherry.com/api/v1/
All endpoints in this documentation are relative to this base URL.
Setup:
ik_) and use it to authenticate your requestsEach integration key is tied to a specific user, providing an audit trail and user-level permissions. You can create multiple keys and revoke them individually.
Versioning & Stability — This API is under active development. The API surface will evolve as we ship new features and improve existing ones. Please build your integrations with this in mind:
Pass your integration key as an Api-Key HTTP header with every request:
curl -H "Api-Key: ik_your_key_here" https://api.checkcherry.com/api/v1/leads
The key identifies both the business and the user automatically.
Security:
Check Cherry reserves the right to revoke any API key or suspend any account that appears to be compromised, is being used in violation of our terms of service, or is abusing the platform. This includes but is not limited to excessive requests, unauthorized data access, or any activity that degrades the service for other users.
Request format — Send JSON request bodies with the Content-Type: application/json
header for POST, PUT, and PATCH requests.
Response format — All responses follow the JSON:API format:
{
"data": {
"id": "123",
"type": "lead",
"attributes": { "first_name": "Jane", "email": "jane@example.com" },
"relationships": { ... }
}
}
Error responses use this structure:
{
"meta": { "status": "error" },
"status": "unauthorized",
"reason": "api_key_missing",
"message": "API key is required"
}
Pagination — List endpoints support pagination via page and per query parameters.
Responses include a meta object with pagination details:
{
"data": [ ... ],
"meta": { "total_count": 142, "per_page": 25 }
}
Check Cherry support can help with:
Check Cherry support cannot help with:
You are responsible for developing and maintaining your own integrations. These API docs include endpoint descriptions, parameter details, and response examples — we recommend using them alongside AI coding assistants (such as ChatGPT or Claude) to help build and troubleshoot your integration.
For platform issues, contact support@checkcherry.com.
Rate limiting — Check Cherry enforces rate limits on API requests. Specific limits
may vary based on your plan and endpoint, but typical usage should not encounter them.
If the rate limit is exceeded, Check Cherry returns a 403 Forbidden with an associated
"Rate Limit Exceeded" message. Back off and retry after a brief delay. Intentional or
repeated abuse of rate limits may result in your API key being revoked or your account
being suspended.
Leads represent potential customer inquiries — someone who has expressed interest in booking an event but hasn't yet committed. A lead captures contact information, event preferences, venue details, and any messages from the initial inquiry.
Use the Leads API to push inquiries from external sources (your website, third-party platforms, advertising campaigns) into Check Cherry, where they enter the business's sales pipeline. Leads can be assigned to staff members for follow-up, filtered and searched, and eventually converted into confirmed events.
Returns the full set of booking questions and their current answers for a lead. Each entry includes the question's column_name, label, kind, current value, and formatted_value.
Use the column_name of each entry as the key when sending updates via the PATCH /api/v1/leads/{lead_id}/booking_questions endpoint.
Required permission: lead_read
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "15",
- "type": "lead_booking_question",
- "attributes": {
- "id": 15,
- "lead_id": 46,
- "booking_question_id": 15,
- "editable": true,
- "column_name": "guest_count",
- "name": "Estimated Guest Count",
- "label": "Estimated guest count",
- "kind": "text",
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_source",
- "type": "lead_booking_question",
- "attributes": {
- "id": "utm_source",
- "lead_id": 46,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_source",
- "name": "UTM Source",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_campaign",
- "type": "lead_booking_question",
- "attributes": {
- "id": "utm_campaign",
- "lead_id": 46,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_campaign",
- "name": "UTM Campaign",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_medium",
- "type": "lead_booking_question",
- "attributes": {
- "id": "utm_medium",
- "lead_id": 46,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_medium",
- "name": "UTM Medium",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_term",
- "type": "lead_booking_question",
- "attributes": {
- "id": "utm_term",
- "lead_id": 46,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_term",
- "name": "UTM Term",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_content",
- "type": "lead_booking_question",
- "attributes": {
- "id": "utm_content",
- "lead_id": 46,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_content",
- "name": "UTM Content",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}
]
}Updates one or more booking question answers on the lead. The body's custom_questions keys must match the column_name of each booking question (as returned by the GET endpoint).
Only the keys you include are touched — other answers on the lead are preserved.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
required | object Keys are booking-question column names; values are the answer to record. |
{- "custom_questions": { }
}{- "meta": {
- "status": "ok"
}
}Creates a new lead for the specified business. A lead represents a potential customer inquiry that can later be converted into a confirmed event.
At minimum, an email address is required. All other fields are optional but recommended for a complete lead record.
The employee_id field assigns a staff member as the host/owner of the lead for follow-up purposes.
Required permission: lead_create
| Api-Key required | string Your Integration Key |
| first_name | string Contact first name |
| last_name | string Contact last name |
| email required | string Contact email address |
| phone | string Contact phone number |
| company_name | string Business or organization name |
| employee_id | integer Staff member ID to assign as lead owner |
| lead_source | string Enum: "Manual Entry" "Lead Form" "Online Booking" "App" "Zapier" "API" "Wedding Wire" How the lead was acquired |
| contact_preference | string Enum: "Email" "Phone" "Text Message" How the lead prefers to be contacted |
| lead_type | string Custom label for categorizing the lead |
| notes | string Private internal notes about this lead |
| event_date | string Requested event date (YYYY-MM-DD) |
| event_time | string Requested event start time |
| length_in_minutes | integer Requested event duration in minutes |
| estimated_budget | number Estimated event budget |
| estimated_number_guests | integer Estimated number of guests |
| venue_name | string Event venue name |
| venue_address | string Venue street address |
| venue_city | string Venue city |
| venue_state | string Venue state |
| venue_zip | string Venue ZIP code |
| indoor_outdoor | string Enum: "Indoor" "Outdoor" Venue type |
| service_id | integer Service (package group) ID the lead is interested in |
| package_id | integer Package (event type) ID the lead is interested in |
| referred_by_user_id | integer ID of the staff member who referred this lead |
| next_follow_up_on | string Next follow-up date (YYYY-MM-DD) |
| subject | string Message subject from the lead inquiry |
| message | string Message body from the lead inquiry |
| utm_source | string UTM source tracking parameter |
| utm_campaign | string UTM campaign tracking parameter |
| utm_medium | string UTM medium tracking parameter |
| utm_term | string UTM term tracking parameter |
| utm_content | string UTM content tracking parameter |
| gclid | string Google Click ID for ad tracking |
| custom_questions | object Responses to custom booking questions configured by the business, as key-value pairs |
{- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "company_name": "string",
- "employee_id": 0,
- "lead_source": "Manual Entry",
- "contact_preference": "Email",
- "lead_type": "string",
- "notes": "string",
- "event_date": "string",
- "event_time": "string",
- "length_in_minutes": 0,
- "estimated_budget": 0,
- "estimated_number_guests": 0,
- "venue_name": "string",
- "venue_address": "string",
- "venue_city": "string",
- "venue_state": "string",
- "venue_zip": "string",
- "indoor_outdoor": "Indoor",
- "service_id": 0,
- "package_id": 0,
- "referred_by_user_id": 0,
- "next_follow_up_on": "string",
- "subject": "string",
- "message": "string",
- "utm_source": "string",
- "utm_campaign": "string",
- "utm_medium": "string",
- "utm_term": "string",
- "utm_content": "string",
- "gclid": "string",
- "custom_questions": { }
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "48",
- "type": "lead",
- "attributes": {
- "id": 48,
- "email": "jsmith@gmail.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": "Test",
- "notes": "",
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "API",
- "indoor_outdoor": null,
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 832,
- "brand_name": "Schmidt-Kuhn 254",
- "created_at": "2026-06-09T13:56:08.457-07:00",
- "token": "QWH-D7EK-YAW",
- "spam": false,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": null,
- "phone_normalized": "",
- "starts_at": null,
- "ends_at": null,
- "length_in_hours": null,
- "length_in_minutes": null,
- "length_in_days": null,
- "event_time": null,
- "event_type_id": null,
- "event_date": null,
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": null,
- "formatted_time_range": "",
- "formatted_date_range": "",
- "formatted_datetime_range": "",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-254-f37b27c4.cc.localhost/reservation/resume?lead_id=48&token=QWH-D7EK-YAW"
}, - "relationships": {
- "lead_bookings": {
- "data": [
- {
- "id": "32",
- "type": "lead_booking"
}
]
}
}
}
}Returns a paginated list of leads for the specified business. Results can be filtered by email address for exact matching, or by a text query that performs a full-text search across lead names, email, phone, venue, and notes.
Each lead includes booking details (event date, start/end time, length, package name, service name) from its primary lead booking, flattened directly into the lead attributes.
Use the include query parameter to sideload related resources (comma-separated). Available: lead_bookings.
The response includes meta.total_count (total matching leads) and meta.per_page (results per page) to support pagination.
Required permission: lead_read
string Filter leads by exact email address match | |
| text | string Full-text search across lead name, email, phone, venue, and notes |
| page | integer Page number for pagination (default: 1) |
| per | integer Number of results per page (default: 25) |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok",
- "total_count": 1,
- "per_page": 25
}, - "data": [
- {
- "id": "49",
- "type": "lead",
- "attributes": {
- "id": 49,
- "email": "john.smith89@example.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": null,
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 833,
- "brand_name": "Maggio, Medhurst and Ebert 255",
- "created_at": "2026-06-09T13:56:08.587-07:00",
- "token": "7EX-HQXF-PZG",
- "spam": false,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": "2026-06-23T16:00:00.000-07:00",
- "ends_at": "2026-06-24T00:00:00.000-07:00",
- "length_in_hours": 8,
- "length_in_minutes": 480,
- "length_in_days": null,
- "event_time": "4:00pm",
- "event_type_id": null,
- "event_date": "06-23-2026",
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": 8,
- "formatted_time_range": "4:00 PM - 12:00 AM",
- "formatted_date_range": "June 23 - June 24, 2026",
- "formatted_datetime_range": "Tuesday, June 23, 2026 • 4:00 PM - 12:00 AM",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-255-3477f797.cc.localhost/reservation/resume?lead_id=49&token=7EX-HQXF-PZG"
}, - "relationships": {
- "lead_bookings": {
- "data": [
- {
- "id": "33",
- "type": "lead_booking"
}
]
}
}
}
]
}Updates an existing lead with the provided fields. Only fields included in the request body are modified — omitted fields remain unchanged.
Use this to update contact information, venue details, event preferences, status flags (spam, archived), or reassign the lead to a different staff member.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead to update |
| Api-Key required | string Your Integration Key |
| first_name | string Contact first name |
| last_name | string Contact last name |
string Contact email address | |
| phone | string Contact phone number |
| company_name | string Business or organization name |
| employee_id | integer Staff member ID to assign as lead owner |
| lead_source | string How the lead was acquired |
| contact_preference | string Enum: "Email" "Phone" "Text Message" How the lead prefers to be contacted |
| lead_type | string Custom label for categorizing the lead |
| notes | string Private internal notes about this lead |
| starts_at_date | string Requested event date (YYYY-MM-DD) |
| starts_at_time | string Requested event start time |
| length_in_minutes | integer Requested event duration in minutes |
| estimated_budget | number Estimated event budget |
| estimated_number_guests | integer Estimated number of guests |
| venue_name | string Event venue name |
| venue_address | string Venue street address |
| venue_city | string Venue city |
| venue_state | string Venue state |
| venue_zip | string Venue ZIP code |
| indoor_outdoor | string Enum: "Indoor" "Outdoor" Venue type |
| service_id | integer Service (package group) ID the lead is interested in |
| package_id | integer Package (event type) ID the lead is interested in |
| brand_id | integer Brand ID to associate with this lead |
| spam | boolean Mark lead as spam |
| archived | boolean Archive the lead |
| next_follow_up_on | string Next follow-up date (YYYY-MM-DD) |
| custom_questions | object Responses to custom booking questions, as key-value pairs |
{- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "company_name": "string",
- "employee_id": 0,
- "lead_source": "string",
- "contact_preference": "Email",
- "lead_type": "string",
- "notes": "string",
- "starts_at_date": "string",
- "starts_at_time": "string",
- "length_in_minutes": 0,
- "estimated_budget": 0,
- "estimated_number_guests": 0,
- "venue_name": "string",
- "venue_address": "string",
- "venue_city": "string",
- "venue_state": "string",
- "venue_zip": "string",
- "indoor_outdoor": "Indoor",
- "service_id": 0,
- "package_id": 0,
- "brand_id": 0,
- "spam": true,
- "archived": true,
- "next_follow_up_on": "string",
- "custom_questions": { }
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "50",
- "type": "lead",
- "attributes": {
- "id": 50,
- "email": "john.smith91@example.com",
- "first_name": "Jane",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": "Updated via API",
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "Jane Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 836,
- "brand_name": "McKenzie, Collins and Ortiz 258",
- "created_at": "2026-06-09T13:56:08.950-07:00",
- "token": "2Y4-ZGQ2-9QT",
- "spam": false,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": "2026-06-23T16:00:00.000-07:00",
- "ends_at": "2026-06-24T00:00:00.000-07:00",
- "length_in_hours": 8,
- "length_in_minutes": 480,
- "length_in_days": null,
- "event_time": "4:00pm",
- "event_type_id": null,
- "event_date": "06-23-2026",
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": 8,
- "formatted_time_range": "4:00 PM - 12:00 AM",
- "formatted_date_range": "June 23 - June 24, 2026",
- "formatted_datetime_range": "Tuesday, June 23, 2026 • 4:00 PM - 12:00 AM",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-258-8486a617.cc.localhost/reservation/resume?lead_id=50&token=2Y4-ZGQ2-9QT"
}, - "relationships": {
- "lead_bookings": {
- "data": [
- {
- "id": "34",
- "type": "lead_booking"
}
]
}
}
}
}Returns the full details of a single lead, including contact information, event details, venue, pricing, status, and any custom question responses.
Use the include query parameter to sideload related resources (comma-separated). Available: lead_bookings.
Required permission: lead_read
| lead_id required | integer The unique ID of the lead to retrieve |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "51",
- "type": "lead",
- "attributes": {
- "id": 51,
- "email": "john.smith93@example.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": null,
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 839,
- "brand_name": "Treutel and Sons 261",
- "created_at": "2026-06-09T13:56:09.183-07:00",
- "token": "6JJ-XEEN-ZMM",
- "spam": false,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": "2026-06-23T16:00:00.000-07:00",
- "ends_at": "2026-06-24T00:00:00.000-07:00",
- "length_in_hours": 8,
- "length_in_minutes": 480,
- "length_in_days": null,
- "event_time": "4:00pm",
- "event_type_id": null,
- "event_date": "06-23-2026",
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": 8,
- "formatted_time_range": "4:00 PM - 12:00 AM",
- "formatted_date_range": "June 23 - June 24, 2026",
- "formatted_datetime_range": "Tuesday, June 23, 2026 • 4:00 PM - 12:00 AM",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-261-9838db0b.cc.localhost/reservation/resume?lead_id=51&token=6JJ-XEEN-ZMM"
}, - "relationships": {
- "lead_bookings": {
- "data": [
- {
- "id": "35",
- "type": "lead_booking"
}
]
}
}
}
}Marks a lead as archived. Archived leads are hidden from the default lead list.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "52",
- "type": "lead",
- "attributes": {
- "id": 52,
- "email": "john.smith95@example.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": null,
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 842,
- "brand_name": "Bailey, Brekke and Ledner 264",
- "created_at": "2026-06-09T13:56:09.344-07:00",
- "token": "GCR-VV6C-R4F",
- "spam": false,
- "archived": true,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": null,
- "ends_at": null,
- "length_in_hours": null,
- "length_in_minutes": null,
- "length_in_days": null,
- "event_time": null,
- "event_type_id": null,
- "event_date": null,
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": null,
- "formatted_time_range": "",
- "formatted_date_range": "",
- "formatted_datetime_range": "",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-264-6271a258.cc.localhost/reservation/resume?lead_id=52&token=GCR-VV6C-R4F"
}, - "relationships": {
- "lead_bookings": {
- "data": [ ]
}
}
}
}Restores an archived lead back to the active lead list.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "53",
- "type": "lead",
- "attributes": {
- "id": 53,
- "email": "john.smith97@example.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": null,
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 845,
- "brand_name": "Effertz, Mills and Pouros 267",
- "created_at": "2026-06-09T13:56:09.460-07:00",
- "token": "FDW-4WG2-GE2",
- "spam": false,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": null,
- "ends_at": null,
- "length_in_hours": null,
- "length_in_minutes": null,
- "length_in_days": null,
- "event_time": null,
- "event_type_id": null,
- "event_date": null,
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": null,
- "formatted_time_range": "",
- "formatted_date_range": "",
- "formatted_datetime_range": "",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-267-f481c5c4.cc.localhost/reservation/resume?lead_id=53&token=FDW-4WG2-GE2"
}, - "relationships": {
- "lead_bookings": {
- "data": [ ]
}
}
}
}Marks a lead as spam. Spam leads are filtered out of the default lead list.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "54",
- "type": "lead",
- "attributes": {
- "id": 54,
- "email": "john.smith99@example.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": null,
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 848,
- "brand_name": "O'Conner-Kertzmann 270",
- "created_at": "2026-06-09T13:56:09.555-07:00",
- "token": "WRP-JE4R-QTG",
- "spam": true,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": null,
- "ends_at": null,
- "length_in_hours": null,
- "length_in_minutes": null,
- "length_in_days": null,
- "event_time": null,
- "event_type_id": null,
- "event_date": null,
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": null,
- "formatted_time_range": "",
- "formatted_date_range": "",
- "formatted_datetime_range": "",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-270-66d732a7.cc.localhost/reservation/resume?lead_id=54&token=WRP-JE4R-QTG"
}, - "relationships": {
- "lead_bookings": {
- "data": [ ]
}
}
}
}Removes the spam flag from a lead, restoring it to the active lead list.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "55",
- "type": "lead",
- "attributes": {
- "id": 55,
- "email": "john.smith101@example.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": null,
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 851,
- "brand_name": "Fadel Group 273",
- "created_at": "2026-06-09T13:56:09.650-07:00",
- "token": "NDV-TPR7-C64",
- "spam": false,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": null,
- "ends_at": null,
- "length_in_hours": null,
- "length_in_minutes": null,
- "length_in_days": null,
- "event_time": null,
- "event_type_id": null,
- "event_date": null,
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": null,
- "formatted_time_range": "",
- "formatted_date_range": "",
- "formatted_datetime_range": "",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-273-bcc672e2.cc.localhost/reservation/resume?lead_id=55&token=NDV-TPR7-C64"
}, - "relationships": {
- "lead_bookings": {
- "data": [ ]
}
}
}
}Removes the "converted to event" flag from a lead, indicating it has not yet been converted.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "56",
- "type": "lead",
- "attributes": {
- "id": 56,
- "email": "john.smith103@example.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": null,
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 854,
- "brand_name": "Cole Inc 276",
- "created_at": "2026-06-09T13:56:09.741-07:00",
- "token": "W4D-TYFM-YPW",
- "spam": false,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": null,
- "ends_at": null,
- "length_in_hours": null,
- "length_in_minutes": null,
- "length_in_days": null,
- "event_time": null,
- "event_type_id": null,
- "event_date": null,
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": null,
- "formatted_time_range": "",
- "formatted_date_range": "",
- "formatted_datetime_range": "",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-276-5e0c48b0.cc.localhost/reservation/resume?lead_id=56&token=W4D-TYFM-YPW"
}, - "relationships": {
- "lead_bookings": {
- "data": [ ]
}
}
}
}Enables automated messages (emails, texts) for this lead. When enabled, the lead will receive any configured automated follow-up sequences.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "57",
- "type": "lead",
- "attributes": {
- "id": 57,
- "email": "john.smith105@example.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": null,
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 857,
- "brand_name": "Abbott LLC 279",
- "created_at": "2026-06-09T13:56:09.849-07:00",
- "token": "7QH-JH6H-XTF",
- "spam": false,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": null,
- "ends_at": null,
- "length_in_hours": null,
- "length_in_minutes": null,
- "length_in_days": null,
- "event_time": null,
- "event_type_id": null,
- "event_date": null,
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": null,
- "formatted_time_range": "",
- "formatted_date_range": "",
- "formatted_datetime_range": "",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-279-8171d6f4.cc.localhost/reservation/resume?lead_id=57&token=7QH-JH6H-XTF"
}, - "relationships": {
- "lead_bookings": {
- "data": [ ]
}
}
}
}Disables automated messages for this lead. The lead will no longer receive automated follow-up sequences.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "58",
- "type": "lead",
- "attributes": {
- "id": 58,
- "email": "john.smith107@example.com",
- "first_name": "John",
- "last_name": "Smith",
- "company_name": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_latitude": null,
- "venue_longitude": null,
- "venue_google_place_id": null,
- "estimated_budget": null,
- "estimated_number_guests": null,
- "subject": null,
- "message": null,
- "source": null,
- "notes": null,
- "lead_event_type": null,
- "lead_type": null,
- "last_contact_at": null,
- "next_follow_up_on": null,
- "origin": "Online Booking",
- "indoor_outdoor": "",
- "title": "John Smith",
- "setup_at": null,
- "pickup_at": null,
- "dropoff_at": null,
- "brand_id": 860,
- "brand_name": "Grimes-Kessler 282",
- "created_at": "2026-06-09T13:56:09.942-07:00",
- "token": "96N-36GC-KJ7",
- "spam": false,
- "archived": false,
- "converted_to_event": false,
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "phone": "951-555-1212",
- "phone_normalized": "+19515551212",
- "starts_at": null,
- "ends_at": null,
- "length_in_hours": null,
- "length_in_minutes": null,
- "length_in_days": null,
- "event_time": null,
- "event_type_id": null,
- "event_date": null,
- "package_name": null,
- "package_group_name": null,
- "service_name": null,
- "length": null,
- "formatted_time_range": "",
- "formatted_date_range": "",
- "formatted_datetime_range": "",
- "custom_fields": [ ],
- "created_at_description": "Created less than a minute ago",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "resume_booking_link": "https://test-282-c7517e11.cc.localhost/reservation/resume?lead_id=58&token=96N-36GC-KJ7"
}, - "relationships": {
- "lead_bookings": {
- "data": [ ]
}
}
}
}Adds an internal note to a lead. Notes are visible to staff members and provide a timeline of follow-up activity. Optionally set or update the next follow-up date.
Required permission: lead_write
| lead_id required | integer The unique ID of the lead |
| Api-Key required | string Your Integration Key |
| note required | string The note text to add |
| next_follow_up_on | string Set or update the next follow-up date (YYYY-MM-DD) |
{- "note": "string",
- "next_follow_up_on": "string"
}{- "meta": {
- "status": "ok"
}
}Events are the core unit of work in Check Cherry, representing both confirmed bookings and proposals. An event includes the client, date and time, venue, assigned staff, selected packages, add-ons, and payment details.
Use the Events API to create new bookings or proposals, retrieve event details, and list events for a business.
Returns the full set of booking questions and their current answers for an event. Each entry includes the question's column_name, label, kind, current value, and formatted_value.
Use the column_name of each entry as the key when sending updates via the PATCH /api/v1/events/{event_id}/booking_questions endpoint.
Required permission: assigned_event_read or unassigned_event_read
| event_id required | integer The unique ID of the event |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "13",
- "type": "event_booking_question",
- "attributes": {
- "id": 13,
- "event_id": 91,
- "booking_question_id": 13,
- "editable": true,
- "column_name": "guest_count",
- "name": "Estimated Guest Count",
- "label": "Estimated guest count",
- "kind": "text",
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_source",
- "type": "event_booking_question",
- "attributes": {
- "id": "utm_source",
- "event_id": 91,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_source",
- "name": "UTM Source",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_campaign",
- "type": "event_booking_question",
- "attributes": {
- "id": "utm_campaign",
- "event_id": 91,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_campaign",
- "name": "UTM Campaign",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_medium",
- "type": "event_booking_question",
- "attributes": {
- "id": "utm_medium",
- "event_id": 91,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_medium",
- "name": "UTM Medium",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_term",
- "type": "event_booking_question",
- "attributes": {
- "id": "utm_term",
- "event_id": 91,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_term",
- "name": "UTM Term",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "utm_content",
- "type": "event_booking_question",
- "attributes": {
- "id": "utm_content",
- "event_id": 91,
- "booking_question_id": null,
- "editable": false,
- "column_name": "utm_content",
- "name": "UTM Content",
- "label": null,
- "kind": null,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}
]
}Updates one or more booking question answers on the event. The body's custom_questions keys must match the column_name of each booking question (as returned by the GET endpoint).
Only the keys you include are touched — other answers on the event are preserved.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer The unique ID of the event |
| Api-Key required | string Your Integration Key |
required | object Keys are booking-question column names; values are the answer to record. |
{- "custom_questions": { }
}{- "meta": {
- "status": "ok"
}
}Returns a paginated list of event bookings for the specified business. Results can be filtered by date range.
Use the include query parameter to sideload related resources (comma-separated). Available: event_add_ons, event_extras, event_photobooth_background, event_booking_extra_categories.
Required permission: assigned_event_read or unassigned_event_read
| event_date_start | string Event Date (Start) |
| event_date_end | string Event Date (End) |
| page | integer Page number for pagination (default: 1) |
| per | integer Number of results per page |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "11",
- "type": "event_booking",
- "attributes": {
- "id": 11,
- "event_id": 93,
- "event_type_id": 27,
- "title": "Sarah and John's Wedding",
- "name": "Judson",
- "starts_at": "2026-06-30T13:56:02.551-07:00",
- "ends_at": "2026-06-30T14:56:02.551-07:00",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "brand_name": "Marks LLC 167",
- "canceled": false,
- "postponed": false,
- "date_mode": "date_time",
- "description_html": "",
- "override_ends_at": null,
- "length_in_minutes": "60.0",
- "length_in_days": 1,
- "event_type_unit_range": null,
- "units": null,
- "formatted_datetime_range": "Tuesday, June 30, 2026 • 1:56 PM - 2:56 PM",
- "formatted_date_range": "Tuesday, June 30, 2026",
- "formatted_time_range": "1:56 PM - 2:56 PM",
- "formatted_units": null,
- "staff_member_ids": [ ],
- "staff_member_names": null,
- "staff_member_abbreviations": null,
- "expired_proposal": false,
- "primary_image_attachment": {
- "video_variant": "/assets/video_dimensions_no-addon-51d25c35216ac7f3ea621f74772120bbea123405e2fa3f25d97050af78f5804e.png"
}, - "package_group_name": "Sample",
- "service_name": "Photo booth 8",
- "default_staff_title": null,
- "override_price": null,
- "override_price_cents": null,
- "override_price_currency": null,
- "override_price_formatted": null,
- "taxable": true
}, - "relationships": {
- "event_add_ons": {
- "data": [ ]
}, - "event_photobooth_background": {
- "data": null
}, - "event_booking_extra_categories": {
- "data": [ ]
}, - "event_extras": {
- "data": [ ]
}
}
}
]
}Returns the full details of a single event booking, including package, schedule, pricing, and venue information.
Use the include query parameter to sideload related resources (comma-separated). Available: event_add_ons, event_extras, event_photobooth_background, event_booking_extra_categories.
Required permission: assigned_event_read or unassigned_event_read
| event_booking_id required | integer Event Booking ID |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "12",
- "type": "event_booking",
- "attributes": {
- "id": 12,
- "event_id": 94,
- "event_type_id": 28,
- "title": "Sarah and John's Wedding",
- "name": "Eusebio",
- "starts_at": "2026-06-30T13:56:02.735-07:00",
- "ends_at": "2026-06-30T14:56:02.735-07:00",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "brand_name": "Koch and Sons 171",
- "canceled": false,
- "postponed": false,
- "date_mode": "date_time",
- "description_html": "",
- "override_ends_at": null,
- "length_in_minutes": "60.0",
- "length_in_days": 1,
- "event_type_unit_range": null,
- "units": null,
- "formatted_datetime_range": "Tuesday, June 30, 2026 • 1:56 PM - 2:56 PM",
- "formatted_date_range": "Tuesday, June 30, 2026",
- "formatted_time_range": "1:56 PM - 2:56 PM",
- "formatted_units": null,
- "staff_member_ids": [ ],
- "staff_member_names": null,
- "staff_member_abbreviations": null,
- "expired_proposal": false,
- "primary_image_attachment": {
- "video_variant": "/assets/video_dimensions_no-addon-51d25c35216ac7f3ea621f74772120bbea123405e2fa3f25d97050af78f5804e.png"
}, - "package_group_name": "Sample",
- "service_name": "Photo booth 9",
- "default_staff_title": null,
- "override_price": null,
- "override_price_cents": null,
- "override_price_currency": null,
- "override_price_formatted": null,
- "taxable": true
}, - "relationships": {
- "event_add_ons": {
- "data": [ ]
}, - "event_photobooth_background": {
- "data": null
}, - "event_booking_extra_categories": {
- "data": [ ]
}, - "event_extras": {
- "data": [ ]
}
}
}
}Assigns a staff member to an event (booking or proposal). The staff member must belong to the same franchise. Use the role field to label what the staff member is doing on the event (e.g., "DJ", "Photographer", "Assistant"). The same user can be assigned to the same event multiple times with different roles.
For confirmed bookings, assigning a staff member also applies any configured staff expenses, sends the "Employee Assigned" automated message, dispatches push notifications, and fires the staff-assigned webhook. None of these side effects run for proposals.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer The ID of the event to assign the staff member to |
| Api-Key required | string Your Integration Key |
| staff_id required | integer The ID of the staff user to assign |
| role | string The role this staff member will fill on the event (e.g., "DJ", "Photographer") |
{- "staff_id": 0,
- "role": "string"
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "3",
- "type": "event_staff_member",
- "attributes": {
- "role": "DJ"
}, - "relationships": {
- "event": {
- "data": {
- "id": "97",
- "type": "event"
}
}, - "user": {
- "data": {
- "id": "342",
- "type": "user"
}
}
}
}
}Removes a previously-assigned staff member from an event. When the authenticated user is assigned to the event, assigned_event_write is required; otherwise unassigned_event_write is required.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer The ID of the event the assignment belongs to |
| id required | integer The unique ID of the EventStaffMember assignment |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}
}Returns a paginated list of events for the specified business. Results can be filtered by status, date range, package, and text search.
The response includes meta.total_count (total matching events) and meta.per_page (results per page) to support pagination.
Use the include query parameter to sideload related resources (comma-separated). Available: event_bookings, proposal_alternatives, event_users, event_staff_members, event_staff_requests, contacts, notes.
Required permission: assigned_event_read or unassigned_event_read
| event_status | string Status filter |
| past_or_future | string When filter |
| event_date_start | string Event Date (Start) |
| event_date_end | string Event Date (End) |
| booked_date_start | string Booked Date (Start) |
| booked_date_end | string Booked Date (End) |
| package_id | integer Package ID |
| text | string Text Search |
| sort_by | string Sort Order |
| page | integer Page number for pagination (default: 1) |
| per | integer Number of results per page (default: 25) |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok",
- "total_count": 1,
- "per_page": 10
}, - "data": [
- {
- "id": "99",
- "type": "event",
- "attributes": {
- "id": 99,
- "title": "Sarah and John's Wedding",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "booked_at": "2026-06-09T13:56:03.880-07:00",
- "created_at": "2026-06-09T13:56:03.881-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "ZTX-6G3K-4CZ",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:03.842-07:00",
- "ends_at": "2026-06-16T16:56:03.842-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 770,
- "brand_name": "Sawayn-Kling 191",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-192-c1473e92.cc.localhost/events/99-sarah-and-john-s-wedding/forms?token=ZTX-6G3K-4CZ",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
]
}Required permission: event_create
| Api-Key required | string Your Integration Key |
| is_proposal | boolean Set to true to create a proposal |
| proposal_date_reserved | boolean Reserve the date? |
| signature_collected | boolean Has signature been collected? |
| contact_type required | string Contact Type |
| contact_name | string Contact's Name |
| contact_email | string Contact's Email |
| contact_phone | string Contact's Phone |
| send_contact_invitation_to_create_account | boolean |
| send_booking_confirmation_emails | boolean |
Array of objects |
{- "is_proposal": true,
- "proposal_date_reserved": true,
- "signature_collected": true,
- "contact_type": "string",
- "contact_name": "string",
- "contact_email": "string",
- "contact_phone": "string",
- "send_contact_invitation_to_create_account": true,
- "send_booking_confirmation_emails": true,
- "quick_event_bookings_attributes": [
- {
- "event_type_id": 0,
- "starts_at_date": "string",
- "starts_at_time": "string",
- "length_in_minutes": 0
}
]
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "100",
- "type": "event",
- "attributes": {
- "id": 100,
- "title": "John Smith’s Paul",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "booked_at": "2026-06-09T13:56:04.347-07:00",
- "created_at": "2026-06-09T13:56:04.350-07:00",
- "created_via": "api",
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": "20260609-01",
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "CHW-NPK7-C22",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2023-12-31T11:00:00.000-08:00",
- "ends_at": "2023-12-31T14:00:00.000-08:00",
- "length_in_minutes": "180.0",
- "length_in_hours": "3.0",
- "starting_balance": "100.00",
- "starting_balance_cents": 10000,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$100.00",
- "deposit_amount_due": "25.00",
- "deposit_amount_due_cents": 2500,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$25.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "100.00",
- "balance_amount_due_cents": 10000,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$100.00",
- "starts_at_date": "12-31-2023",
- "starts_at_date_iso8601": "2023-12-31",
- "starts_at_time": "11:00 AM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "Paul",
- "package_group_name": "Sample",
- "service_name": "Photo booth 12",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-09T00:00:00.000-07:00",
- "customer_ids": "349",
- "customer_names": "John Smith",
- "customer_emails": "jsmith@example.com",
- "customer_phones": "555-555-5555",
- "customer_addresses": "",
- "customer_and_contact_ids": "349",
- "customer_and_contact_names": "John Smith",
- "customer_and_contact_emails": "jsmith@example.com",
- "customer_and_contact_phones": "555-555-5555",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 771,
- "brand_name": "Lindgren, Frami and DuBuque 193",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Api",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-193-33715fb6.cc.localhost/events/100-john-smith-s-paul/forms?token=CHW-NPK7-C22",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [
- {
- "id": "13",
- "type": "event_booking"
}
]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [
- {
- "id": "2",
- "type": "event_user"
}
]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Returns the full details of a single event, including status, venue, pricing, and contact information.
Use the include query parameter to sideload related resources (comma-separated). Available: event_bookings, proposal_alternatives, event_users, event_staff_members, event_staff_requests, contacts, notes. Nested includes are also supported — e.g. ?include=event_bookings.event_add_ons will include add-ons within each booking. Other nested includes: event_bookings.event_extras, event_bookings.event_photobooth_background, event_bookings.event_booking_extra_categories.
Required permission: assigned_event_read or unassigned_event_read
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "101",
- "type": "event",
- "attributes": {
- "id": 101,
- "title": "Sarah and John's Wedding",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "booked_at": "2026-06-09T13:56:04.597-07:00",
- "created_at": "2026-06-09T13:56:04.598-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "EH7-3E4E-V2X",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:04.554-07:00",
- "ends_at": "2026-06-16T16:56:04.554-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 775,
- "brand_name": "Huels-Shields 196",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-197-ca94fd66.cc.localhost/events/101-sarah-and-john-s-wedding/forms?token=EH7-3E4E-V2X",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
| public_notes | string Public notes visible to the customer |
| photo_album_url | string URL to the photo album |
| photo_album_instructions | string Instructions for the photo album |
| video_url | string URL to the video |
| video_album_instructions | string Instructions for the video album |
| next_follow_up_on | string Next follow-up date (YYYY-MM-DD) |
{- "public_notes": "string",
- "photo_album_url": "string",
- "photo_album_instructions": "string",
- "video_url": "string",
- "video_album_instructions": "string",
- "next_follow_up_on": "string"
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "102",
- "type": "event",
- "attributes": {
- "id": 102,
- "title": "Sarah and John's Wedding",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "booked_at": "2026-06-09T13:56:04.731-07:00",
- "created_at": "2026-06-09T13:56:04.732-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": "Updated notes for the customer",
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "7WH-PAR2-JMG",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:04.691-07:00",
- "ends_at": "2026-06-16T16:56:04.691-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 778,
- "brand_name": "Hauck and Sons 199",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-200-d60d1aa8.cc.localhost/events/102-sarah-and-john-s-wedding/forms?token=7WH-PAR2-JMG",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Update the venue/location for an event. Can optionally recalculate tax and travel fees based on the new location.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
| google_place_id | string Google Place ID for the venue |
| venue_name | string Name of the venue |
| venue_address | string Street address |
| venue_city | string City |
| venue_state | string State |
| venue_zip | string ZIP/Postal code |
| latitude | number Latitude coordinate |
| longitude | number Longitude coordinate |
| recalculate_tax | boolean Recalculate tax based on new location |
| recalculate_travel | boolean Recalculate travel fee based on new location |
{- "google_place_id": "string",
- "venue_name": "string",
- "venue_address": "string",
- "venue_city": "string",
- "venue_state": "string",
- "venue_zip": "string",
- "latitude": 0,
- "longitude": 0,
- "recalculate_tax": true,
- "recalculate_travel": true
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "104",
- "type": "event",
- "attributes": {
- "id": 104,
- "title": "Sarah and John's Wedding",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "booked_at": "2026-06-09T13:56:04.965-07:00",
- "created_at": "2026-06-09T13:56:04.966-07:00",
- "created_via": "quick_add",
- "venue_name": "The Grand Ballroom",
- "venue_address": "123 Main St",
- "venue_city": "Austin",
- "venue_state": "TX",
- "venue_zip": "78701",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "K4G-QKXE-KXW",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:04.929-07:00",
- "ends_at": "2026-06-16T16:56:04.929-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 784,
- "brand_name": "Kris Inc 205",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-206-cf9f9f30.cc.localhost/events/104-sarah-and-john-s-wedding/forms?token=K4G-QKXE-KXW",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Update the status of an event (e.g. convert a proposal to a confirmed booking).
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
| status | string New status for the event |
| postponed | boolean Mark as postponed |
| canceled | boolean Mark as canceled |
| send_booking_confirmation_emails | boolean Send booking confirmation emails |
| send_contact_invitation_to_create_account | boolean Send contact an invitation to create an account |
{- "status": "string",
- "postponed": true,
- "canceled": true,
- "send_booking_confirmation_emails": true,
- "send_contact_invitation_to_create_account": true
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "105",
- "type": "event",
- "attributes": {
- "id": 105,
- "title": "Sarah and John's Wedding",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "booked_at": "2026-06-09T13:56:05.229-07:00",
- "created_at": "2026-06-09T13:56:05.159-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "GPZ-QA2Y-NVP",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:05.118-07:00",
- "ends_at": "2026-06-16T16:56:05.118-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 787,
- "brand_name": "Zboncak, Deckow and Lueilwitz 208",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-209-ab1996fb.cc.localhost/events/105-sarah-and-john-s-wedding/forms?token=GPZ-QA2Y-NVP",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Update event settings such as title, due date, invoice date, deposit amount, tax rate, and brand.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
| title | string Event title |
| due_at | string Payment due date (YYYY-MM-DD) |
| invoice_date | string Invoice date (YYYY-MM-DD) |
| proposal_valid_through | string Proposal valid through date (YYYY-MM-DD) |
| custom_deposit_amount | number Custom deposit amount |
| tax_rate | number Tax rate (e.g. 8.25) |
| brand_id | integer Brand ID |
{- "title": "string",
- "due_at": "string",
- "invoice_date": "string",
- "proposal_valid_through": "string",
- "custom_deposit_amount": 0,
- "tax_rate": 0,
- "brand_id": 0
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "106",
- "type": "event",
- "attributes": {
- "id": 106,
- "title": "Updated Event Title",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "booked_at": "2026-06-09T13:56:05.346-07:00",
- "created_at": "2026-06-09T13:56:05.347-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "C36-HAP7-CQW",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:05.296-07:00",
- "ends_at": "2026-06-16T16:56:05.297-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 790,
- "brand_name": "Schiller, Will and Abbott 211",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-212-5b6b907c.cc.localhost/events/106-updated-event-title/forms?token=C36-HAP7-CQW",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Cancel an event with an optional reason and option to send cancellation messages to contacts.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
| cancel_reason | string Reason for cancellation |
| send_cancellation_messages | boolean Send cancellation messages to contacts |
{- "cancel_reason": "string",
- "send_cancellation_messages": true
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "107",
- "type": "event",
- "attributes": {
- "id": 107,
- "title": "Sarah and John's Wedding",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Canceled Booking",
- "booked_at": "2026-06-09T13:56:05.535-07:00",
- "created_at": "2026-06-09T13:56:05.536-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": true,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "V6H-KR6A-PKG",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:05.496-07:00",
- "ends_at": "2026-06-16T16:56:05.496-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 793,
- "brand_name": "Kirlin, Beier and O'Hara 214",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-215-fcd9e1fd.cc.localhost/events/107-sarah-and-john-s-wedding/forms?token=V6H-KR6A-PKG",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Remove the canceled status from a previously canceled event.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "108",
- "type": "event",
- "attributes": {
- "id": 108,
- "title": "Sarah and John's Wedding",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "booked_at": "2026-06-09T13:56:05.720-07:00",
- "created_at": "2026-06-09T13:56:05.721-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "9FK-PHTR-ACF",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:05.680-07:00",
- "ends_at": "2026-06-16T16:56:05.680-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 796,
- "brand_name": "King LLC 217",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-218-88aa0f74.cc.localhost/events/108-sarah-and-john-s-wedding/forms?token=9FK-PHTR-ACF",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Mark an event as postponed.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "109",
- "type": "event",
- "attributes": {
- "id": 109,
- "title": "Sarah and John's Wedding",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Postponed Booking",
- "booked_at": "2026-06-09T13:56:05.887-07:00",
- "created_at": "2026-06-09T13:56:05.890-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": true,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "DZR-RN9W-CGT",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:05.809-07:00",
- "ends_at": "2026-06-16T16:56:05.809-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 799,
- "brand_name": "Luettgen-Howe 220",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-221-063dbfd6.cc.localhost/events/109-sarah-and-john-s-wedding/forms?token=DZR-RN9W-CGT",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Remove the postponed status from a previously postponed event.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "110",
- "type": "event",
- "attributes": {
- "id": 110,
- "title": "Sarah and John's Wedding",
- "status": "confirmed",
- "formatted_status": "Confirmed",
- "formatted_status_with_context": "Confirmed",
- "booked_at": "2026-06-09T13:56:06.066-07:00",
- "created_at": "2026-06-09T13:56:06.067-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "JA7-GJVJ-AQA",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:06.025-07:00",
- "ends_at": "2026-06-16T16:56:06.025-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 802,
- "brand_name": "Graham, Rempel and Bruen 223",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Booked less than a minute ago via Quick add",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-224-d87a3125.cc.localhost/events/110-sarah-and-john-s-wedding/forms?token=JA7-GJVJ-AQA",
- "proposal_url": null,
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Approve a proposal that is currently in the awaiting review state.
Required permission: assigned_event_write or unassigned_event_write
| event_id required | integer Event ID |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "111",
- "type": "event",
- "attributes": {
- "id": 111,
- "title": "Sarah and John's Wedding",
- "status": "proposal_date_reserved",
- "formatted_status": "Proposal (Date Reserved)",
- "formatted_status_with_context": "Proposal (Date Reserved)",
- "booked_at": null,
- "created_at": "2026-06-09T13:56:06.191-07:00",
- "created_via": "quick_add",
- "venue_name": "The Mission Inn",
- "venue_address": "123 Some St",
- "venue_city": "Riverside",
- "venue_state": "CA",
- "venue_zip": "92506",
- "venue_google_place_id": null,
- "public_notes": null,
- "private_notes": "",
- "coupon_code": null,
- "photo_album_url": null,
- "photo_album_instructions": null,
- "video_url": null,
- "video_album_instructions": null,
- "completed": false,
- "canceled": false,
- "archived": false,
- "postponed": false,
- "invoice_number": null,
- "billable_distance": null,
- "total_distance": null,
- "distance_unit": null,
- "latitude": null,
- "longitude": null,
- "tax_rate": "0.0",
- "source": null,
- "estimated_number_guests": null,
- "indoor_outdoor": null,
- "lead_event_type": null,
- "contact_preference": null,
- "po_number": null,
- "stair_setup": null,
- "token": "6P7-MFZ6-ZTZ",
- "utm_source": null,
- "utm_campaign": null,
- "utm_medium": null,
- "utm_term": null,
- "utm_content": null,
- "gclid": null,
- "starts_at": "2026-06-16T13:56:06.153-07:00",
- "ends_at": "2026-06-16T16:56:06.153-07:00",
- "length_in_minutes": "",
- "length_in_hours": "",
- "starting_balance": "0.00",
- "starting_balance_cents": 0,
- "starting_balance_currency": "USD",
- "starting_balance_formatted": "$0.00",
- "deposit_amount_due": "0.00",
- "deposit_amount_due_cents": 0,
- "deposit_amount_due_currency": "USD",
- "deposit_amount_due_formatted": "$0.00",
- "custom_deposit_amount": null,
- "custom_deposit_amount_cents": null,
- "custom_deposit_amount_currency": null,
- "custom_deposit_amount_formatted": null,
- "balance_amount_due": "0.00",
- "balance_amount_due_cents": 0,
- "balance_amount_due_currency": "USD",
- "balance_amount_due_formatted": "$0.00",
- "starts_at_date": "06-16-2026",
- "starts_at_date_iso8601": "2026-06-16",
- "starts_at_time": "1:56 PM",
- "invoice_date": "06-09-2026",
- "invoice_date_iso8601": "2026-06-09",
- "proposal_theme": "classic",
- "proposal_valid_through": null,
- "proposal_viewed_at": null,
- "next_follow_up_on": null,
- "package_name": "",
- "package_group_name": "",
- "service_name": "",
- "package_description_html": "",
- "add_on_names": "",
- "add_on_quantities_name_and_price": "",
- "extra_names": "",
- "extra_quantities_name_and_price": "",
- "backdrop_names": "",
- "backdrop_name_and_price": "",
- "design_statuses": null,
- "due_at": "2026-06-16T00:00:00.000-07:00",
- "customer_ids": "",
- "customer_names": "",
- "customer_emails": "",
- "customer_phones": "",
- "customer_addresses": "",
- "customer_and_contact_ids": "",
- "customer_and_contact_names": "",
- "customer_and_contact_emails": "",
- "customer_and_contact_phones": "",
- "additional_contact_ids": "",
- "additional_contact_names": "",
- "additional_contact_emails": "",
- "additional_contact_phones": "",
- "assigned_staff_ids": "",
- "assigned_staff_names": "",
- "assigned_staff_abbreviations": "",
- "assigned_staff_emails": "",
- "change_summary": null,
- "brand_id": 805,
- "brand_name": "Schiller and Sons 226",
- "primary_image": {
- "hero_variant": null
}, - "booked_at_description": "Created less than a minute ago",
- "current_user_assigned": false,
- "questionnaires_url": "https://test-227-50a2a94f.cc.localhost/events/111-sarah-and-john-s-wedding/forms?token=6P7-MFZ6-ZTZ",
- "referred_by_user_id": null,
- "referred_by_user_name": null,
- "referred_by_user_email": null,
- "custom_fields": [ ]
}, - "relationships": {
- "event_bookings": {
- "data": [ ]
}, - "proposal_alternatives": {
- "data": [ ]
}, - "event_users": {
- "data": [ ]
}, - "event_staff_members": {
- "data": [ ]
}, - "event_staff_requests": {
- "data": [ ]
}, - "contacts": {
- "data": [ ]
}, - "notes": {
- "data": [ ]
}
}
}
}Adds a private internal note to a booking. Notes are visible to staff members only and are never shown to customers. Use them to log internal observations, follow-up activity, or any staff-only context tied to the booking.
Each call appends a new note record with its own author and timestamp (a running timeline), which is distinct from the booking's free-form public_notes / private_notes text fields on the event itself (those are edited via PUT /api/v1/events/{event_id}).
Optionally set or update the booking's next follow-up date in the same call.
Required permission: assigned_event_read or unassigned_event_read
| event_id required | integer The unique ID of the booking |
| Api-Key required | string Your Integration Key |
| note required | string The note text to add (private internal note, staff-only) |
| next_follow_up_on | string Set or update the booking's next follow-up date (YYYY-MM-DD) |
{- "note": "string",
- "next_follow_up_on": "string"
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "4",
- "type": "note",
- "attributes": {
- "id": 4,
- "content": "Confirmed load-in time with venue manager",
- "user_id": 361,
- "byline": "06-09-2026 1:56 PM by Bong Metz",
- "created_at": "2026-06-09T13:56:06.428-07:00"
}
}
}Updates the content of a private internal note on a booking. Notes are visible to staff members only and are never shown to customers.
Only the note's original author can update it (mirrors the web admin's edit rule).
Required permission: assigned_event_read or unassigned_event_read (in addition, the authenticated user must be the note's original author)
| event_id required | integer The unique ID of the booking |
| id required | integer The unique ID of the note |
| Api-Key required | string Your Integration Key |
| content required | string The new note text (private internal note, staff-only) |
{- "content": "string"
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "5",
- "type": "note",
- "attributes": {
- "id": 5,
- "content": "Updated content",
- "user_id": 362,
- "byline": "06-09-2026 1:56 PM by Sheldon White",
- "created_at": "2026-06-09T13:56:06.546-07:00"
}
}
}Deletes a private internal note from a booking. Notes are visible to staff members only and are never shown to customers.
Only the note's original author can delete it (mirrors the web admin's edit rule).
Required permission: assigned_event_read or unassigned_event_read (in addition, the authenticated user must be the note's original author)
| event_id required | integer The unique ID of the booking |
| id required | integer The unique ID of the note |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}
}Appointments represent scheduled meetings between staff and guests (e.g., consultations, site visits, tastings). Each appointment has a guest, date/time, location, and one or more assigned staff members. Appointments can be created, updated, canceled, uncanceled, duplicated, and deleted.
Returns the full set of booking questions and their current answers for an appointment, as configured on the appointment's calendar. Each entry includes the question's column_name, label, kind, intent, built_in flag, current value, and formatted_value.
Use the column_name of each entry as the key when sending updates via the PATCH /api/v1/appointments/{appointment_id}/booking_questions endpoint.
Note: booking questions are sourced from the appointment's calendar. Appointments not created from a calendar (e.g. Quick Add) have no associated questions and will return an empty list.
Required permission: assigned_appointment_read or unassigned_appointment_read
| appointment_id required | integer The unique ID of the appointment |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "285",
- "type": "appointment_booking_question",
- "attributes": {
- "id": 285,
- "appointment_id": 14,
- "booking_question_id": null,
- "editable": false,
- "column_name": "location",
- "name": "Appointment Location",
- "label": "Appointment Location",
- "kind": "text",
- "intent": "Appointment Location",
- "built_in": true,
- "link": null,
- "value": "Phone",
- "formatted_value": "Phone",
- "options": null,
- "archived": false
}
}, - {
- "id": "286",
- "type": "appointment_booking_question",
- "attributes": {
- "id": 286,
- "appointment_id": 14,
- "booking_question_id": null,
- "editable": false,
- "column_name": "guest_name",
- "name": "Name",
- "label": "Name",
- "kind": "text",
- "intent": "Name",
- "built_in": true,
- "link": null,
- "value": "John Doe",
- "formatted_value": "John Doe",
- "options": null,
- "archived": false
}
}, - {
- "id": "287",
- "type": "appointment_booking_question",
- "attributes": {
- "id": 287,
- "appointment_id": 14,
- "booking_question_id": null,
- "editable": false,
- "column_name": "guest_email",
- "name": "Email",
- "label": "Email",
- "kind": "text",
- "intent": "Email",
- "built_in": true,
- "link": null,
- "value": "jdoe@example.com",
- "formatted_value": "jdoe@example.com",
- "options": null,
- "archived": false
}
}, - {
- "id": "288",
- "type": "appointment_booking_question",
- "attributes": {
- "id": 288,
- "appointment_id": 14,
- "booking_question_id": null,
- "editable": false,
- "column_name": "guest_phone",
- "name": "Phone",
- "label": "Phone",
- "kind": "text",
- "intent": "Phone",
- "built_in": true,
- "link": null,
- "value": "555-555-5555",
- "formatted_value": "555-555-5555",
- "options": null,
- "archived": false
}
}, - {
- "id": "289",
- "type": "appointment_booking_question",
- "attributes": {
- "id": 289,
- "appointment_id": 14,
- "booking_question_id": null,
- "editable": false,
- "column_name": "additional_guests",
- "name": "Guest Email(s)",
- "label": "Guest Email(s)",
- "kind": "text",
- "intent": "Guest Email(s)",
- "built_in": true,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}, - {
- "id": "290",
- "type": "appointment_booking_question",
- "attributes": {
- "id": 290,
- "appointment_id": 14,
- "booking_question_id": null,
- "editable": false,
- "column_name": "message",
- "name": "Additional Notes",
- "label": "Additional Notes",
- "kind": "textarea",
- "intent": "Additional Notes",
- "built_in": true,
- "link": null,
- "value": null,
- "formatted_value": null,
- "options": null,
- "archived": false
}
}
]
}Updates one or more booking question answers on the appointment. The body's custom_questions keys must match the column_name of each booking question (as returned by the GET endpoint). Built-in fields (e.g. guest_phone, event_date, venue_name) are also accepted here.
Only the keys you include are touched — other answers on the appointment are preserved.
Note: booking questions are sourced from the appointment's calendar. Appointments not created from a calendar (e.g. Quick Add) have no associated questions, so this endpoint is a no-op for them — use PATCH /api/v1/appointments/{id} to update guest/venue/event fields directly in that case.
Required permission: assigned_appointment_write or unassigned_appointment_write
| appointment_id required | integer The unique ID of the appointment |
| Api-Key required | string Your Integration Key |
required | object Keys are booking-question column names; values are the answer to record. |
{- "custom_questions": { }
}{- "meta": {
- "status": "ok"
}
}Returns a paginated list of appointments for the business. Results can be filtered by date range, staff member, brand, cancellation status, and text search.
Set staff_id to my to return only appointments assigned to the authenticated user.
The response includes meta.total_count and meta.per_page for pagination.
Required permission: assigned_appointment_read or unassigned_appointment_read
| start_date | string Filter by start date (YYYY-MM-DD) |
| end_date | string Filter by end date (YYYY-MM-DD) |
| staff_id | string Filter by staff member ID, or 'my' for the authenticated user |
| brand_id | integer Filter by brand ID |
| canceled_status | string Filter by cancellation status |
| past_or_future | string Filter to past or future appointments |
| search_text | string Full-text search across appointment details |
| page | integer Page number for pagination (default: 1) |
| per | integer Number of results per page (default: 25) |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok",
- "total_count": 1,
- "per_page": 10
}, - "data": [
- {
- "id": "16",
- "type": "appointment",
- "attributes": {
- "id": 16,
- "title": null,
- "guest_name": "John Doe",
- "guest_email": "jdoe@example.com",
- "guest_phone": "555-555-5555",
- "starts_at": "2026-06-16T13:55:57.658-07:00",
- "ends_at": "2026-06-16T14:55:57.658-07:00",
- "length_in_minutes": 60,
- "brand_id": 669,
- "brand_name": "Bode and Sons 91",
- "additional_guests": null,
- "additional_guest_list": [ ],
- "location": "Phone",
- "location_details": null,
- "private_notes": null,
- "canceled": false,
- "zoom_meeting_id": null,
- "zoom_meeting_invitation": null,
- "zoom_join_url": null,
- "google_meet_link": null,
- "google_meet_conference_id": null,
- "google_meet_invitation": null,
- "user_appointment_calendar_id": null,
- "event_time": null,
- "event_length": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "event_date": null,
- "event_date_iso8601": null,
- "available_locations": [
- "In Person",
- "Phone"
], - "formatted_date": "Tuesday, June 16, 2026",
- "formatted_datetime_range": "Tuesday, June 16, 2026 • 1:55 PM - 2:55 PM",
- "formatted_time_range": "1:55 PM - 2:55 PM",
- "staff_member_abbreviations": "NC",
- "custom_questions": { }
}, - "relationships": {
- "user_appointments": {
- "data": [
- {
- "id": "16",
- "type": "user_appointment"
}
]
}
}
}
]
}Creates a new appointment for the business. The appointment is assigned to the authenticated user by default, or to a specific user via user_id.
The location field specifies where the appointment takes place (e.g., "Phone", "In Person", a Zoom link, etc.).
Required permission: appointment_create
| Api-Key required | string Your Integration Key |
| guest_name required | string Guest name |
| guest_email required | string Guest email address |
| guest_phone | string Guest phone number |
| additional_guests | string Additional guest names or details |
| starts_at_date required | string Appointment date (YYYY-MM-DD) |
| starts_at_time required | string Appointment start time (e.g., "2:00 PM") |
| length_in_minutes required | integer Duration in minutes |
| location | string Appointment location (e.g., "Phone", "In Person") |
| private_notes | string Private internal notes |
| message | string Message to the guest |
| user_id | integer Staff member ID to assign (defaults to authenticated user) |
| brand_id | integer Brand ID (defaults to the primary brand) |
| user_appointment_calendar_id | integer Appointment calendar ID for scheduling |
| created_via required | string Enum: "quick_add" "widget" "app" How the appointment was created |
{- "guest_name": "string",
- "guest_email": "string",
- "guest_phone": "string",
- "additional_guests": "string",
- "starts_at_date": "string",
- "starts_at_time": "string",
- "length_in_minutes": 0,
- "location": "string",
- "private_notes": "string",
- "message": "string",
- "user_id": 0,
- "brand_id": 0,
- "user_appointment_calendar_id": 0,
- "created_via": "quick_add"
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "17",
- "type": "appointment",
- "attributes": {
- "id": 17,
- "title": "Jane Smith’s Phone Appointment",
- "guest_name": "Jane Smith",
- "guest_email": "jane@example.com",
- "guest_phone": "555-123-4567",
- "starts_at": "2026-06-16T14:00:00.000-07:00",
- "ends_at": "2026-06-16T14:30:00.000-07:00",
- "length_in_minutes": 30,
- "brand_id": 670,
- "brand_name": "Stroman Group 92",
- "additional_guests": null,
- "additional_guest_list": [ ],
- "location": "Phone",
- "location_details": null,
- "private_notes": "",
- "canceled": false,
- "zoom_meeting_id": null,
- "zoom_meeting_invitation": null,
- "zoom_join_url": null,
- "google_meet_link": null,
- "google_meet_conference_id": null,
- "google_meet_invitation": null,
- "user_appointment_calendar_id": null,
- "event_time": null,
- "event_length": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "event_date": null,
- "event_date_iso8601": null,
- "available_locations": [
- "In Person",
- "Phone"
], - "formatted_date": "Tuesday, June 16, 2026",
- "formatted_datetime_range": "Tuesday, June 16, 2026 • 2:00 PM - 2:30 PM",
- "formatted_time_range": "2:00 PM - 2:30 PM",
- "staff_member_abbreviations": "QL",
- "custom_questions": { }
}, - "relationships": {
- "user_appointments": {
- "data": [
- {
- "id": "17",
- "type": "user_appointment"
}
]
}
}
}
}Returns the full details of a single appointment, including guest information, date/time, location, meeting links (Zoom, Google Meet), and assigned staff.
Use the include query parameter to sideload related resources (comma-separated). Available: user_appointments.
Required permission: assigned_appointment_read or unassigned_appointment_read
| id required | integer The unique ID of the appointment |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "18",
- "type": "appointment",
- "attributes": {
- "id": 18,
- "title": null,
- "guest_name": "John Doe",
- "guest_email": "jdoe@example.com",
- "guest_phone": "555-555-5555",
- "starts_at": "2026-06-16T13:55:58.066-07:00",
- "ends_at": "2026-06-16T14:55:58.066-07:00",
- "length_in_minutes": 60,
- "brand_id": 671,
- "brand_name": "Abshire-Hackett 93",
- "additional_guests": null,
- "additional_guest_list": [ ],
- "location": "Phone",
- "location_details": null,
- "private_notes": null,
- "canceled": false,
- "zoom_meeting_id": null,
- "zoom_meeting_invitation": null,
- "zoom_join_url": null,
- "google_meet_link": null,
- "google_meet_conference_id": null,
- "google_meet_invitation": null,
- "user_appointment_calendar_id": null,
- "event_time": null,
- "event_length": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "event_date": null,
- "event_date_iso8601": null,
- "available_locations": [
- "In Person",
- "Phone"
], - "formatted_date": "Tuesday, June 16, 2026",
- "formatted_datetime_range": "Tuesday, June 16, 2026 • 1:55 PM - 2:55 PM",
- "formatted_time_range": "1:55 PM - 2:55 PM",
- "staff_member_abbreviations": "LD",
- "custom_questions": { }
}, - "relationships": {
- "user_appointments": {
- "data": [
- {
- "id": "18",
- "type": "user_appointment"
}
]
}
}
}
}Updates an existing appointment. Only the fields provided will be changed. If the start time or end time changes, a rescheduled notification is automatically sent.
Required permission: assigned_appointment_write or unassigned_appointment_write
| id required | integer The unique ID of the appointment |
| Api-Key required | string Your Integration Key |
| guest_name | string Guest name |
| guest_email | string Guest email address |
| guest_phone | string Guest phone number |
| additional_guests | string Additional guest names or details |
| starts_at_date | string New appointment date (YYYY-MM-DD) |
| starts_at_time | string New appointment start time (e.g., "2:00 PM") |
| length_in_minutes | integer Duration in minutes |
| location | string Appointment location |
| location_details | string Additional location details |
| private_notes | string Private internal notes |
| custom_title | string Custom title override |
| brand_id | integer Brand ID |
{- "guest_name": "string",
- "guest_email": "string",
- "guest_phone": "string",
- "additional_guests": "string",
- "starts_at_date": "string",
- "starts_at_time": "string",
- "length_in_minutes": 0,
- "location": "string",
- "location_details": "string",
- "private_notes": "string",
- "custom_title": "string",
- "brand_id": 0
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "19",
- "type": "appointment",
- "attributes": {
- "id": 19,
- "title": "Updated Name’s Phone Appointment",
- "guest_name": "Updated Name",
- "guest_email": "jdoe@example.com",
- "guest_phone": "555-555-5555",
- "starts_at": "2026-06-16T13:55:58.124-07:00",
- "ends_at": "2026-06-16T14:55:58.124-07:00",
- "length_in_minutes": 60,
- "brand_id": 672,
- "brand_name": "Runolfsson, Casper and Olson 94",
- "additional_guests": null,
- "additional_guest_list": [ ],
- "location": "Phone",
- "location_details": null,
- "private_notes": null,
- "canceled": false,
- "zoom_meeting_id": null,
- "zoom_meeting_invitation": null,
- "zoom_join_url": null,
- "google_meet_link": null,
- "google_meet_conference_id": null,
- "google_meet_invitation": null,
- "user_appointment_calendar_id": null,
- "event_time": null,
- "event_length": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "event_date": null,
- "event_date_iso8601": null,
- "available_locations": [
- "In Person",
- "Phone"
], - "formatted_date": "Tuesday, June 16, 2026",
- "formatted_datetime_range": "Tuesday, June 16, 2026 • 1:55 PM - 2:55 PM",
- "formatted_time_range": "1:55 PM - 2:55 PM",
- "staff_member_abbreviations": "LM",
- "custom_questions": { }
}, - "relationships": {
- "user_appointments": {
- "data": [
- {
- "id": "19",
- "type": "user_appointment"
}
]
}
}
}
}Soft-deletes an appointment. The appointment is marked as deleted but not permanently removed.
Required permission: assigned_appointment_write or unassigned_appointment_write
| id required | integer The unique ID of the appointment |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "20",
- "type": "appointment",
- "attributes": {
- "id": 20,
- "title": null,
- "guest_name": "John Doe",
- "guest_email": "jdoe@example.com",
- "guest_phone": "555-555-5555",
- "starts_at": "2026-06-16T13:55:58.198-07:00",
- "ends_at": "2026-06-16T14:55:58.198-07:00",
- "length_in_minutes": 60,
- "brand_id": 673,
- "brand_name": "Russel Inc 95",
- "additional_guests": null,
- "additional_guest_list": [ ],
- "location": "Phone",
- "location_details": null,
- "private_notes": null,
- "canceled": false,
- "zoom_meeting_id": null,
- "zoom_meeting_invitation": null,
- "zoom_join_url": null,
- "google_meet_link": null,
- "google_meet_conference_id": null,
- "google_meet_invitation": null,
- "user_appointment_calendar_id": null,
- "event_time": null,
- "event_length": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "event_date": null,
- "event_date_iso8601": null,
- "available_locations": [
- "In Person",
- "Phone"
], - "formatted_date": "Tuesday, June 16, 2026",
- "formatted_datetime_range": "Tuesday, June 16, 2026 • 1:55 PM - 2:55 PM",
- "formatted_time_range": "1:55 PM - 2:55 PM",
- "staff_member_abbreviations": "TB",
- "custom_questions": { }
}, - "relationships": {
- "user_appointments": {
- "data": [
- {
- "id": "20",
- "type": "user_appointment"
}
]
}
}
}
}Cancels an appointment and sends cancellation notifications to the guest.
Required permission: assigned_appointment_write or unassigned_appointment_write
| id required | integer The unique ID of the appointment |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "21",
- "type": "appointment",
- "attributes": {
- "id": 21,
- "title": null,
- "guest_name": "John Doe",
- "guest_email": "jdoe@example.com",
- "guest_phone": "555-555-5555",
- "starts_at": "2026-06-16T13:55:58.257-07:00",
- "ends_at": "2026-06-16T14:55:58.257-07:00",
- "length_in_minutes": 60,
- "brand_id": 674,
- "brand_name": "Wolff, Rodriguez and Dickens 96",
- "additional_guests": null,
- "additional_guest_list": [ ],
- "location": "Phone",
- "location_details": null,
- "private_notes": null,
- "canceled": true,
- "zoom_meeting_id": null,
- "zoom_meeting_invitation": null,
- "zoom_join_url": null,
- "google_meet_link": null,
- "google_meet_conference_id": null,
- "google_meet_invitation": null,
- "user_appointment_calendar_id": null,
- "event_time": null,
- "event_length": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "event_date": null,
- "event_date_iso8601": null,
- "available_locations": [
- "In Person",
- "Phone"
], - "formatted_date": "Tuesday, June 16, 2026",
- "formatted_datetime_range": "Tuesday, June 16, 2026 • 1:55 PM - 2:55 PM",
- "formatted_time_range": "1:55 PM - 2:55 PM",
- "staff_member_abbreviations": "QC",
- "custom_questions": { }
}, - "relationships": {
- "user_appointments": {
- "data": [
- {
- "id": "21",
- "type": "user_appointment"
}
]
}
}
}
}Restores a previously canceled appointment.
Required permission: assigned_appointment_write or unassigned_appointment_write
| id required | integer The unique ID of the appointment |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "22",
- "type": "appointment",
- "attributes": {
- "id": 22,
- "title": null,
- "guest_name": "John Doe",
- "guest_email": "jdoe@example.com",
- "guest_phone": "555-555-5555",
- "starts_at": "2026-06-16T13:55:58.377-07:00",
- "ends_at": "2026-06-16T14:55:58.377-07:00",
- "length_in_minutes": 60,
- "brand_id": 675,
- "brand_name": "Beer-Mayer 97",
- "additional_guests": null,
- "additional_guest_list": [ ],
- "location": "Phone",
- "location_details": null,
- "private_notes": null,
- "canceled": false,
- "zoom_meeting_id": null,
- "zoom_meeting_invitation": null,
- "zoom_join_url": null,
- "google_meet_link": null,
- "google_meet_conference_id": null,
- "google_meet_invitation": null,
- "user_appointment_calendar_id": null,
- "event_time": null,
- "event_length": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "event_date": null,
- "event_date_iso8601": null,
- "available_locations": [
- "In Person",
- "Phone"
], - "formatted_date": "Tuesday, June 16, 2026",
- "formatted_datetime_range": "Tuesday, June 16, 2026 • 1:55 PM - 2:55 PM",
- "formatted_time_range": "1:55 PM - 2:55 PM",
- "staff_member_abbreviations": "RM",
- "custom_questions": { }
}, - "relationships": {
- "user_appointments": {
- "data": [
- {
- "id": "22",
- "type": "user_appointment"
}
]
}
}
}
}Creates a copy of an existing appointment with a new date and time. The guest details and other settings are carried over from the original.
Required permission: unassigned_appointment_write
| id required | integer The unique ID of the appointment to duplicate |
| Api-Key required | string Your Integration Key |
| starts_at_date required | string Date for the new appointment (YYYY-MM-DD) |
| starts_at_time required | string Start time for the new appointment (e.g., "2:00 PM") |
{- "starts_at_date": "string",
- "starts_at_time": "string"
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "24",
- "type": "appointment",
- "attributes": {
- "id": 24,
- "title": "John Doe’s Phone Appointment",
- "guest_name": "John Doe",
- "guest_email": "jdoe@example.com",
- "guest_phone": "555-555-5555",
- "starts_at": "2026-06-23T15:00:00.000-07:00",
- "ends_at": "2026-06-23T16:00:00.000-07:00",
- "length_in_minutes": 60,
- "brand_id": 676,
- "brand_name": "Witting LLC 98",
- "additional_guests": null,
- "additional_guest_list": [ ],
- "location": "Phone",
- "location_details": null,
- "private_notes": null,
- "canceled": false,
- "zoom_meeting_id": null,
- "zoom_meeting_invitation": null,
- "zoom_join_url": null,
- "google_meet_link": null,
- "google_meet_conference_id": null,
- "google_meet_invitation": null,
- "user_appointment_calendar_id": null,
- "event_time": null,
- "event_length": null,
- "venue_name": null,
- "venue_address": null,
- "venue_city": null,
- "venue_state": null,
- "venue_zip": null,
- "event_date": null,
- "event_date_iso8601": null,
- "available_locations": [
- "In Person",
- "Phone"
], - "formatted_date": "Tuesday, June 23, 2026",
- "formatted_datetime_range": "Tuesday, June 23, 2026 • 3:00 PM - 4:00 PM",
- "formatted_time_range": "3:00 PM - 4:00 PM",
- "staff_member_abbreviations": "CW",
- "custom_questions": { }
}, - "relationships": {
- "user_appointments": {
- "data": [
- {
- "id": "24",
- "type": "user_appointment"
}
]
}
}
}
}Check real-time availability for the business. Query by date, package, staff member, add-on, or backdrop to determine what time slots are open. Use available slots endpoints to build booking interfaces where customers pick a time.
Checks whether the business has availability on a given date or date range for a specific package. Returns inventory information indicating whether the date is available, partially available, or fully booked.
Provide either a single event_date or a range via starts_at and ends_at.
Required permission: availability_read
| event_date | string Date to check (YYYY-MM-DD) |
| starts_at | string Start of date range (YYYY-MM-DD) |
| ends_at | string End of date range (YYYY-MM-DD) |
| package_id | integer Package (event type) ID to check availability for |
| Api-Key required | string Your Integration Key |
{- "data": {
- "id": "357881ea-f3be-485c-9828-74c3fc8dc371",
- "type": "availability_result",
- "attributes": {
- "id": "357881ea-f3be-485c-9828-74c3fc8dc371",
- "available": true,
- "event_type_id": 24,
- "starts_at": "2026-07-09T00:00:00.000-07:00",
- "ends_at": "2026-07-09T23:59:59.999-07:00"
}, - "relationships": {
- "event_type": {
- "data": {
- "id": "24",
- "type": "event_type"
}
}
}
}
}Returns detailed availability information for a specific date, time, and resource combination. Use this to check whether a particular staff member, add-on, or backdrop is available for a given time slot.
This endpoint supports multiple lookup types and can check availability for packages, add-ons, backdrops, and specific staff members simultaneously.
Required permission: availability_read
| starts_at_date | string Date to check (YYYY-MM-DD) |
| starts_at_time | string Start time to check |
| ends_at_time | string End time to check |
| starts_at | string Start datetime (ISO 8601) |
| ends_at | string End datetime (ISO 8601) |
| package_id | integer Package (event type) ID |
| add_on_id | integer Add-on ID to check availability for |
| backdrop_id | integer Backdrop ID to check availability for |
| staff_id | integer Staff member ID to check availability for |
| lookup_type | string Type of availability lookup |
| quantity | integer Quantity to check availability for |
| Api-Key required | string Your Integration Key |
{- "available": true,
- "messages": [ ],
- "overlapping_bookings": [ ]
}Returns the available time slots for a specific date and package. Each slot includes the start time, availability status, and formatted display name.
This is useful for building booking interfaces where customers select a time slot.
Required permission: availability_read
| event_date required | string Date to check (YYYY-MM-DD) |
| package_id required | integer Package (event type) ID |
| length_in_minutes | integer Event duration in minutes (overrides package default) |
| Api-Key required | string Your Integration Key |
{- "data": [
- {
- "id": "d11dcbdd-ca39-4f08-9129-b74f7f8d9b01",
- "type": "availability_slot",
- "attributes": {
- "id": "d11dcbdd-ca39-4f08-9129-b74f7f8d9b01",
- "available": true,
- "starts_at": "2026-07-09T00:00:00.000-07:00",
- "formatted_slot_name": "12:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "12:00 AM"
}
}, - {
- "id": "c36d8fd3-bb05-43fe-99ea-5e27b5319884",
- "type": "availability_slot",
- "attributes": {
- "id": "c36d8fd3-bb05-43fe-99ea-5e27b5319884",
- "available": true,
- "starts_at": "2026-07-09T00:30:00.000-07:00",
- "formatted_slot_name": "12:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "12:30 AM"
}
}, - {
- "id": "2fffc4c7-974a-4fd0-8fe5-0418cf0bfaa9",
- "type": "availability_slot",
- "attributes": {
- "id": "2fffc4c7-974a-4fd0-8fe5-0418cf0bfaa9",
- "available": true,
- "starts_at": "2026-07-09T01:00:00.000-07:00",
- "formatted_slot_name": "1:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "1:00 AM"
}
}, - {
- "id": "94adfe66-7c3b-4f96-bb37-e1b4e70a38b6",
- "type": "availability_slot",
- "attributes": {
- "id": "94adfe66-7c3b-4f96-bb37-e1b4e70a38b6",
- "available": true,
- "starts_at": "2026-07-09T01:30:00.000-07:00",
- "formatted_slot_name": "1:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "1:30 AM"
}
}, - {
- "id": "57a578ac-5875-452a-a6b2-6a9234a46bd8",
- "type": "availability_slot",
- "attributes": {
- "id": "57a578ac-5875-452a-a6b2-6a9234a46bd8",
- "available": true,
- "starts_at": "2026-07-09T02:00:00.000-07:00",
- "formatted_slot_name": "2:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "2:00 AM"
}
}, - {
- "id": "9f62d3d9-5597-4f4a-a7c0-17d33c2307df",
- "type": "availability_slot",
- "attributes": {
- "id": "9f62d3d9-5597-4f4a-a7c0-17d33c2307df",
- "available": true,
- "starts_at": "2026-07-09T02:30:00.000-07:00",
- "formatted_slot_name": "2:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "2:30 AM"
}
}, - {
- "id": "7dd22941-f7f5-4d74-9ae9-1f1115751f6c",
- "type": "availability_slot",
- "attributes": {
- "id": "7dd22941-f7f5-4d74-9ae9-1f1115751f6c",
- "available": true,
- "starts_at": "2026-07-09T03:00:00.000-07:00",
- "formatted_slot_name": "3:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "3:00 AM"
}
}, - {
- "id": "28a70cd3-7cbd-4e73-b160-d19f6d8d1fb6",
- "type": "availability_slot",
- "attributes": {
- "id": "28a70cd3-7cbd-4e73-b160-d19f6d8d1fb6",
- "available": true,
- "starts_at": "2026-07-09T03:30:00.000-07:00",
- "formatted_slot_name": "3:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "3:30 AM"
}
}, - {
- "id": "ba483edb-065b-44b9-8e43-cff6c161f4b4",
- "type": "availability_slot",
- "attributes": {
- "id": "ba483edb-065b-44b9-8e43-cff6c161f4b4",
- "available": true,
- "starts_at": "2026-07-09T04:00:00.000-07:00",
- "formatted_slot_name": "4:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "4:00 AM"
}
}, - {
- "id": "bf43cd20-907a-4615-8b31-66335580dc2f",
- "type": "availability_slot",
- "attributes": {
- "id": "bf43cd20-907a-4615-8b31-66335580dc2f",
- "available": true,
- "starts_at": "2026-07-09T04:30:00.000-07:00",
- "formatted_slot_name": "4:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "4:30 AM"
}
}, - {
- "id": "7ab6ebd8-efdd-4c72-b796-1b7ef47c04af",
- "type": "availability_slot",
- "attributes": {
- "id": "7ab6ebd8-efdd-4c72-b796-1b7ef47c04af",
- "available": true,
- "starts_at": "2026-07-09T05:00:00.000-07:00",
- "formatted_slot_name": "5:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "5:00 AM"
}
}, - {
- "id": "439e5e3c-c935-4c08-9b1f-e0f6eb900563",
- "type": "availability_slot",
- "attributes": {
- "id": "439e5e3c-c935-4c08-9b1f-e0f6eb900563",
- "available": true,
- "starts_at": "2026-07-09T05:30:00.000-07:00",
- "formatted_slot_name": "5:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "5:30 AM"
}
}, - {
- "id": "18666104-136a-44cc-9cc1-82de4f650874",
- "type": "availability_slot",
- "attributes": {
- "id": "18666104-136a-44cc-9cc1-82de4f650874",
- "available": true,
- "starts_at": "2026-07-09T06:00:00.000-07:00",
- "formatted_slot_name": "6:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "6:00 AM"
}
}, - {
- "id": "92078dc4-1c2c-430d-a9b5-bcd706deac25",
- "type": "availability_slot",
- "attributes": {
- "id": "92078dc4-1c2c-430d-a9b5-bcd706deac25",
- "available": true,
- "starts_at": "2026-07-09T06:30:00.000-07:00",
- "formatted_slot_name": "6:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "6:30 AM"
}
}, - {
- "id": "14bf268d-2c5f-4d6e-9b3b-8fc0ae2f0478",
- "type": "availability_slot",
- "attributes": {
- "id": "14bf268d-2c5f-4d6e-9b3b-8fc0ae2f0478",
- "available": true,
- "starts_at": "2026-07-09T07:00:00.000-07:00",
- "formatted_slot_name": "7:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "7:00 AM"
}
}, - {
- "id": "ff6c8c98-f198-40bd-94f3-7a58b5a46f69",
- "type": "availability_slot",
- "attributes": {
- "id": "ff6c8c98-f198-40bd-94f3-7a58b5a46f69",
- "available": true,
- "starts_at": "2026-07-09T07:30:00.000-07:00",
- "formatted_slot_name": "7:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "7:30 AM"
}
}, - {
- "id": "122420b4-9e7e-4fea-a799-b5fe1d082ada",
- "type": "availability_slot",
- "attributes": {
- "id": "122420b4-9e7e-4fea-a799-b5fe1d082ada",
- "available": true,
- "starts_at": "2026-07-09T08:00:00.000-07:00",
- "formatted_slot_name": "8:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "8:00 AM"
}
}, - {
- "id": "1d616b53-1d34-4b45-a4d3-836d3ba091fa",
- "type": "availability_slot",
- "attributes": {
- "id": "1d616b53-1d34-4b45-a4d3-836d3ba091fa",
- "available": true,
- "starts_at": "2026-07-09T08:30:00.000-07:00",
- "formatted_slot_name": "8:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "8:30 AM"
}
}, - {
- "id": "d157bc25-491e-44dc-a4a2-351f1cf5c4f4",
- "type": "availability_slot",
- "attributes": {
- "id": "d157bc25-491e-44dc-a4a2-351f1cf5c4f4",
- "available": true,
- "starts_at": "2026-07-09T09:00:00.000-07:00",
- "formatted_slot_name": "9:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "9:00 AM"
}
}, - {
- "id": "51330fe8-1f12-431e-95bb-40454b4b6437",
- "type": "availability_slot",
- "attributes": {
- "id": "51330fe8-1f12-431e-95bb-40454b4b6437",
- "available": true,
- "starts_at": "2026-07-09T09:30:00.000-07:00",
- "formatted_slot_name": "9:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "9:30 AM"
}
}, - {
- "id": "555cf25b-9593-4dac-aa93-fee30879cbb5",
- "type": "availability_slot",
- "attributes": {
- "id": "555cf25b-9593-4dac-aa93-fee30879cbb5",
- "available": true,
- "starts_at": "2026-07-09T10:00:00.000-07:00",
- "formatted_slot_name": "10:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "10:00 AM"
}
}, - {
- "id": "efe7e811-83ad-4ca2-adde-777566dde8ba",
- "type": "availability_slot",
- "attributes": {
- "id": "efe7e811-83ad-4ca2-adde-777566dde8ba",
- "available": true,
- "starts_at": "2026-07-09T10:30:00.000-07:00",
- "formatted_slot_name": "10:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "10:30 AM"
}
}, - {
- "id": "25b3e26b-b6c7-4153-8673-f18819ceb405",
- "type": "availability_slot",
- "attributes": {
- "id": "25b3e26b-b6c7-4153-8673-f18819ceb405",
- "available": true,
- "starts_at": "2026-07-09T11:00:00.000-07:00",
- "formatted_slot_name": "11:00 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "11:00 AM"
}
}, - {
- "id": "3c961f3b-38cd-42df-8c36-6d81c330fd4a",
- "type": "availability_slot",
- "attributes": {
- "id": "3c961f3b-38cd-42df-8c36-6d81c330fd4a",
- "available": true,
- "starts_at": "2026-07-09T11:30:00.000-07:00",
- "formatted_slot_name": "11:30 AM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "11:30 AM"
}
}, - {
- "id": "01128768-3ef3-425c-9ac4-8ab02a0ec6bc",
- "type": "availability_slot",
- "attributes": {
- "id": "01128768-3ef3-425c-9ac4-8ab02a0ec6bc",
- "available": true,
- "starts_at": "2026-07-09T12:00:00.000-07:00",
- "formatted_slot_name": "12:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "12:00 PM"
}
}, - {
- "id": "50225e0c-c595-4a74-869c-15d126824d69",
- "type": "availability_slot",
- "attributes": {
- "id": "50225e0c-c595-4a74-869c-15d126824d69",
- "available": true,
- "starts_at": "2026-07-09T12:30:00.000-07:00",
- "formatted_slot_name": "12:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "12:30 PM"
}
}, - {
- "id": "5bad3d25-fe22-454b-af7a-03569fceea76",
- "type": "availability_slot",
- "attributes": {
- "id": "5bad3d25-fe22-454b-af7a-03569fceea76",
- "available": true,
- "starts_at": "2026-07-09T13:00:00.000-07:00",
- "formatted_slot_name": "1:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "1:00 PM"
}
}, - {
- "id": "a340dffb-221a-4b6c-abed-431983064edf",
- "type": "availability_slot",
- "attributes": {
- "id": "a340dffb-221a-4b6c-abed-431983064edf",
- "available": true,
- "starts_at": "2026-07-09T13:30:00.000-07:00",
- "formatted_slot_name": "1:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "1:30 PM"
}
}, - {
- "id": "e71a54de-5e42-4f04-8537-4a363fa830f7",
- "type": "availability_slot",
- "attributes": {
- "id": "e71a54de-5e42-4f04-8537-4a363fa830f7",
- "available": true,
- "starts_at": "2026-07-09T14:00:00.000-07:00",
- "formatted_slot_name": "2:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "2:00 PM"
}
}, - {
- "id": "204ab635-3557-48df-8010-b26d868c84c8",
- "type": "availability_slot",
- "attributes": {
- "id": "204ab635-3557-48df-8010-b26d868c84c8",
- "available": true,
- "starts_at": "2026-07-09T14:30:00.000-07:00",
- "formatted_slot_name": "2:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "2:30 PM"
}
}, - {
- "id": "79da03cf-6119-40e8-b6c1-08055cf32f38",
- "type": "availability_slot",
- "attributes": {
- "id": "79da03cf-6119-40e8-b6c1-08055cf32f38",
- "available": true,
- "starts_at": "2026-07-09T15:00:00.000-07:00",
- "formatted_slot_name": "3:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "3:00 PM"
}
}, - {
- "id": "84830c01-043c-4650-9628-2b2be9b6a0b0",
- "type": "availability_slot",
- "attributes": {
- "id": "84830c01-043c-4650-9628-2b2be9b6a0b0",
- "available": true,
- "starts_at": "2026-07-09T15:30:00.000-07:00",
- "formatted_slot_name": "3:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "3:30 PM"
}
}, - {
- "id": "2be9b9b8-e0d8-455c-9333-f5575ac73d3c",
- "type": "availability_slot",
- "attributes": {
- "id": "2be9b9b8-e0d8-455c-9333-f5575ac73d3c",
- "available": true,
- "starts_at": "2026-07-09T16:00:00.000-07:00",
- "formatted_slot_name": "4:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "4:00 PM"
}
}, - {
- "id": "db522169-4d4e-4d70-964d-c9bab2bfa5bd",
- "type": "availability_slot",
- "attributes": {
- "id": "db522169-4d4e-4d70-964d-c9bab2bfa5bd",
- "available": true,
- "starts_at": "2026-07-09T16:30:00.000-07:00",
- "formatted_slot_name": "4:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "4:30 PM"
}
}, - {
- "id": "83c3e99d-e150-4410-837a-92b7ed441f7c",
- "type": "availability_slot",
- "attributes": {
- "id": "83c3e99d-e150-4410-837a-92b7ed441f7c",
- "available": true,
- "starts_at": "2026-07-09T17:00:00.000-07:00",
- "formatted_slot_name": "5:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "5:00 PM"
}
}, - {
- "id": "74436cdd-6f60-4117-8349-3bb56002cc4c",
- "type": "availability_slot",
- "attributes": {
- "id": "74436cdd-6f60-4117-8349-3bb56002cc4c",
- "available": true,
- "starts_at": "2026-07-09T17:30:00.000-07:00",
- "formatted_slot_name": "5:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "5:30 PM"
}
}, - {
- "id": "ee7cab81-bc24-4623-91e2-d092c6e4e18b",
- "type": "availability_slot",
- "attributes": {
- "id": "ee7cab81-bc24-4623-91e2-d092c6e4e18b",
- "available": true,
- "starts_at": "2026-07-09T18:00:00.000-07:00",
- "formatted_slot_name": "6:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "6:00 PM"
}
}, - {
- "id": "252767ef-f3d7-4121-9eef-9b289e9bd9aa",
- "type": "availability_slot",
- "attributes": {
- "id": "252767ef-f3d7-4121-9eef-9b289e9bd9aa",
- "available": true,
- "starts_at": "2026-07-09T18:30:00.000-07:00",
- "formatted_slot_name": "6:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "6:30 PM"
}
}, - {
- "id": "6009cae7-aece-4e7b-9188-9ae8c95024b6",
- "type": "availability_slot",
- "attributes": {
- "id": "6009cae7-aece-4e7b-9188-9ae8c95024b6",
- "available": true,
- "starts_at": "2026-07-09T19:00:00.000-07:00",
- "formatted_slot_name": "7:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "7:00 PM"
}
}, - {
- "id": "7b367900-6b4f-442c-a61a-36b0b52b54a4",
- "type": "availability_slot",
- "attributes": {
- "id": "7b367900-6b4f-442c-a61a-36b0b52b54a4",
- "available": true,
- "starts_at": "2026-07-09T19:30:00.000-07:00",
- "formatted_slot_name": "7:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "7:30 PM"
}
}, - {
- "id": "5a66bbeb-45b5-4185-9dc1-d2cce8f02f1a",
- "type": "availability_slot",
- "attributes": {
- "id": "5a66bbeb-45b5-4185-9dc1-d2cce8f02f1a",
- "available": true,
- "starts_at": "2026-07-09T20:00:00.000-07:00",
- "formatted_slot_name": "8:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "8:00 PM"
}
}, - {
- "id": "514133d6-0f2f-4249-8ad4-6c977cf466b0",
- "type": "availability_slot",
- "attributes": {
- "id": "514133d6-0f2f-4249-8ad4-6c977cf466b0",
- "available": true,
- "starts_at": "2026-07-09T20:30:00.000-07:00",
- "formatted_slot_name": "8:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "8:30 PM"
}
}, - {
- "id": "2d619140-bb17-4f76-abf3-a867ba36b015",
- "type": "availability_slot",
- "attributes": {
- "id": "2d619140-bb17-4f76-abf3-a867ba36b015",
- "available": true,
- "starts_at": "2026-07-09T21:00:00.000-07:00",
- "formatted_slot_name": "9:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "9:00 PM"
}
}, - {
- "id": "98629cb5-99f9-4a26-8e26-97e95c58ebd2",
- "type": "availability_slot",
- "attributes": {
- "id": "98629cb5-99f9-4a26-8e26-97e95c58ebd2",
- "available": true,
- "starts_at": "2026-07-09T21:30:00.000-07:00",
- "formatted_slot_name": "9:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "9:30 PM"
}
}, - {
- "id": "69439539-dac6-4994-9e95-99922d28f528",
- "type": "availability_slot",
- "attributes": {
- "id": "69439539-dac6-4994-9e95-99922d28f528",
- "available": true,
- "starts_at": "2026-07-09T22:00:00.000-07:00",
- "formatted_slot_name": "10:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "10:00 PM"
}
}, - {
- "id": "c19aa0d7-546e-47d1-92bf-d62fa1086059",
- "type": "availability_slot",
- "attributes": {
- "id": "c19aa0d7-546e-47d1-92bf-d62fa1086059",
- "available": true,
- "starts_at": "2026-07-09T22:30:00.000-07:00",
- "formatted_slot_name": "10:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "10:30 PM"
}
}, - {
- "id": "0c8cb57f-df86-472e-8c3d-177bc95e1cae",
- "type": "availability_slot",
- "attributes": {
- "id": "0c8cb57f-df86-472e-8c3d-177bc95e1cae",
- "available": true,
- "starts_at": "2026-07-09T23:00:00.000-07:00",
- "formatted_slot_name": "11:00 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "11:00 PM"
}
}, - {
- "id": "824a4b16-cf7c-4cd3-84cc-a87c77f40220",
- "type": "availability_slot",
- "attributes": {
- "id": "824a4b16-cf7c-4cd3-84cc-a87c77f40220",
- "available": true,
- "starts_at": "2026-07-09T23:30:00.000-07:00",
- "formatted_slot_name": "11:30 PM",
- "length_in_minutes": 60,
- "localized_date": "07-09-2026",
- "localized_time": "11:30 PM"
}
}
]
}Returns available appointment time slots for a specific staff member's appointment calendar on a given date. Each slot shows whether it is available or already booked.
Requires a user_id and user_appointment_calendar_id to identify which staff member's calendar to check.
Required permission: user_appointment_calendar_read
| user_id required | integer Staff member user ID |
| user_appointment_calendar_id required | integer Appointment calendar ID for the staff member |
| selected_date required | string Date to check (YYYY-MM-DD) |
| Api-Key required | string Your Integration Key |
{- "data": [
- {
- "id": "7bac8b28-1b63-4c66-b372-b817f7157ad4",
- "type": "availability_slot",
- "attributes": {
- "id": "7bac8b28-1b63-4c66-b372-b817f7157ad4",
- "available": true,
- "starts_at": "2026-07-09T00:00:00.000-07:00",
- "formatted_slot_name": "12:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "12:00 AM"
}
}, - {
- "id": "8519129f-78be-4e67-9711-790dd9c2d062",
- "type": "availability_slot",
- "attributes": {
- "id": "8519129f-78be-4e67-9711-790dd9c2d062",
- "available": true,
- "starts_at": "2026-07-09T00:30:00.000-07:00",
- "formatted_slot_name": "12:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "12:30 AM"
}
}, - {
- "id": "9595ae73-c41a-4cf5-b8bb-aad749923552",
- "type": "availability_slot",
- "attributes": {
- "id": "9595ae73-c41a-4cf5-b8bb-aad749923552",
- "available": true,
- "starts_at": "2026-07-09T01:00:00.000-07:00",
- "formatted_slot_name": "1:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "1:00 AM"
}
}, - {
- "id": "47658b29-839d-4b79-ab94-9f1ca6d2e83b",
- "type": "availability_slot",
- "attributes": {
- "id": "47658b29-839d-4b79-ab94-9f1ca6d2e83b",
- "available": true,
- "starts_at": "2026-07-09T01:30:00.000-07:00",
- "formatted_slot_name": "1:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "1:30 AM"
}
}, - {
- "id": "4551fab2-f7c2-4748-8e3c-33545421c8d9",
- "type": "availability_slot",
- "attributes": {
- "id": "4551fab2-f7c2-4748-8e3c-33545421c8d9",
- "available": true,
- "starts_at": "2026-07-09T02:00:00.000-07:00",
- "formatted_slot_name": "2:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "2:00 AM"
}
}, - {
- "id": "96f92399-213a-4975-8b33-ddb64ce5f95a",
- "type": "availability_slot",
- "attributes": {
- "id": "96f92399-213a-4975-8b33-ddb64ce5f95a",
- "available": true,
- "starts_at": "2026-07-09T02:30:00.000-07:00",
- "formatted_slot_name": "2:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "2:30 AM"
}
}, - {
- "id": "89087570-f4c9-4712-90f1-2c9e64e462f0",
- "type": "availability_slot",
- "attributes": {
- "id": "89087570-f4c9-4712-90f1-2c9e64e462f0",
- "available": true,
- "starts_at": "2026-07-09T03:00:00.000-07:00",
- "formatted_slot_name": "3:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "3:00 AM"
}
}, - {
- "id": "61ec71ac-c81b-4eef-afc6-bd2612844c27",
- "type": "availability_slot",
- "attributes": {
- "id": "61ec71ac-c81b-4eef-afc6-bd2612844c27",
- "available": true,
- "starts_at": "2026-07-09T03:30:00.000-07:00",
- "formatted_slot_name": "3:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "3:30 AM"
}
}, - {
- "id": "46790fdc-f68e-44f0-80e6-36268d4ddfaf",
- "type": "availability_slot",
- "attributes": {
- "id": "46790fdc-f68e-44f0-80e6-36268d4ddfaf",
- "available": true,
- "starts_at": "2026-07-09T04:00:00.000-07:00",
- "formatted_slot_name": "4:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "4:00 AM"
}
}, - {
- "id": "8eb8d7c4-d7ae-4f85-9a01-7cd07fd84abd",
- "type": "availability_slot",
- "attributes": {
- "id": "8eb8d7c4-d7ae-4f85-9a01-7cd07fd84abd",
- "available": true,
- "starts_at": "2026-07-09T04:30:00.000-07:00",
- "formatted_slot_name": "4:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "4:30 AM"
}
}, - {
- "id": "e44c3aa9-da4c-44f6-a25a-9153df99dfcb",
- "type": "availability_slot",
- "attributes": {
- "id": "e44c3aa9-da4c-44f6-a25a-9153df99dfcb",
- "available": true,
- "starts_at": "2026-07-09T05:00:00.000-07:00",
- "formatted_slot_name": "5:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "5:00 AM"
}
}, - {
- "id": "6394ac43-f6bc-4803-8484-d6e5736cd8d2",
- "type": "availability_slot",
- "attributes": {
- "id": "6394ac43-f6bc-4803-8484-d6e5736cd8d2",
- "available": true,
- "starts_at": "2026-07-09T05:30:00.000-07:00",
- "formatted_slot_name": "5:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "5:30 AM"
}
}, - {
- "id": "df18f258-8d63-46e8-a5b2-67ccf31f5772",
- "type": "availability_slot",
- "attributes": {
- "id": "df18f258-8d63-46e8-a5b2-67ccf31f5772",
- "available": true,
- "starts_at": "2026-07-09T06:00:00.000-07:00",
- "formatted_slot_name": "6:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "6:00 AM"
}
}, - {
- "id": "7f5fccef-cfc3-4896-aeda-f4edbd43cbcf",
- "type": "availability_slot",
- "attributes": {
- "id": "7f5fccef-cfc3-4896-aeda-f4edbd43cbcf",
- "available": true,
- "starts_at": "2026-07-09T06:30:00.000-07:00",
- "formatted_slot_name": "6:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "6:30 AM"
}
}, - {
- "id": "b948e843-3288-4829-8a24-913a76b93854",
- "type": "availability_slot",
- "attributes": {
- "id": "b948e843-3288-4829-8a24-913a76b93854",
- "available": true,
- "starts_at": "2026-07-09T07:00:00.000-07:00",
- "formatted_slot_name": "7:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "7:00 AM"
}
}, - {
- "id": "cef050c8-1985-42fa-8bc6-2090636da356",
- "type": "availability_slot",
- "attributes": {
- "id": "cef050c8-1985-42fa-8bc6-2090636da356",
- "available": true,
- "starts_at": "2026-07-09T07:30:00.000-07:00",
- "formatted_slot_name": "7:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "7:30 AM"
}
}, - {
- "id": "1dcc4bcd-0e47-4c2a-aea1-ea98cecc1049",
- "type": "availability_slot",
- "attributes": {
- "id": "1dcc4bcd-0e47-4c2a-aea1-ea98cecc1049",
- "available": true,
- "starts_at": "2026-07-09T08:00:00.000-07:00",
- "formatted_slot_name": "8:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "8:00 AM"
}
}, - {
- "id": "68df5f02-c2bb-426a-aecc-e2fd90716abd",
- "type": "availability_slot",
- "attributes": {
- "id": "68df5f02-c2bb-426a-aecc-e2fd90716abd",
- "available": true,
- "starts_at": "2026-07-09T08:30:00.000-07:00",
- "formatted_slot_name": "8:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "8:30 AM"
}
}, - {
- "id": "230c430d-37c3-4775-8ce9-2cb091e29b82",
- "type": "availability_slot",
- "attributes": {
- "id": "230c430d-37c3-4775-8ce9-2cb091e29b82",
- "available": true,
- "starts_at": "2026-07-09T09:00:00.000-07:00",
- "formatted_slot_name": "9:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "9:00 AM"
}
}, - {
- "id": "b21d9a57-5b2d-42fc-9b5b-9c6715172145",
- "type": "availability_slot",
- "attributes": {
- "id": "b21d9a57-5b2d-42fc-9b5b-9c6715172145",
- "available": true,
- "starts_at": "2026-07-09T09:30:00.000-07:00",
- "formatted_slot_name": "9:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "9:30 AM"
}
}, - {
- "id": "3b71f1a1-3baf-4382-970c-a7b0230c7ff0",
- "type": "availability_slot",
- "attributes": {
- "id": "3b71f1a1-3baf-4382-970c-a7b0230c7ff0",
- "available": true,
- "starts_at": "2026-07-09T10:00:00.000-07:00",
- "formatted_slot_name": "10:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "10:00 AM"
}
}, - {
- "id": "51b587e7-5877-4a69-8ccf-cd91977ad151",
- "type": "availability_slot",
- "attributes": {
- "id": "51b587e7-5877-4a69-8ccf-cd91977ad151",
- "available": true,
- "starts_at": "2026-07-09T10:30:00.000-07:00",
- "formatted_slot_name": "10:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "10:30 AM"
}
}, - {
- "id": "a6ba0a07-796a-4c23-8731-e0993f3252bb",
- "type": "availability_slot",
- "attributes": {
- "id": "a6ba0a07-796a-4c23-8731-e0993f3252bb",
- "available": true,
- "starts_at": "2026-07-09T11:00:00.000-07:00",
- "formatted_slot_name": "11:00 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "11:00 AM"
}
}, - {
- "id": "57f74797-58b0-4038-a504-623c679ed2d4",
- "type": "availability_slot",
- "attributes": {
- "id": "57f74797-58b0-4038-a504-623c679ed2d4",
- "available": true,
- "starts_at": "2026-07-09T11:30:00.000-07:00",
- "formatted_slot_name": "11:30 AM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "11:30 AM"
}
}, - {
- "id": "8c1edb4a-de86-45d8-a832-ef577b2b56a7",
- "type": "availability_slot",
- "attributes": {
- "id": "8c1edb4a-de86-45d8-a832-ef577b2b56a7",
- "available": true,
- "starts_at": "2026-07-09T12:00:00.000-07:00",
- "formatted_slot_name": "12:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "12:00 PM"
}
}, - {
- "id": "5d748309-6022-42cd-bdb9-4d7cfe52ba59",
- "type": "availability_slot",
- "attributes": {
- "id": "5d748309-6022-42cd-bdb9-4d7cfe52ba59",
- "available": true,
- "starts_at": "2026-07-09T12:30:00.000-07:00",
- "formatted_slot_name": "12:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "12:30 PM"
}
}, - {
- "id": "790fc2a0-6ffb-4af1-bb54-51946dc176b6",
- "type": "availability_slot",
- "attributes": {
- "id": "790fc2a0-6ffb-4af1-bb54-51946dc176b6",
- "available": true,
- "starts_at": "2026-07-09T13:00:00.000-07:00",
- "formatted_slot_name": "1:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "1:00 PM"
}
}, - {
- "id": "ac79df1a-029e-4464-94ab-63f61cfda9ee",
- "type": "availability_slot",
- "attributes": {
- "id": "ac79df1a-029e-4464-94ab-63f61cfda9ee",
- "available": true,
- "starts_at": "2026-07-09T13:30:00.000-07:00",
- "formatted_slot_name": "1:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "1:30 PM"
}
}, - {
- "id": "3fb1f945-d38d-4d80-9606-6f66d280c0eb",
- "type": "availability_slot",
- "attributes": {
- "id": "3fb1f945-d38d-4d80-9606-6f66d280c0eb",
- "available": true,
- "starts_at": "2026-07-09T14:00:00.000-07:00",
- "formatted_slot_name": "2:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "2:00 PM"
}
}, - {
- "id": "9638d66a-fb7d-4fa8-8544-96db1e636baf",
- "type": "availability_slot",
- "attributes": {
- "id": "9638d66a-fb7d-4fa8-8544-96db1e636baf",
- "available": true,
- "starts_at": "2026-07-09T14:30:00.000-07:00",
- "formatted_slot_name": "2:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "2:30 PM"
}
}, - {
- "id": "1c0108e6-2f38-4fd4-b38f-3a429720fa49",
- "type": "availability_slot",
- "attributes": {
- "id": "1c0108e6-2f38-4fd4-b38f-3a429720fa49",
- "available": true,
- "starts_at": "2026-07-09T15:00:00.000-07:00",
- "formatted_slot_name": "3:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "3:00 PM"
}
}, - {
- "id": "bbb23c4b-a931-45e0-a821-37d26c7d0ee7",
- "type": "availability_slot",
- "attributes": {
- "id": "bbb23c4b-a931-45e0-a821-37d26c7d0ee7",
- "available": true,
- "starts_at": "2026-07-09T15:30:00.000-07:00",
- "formatted_slot_name": "3:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "3:30 PM"
}
}, - {
- "id": "d646a864-2efd-469b-b3d2-76d7c4e24a1c",
- "type": "availability_slot",
- "attributes": {
- "id": "d646a864-2efd-469b-b3d2-76d7c4e24a1c",
- "available": true,
- "starts_at": "2026-07-09T16:00:00.000-07:00",
- "formatted_slot_name": "4:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "4:00 PM"
}
}, - {
- "id": "13373452-7a61-4ed9-9eaf-d0a4daf5a300",
- "type": "availability_slot",
- "attributes": {
- "id": "13373452-7a61-4ed9-9eaf-d0a4daf5a300",
- "available": true,
- "starts_at": "2026-07-09T16:30:00.000-07:00",
- "formatted_slot_name": "4:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "4:30 PM"
}
}, - {
- "id": "5d46c588-0372-4b3a-9083-371e2cd34fea",
- "type": "availability_slot",
- "attributes": {
- "id": "5d46c588-0372-4b3a-9083-371e2cd34fea",
- "available": true,
- "starts_at": "2026-07-09T17:00:00.000-07:00",
- "formatted_slot_name": "5:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "5:00 PM"
}
}, - {
- "id": "dbde2319-7267-45e9-8ad8-93c841fa504f",
- "type": "availability_slot",
- "attributes": {
- "id": "dbde2319-7267-45e9-8ad8-93c841fa504f",
- "available": true,
- "starts_at": "2026-07-09T17:30:00.000-07:00",
- "formatted_slot_name": "5:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "5:30 PM"
}
}, - {
- "id": "8daa06de-f2cc-441d-ba45-98f56a3456eb",
- "type": "availability_slot",
- "attributes": {
- "id": "8daa06de-f2cc-441d-ba45-98f56a3456eb",
- "available": true,
- "starts_at": "2026-07-09T18:00:00.000-07:00",
- "formatted_slot_name": "6:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "6:00 PM"
}
}, - {
- "id": "e7700510-1482-497a-bdc9-22e6fb343dae",
- "type": "availability_slot",
- "attributes": {
- "id": "e7700510-1482-497a-bdc9-22e6fb343dae",
- "available": true,
- "starts_at": "2026-07-09T18:30:00.000-07:00",
- "formatted_slot_name": "6:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "6:30 PM"
}
}, - {
- "id": "f6750b4a-f3d6-4ff9-938c-e0ea83b9807b",
- "type": "availability_slot",
- "attributes": {
- "id": "f6750b4a-f3d6-4ff9-938c-e0ea83b9807b",
- "available": true,
- "starts_at": "2026-07-09T19:00:00.000-07:00",
- "formatted_slot_name": "7:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "7:00 PM"
}
}, - {
- "id": "3db855b0-f507-4f57-a702-07015134b254",
- "type": "availability_slot",
- "attributes": {
- "id": "3db855b0-f507-4f57-a702-07015134b254",
- "available": true,
- "starts_at": "2026-07-09T19:30:00.000-07:00",
- "formatted_slot_name": "7:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "7:30 PM"
}
}, - {
- "id": "e935b648-8906-4a44-82af-8733ecc78a6f",
- "type": "availability_slot",
- "attributes": {
- "id": "e935b648-8906-4a44-82af-8733ecc78a6f",
- "available": true,
- "starts_at": "2026-07-09T20:00:00.000-07:00",
- "formatted_slot_name": "8:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "8:00 PM"
}
}, - {
- "id": "a37cf83d-8e6d-4c93-b98d-c5bd8647efbf",
- "type": "availability_slot",
- "attributes": {
- "id": "a37cf83d-8e6d-4c93-b98d-c5bd8647efbf",
- "available": true,
- "starts_at": "2026-07-09T20:30:00.000-07:00",
- "formatted_slot_name": "8:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "8:30 PM"
}
}, - {
- "id": "fa1c3af7-6e42-4998-887a-d87639afa4b2",
- "type": "availability_slot",
- "attributes": {
- "id": "fa1c3af7-6e42-4998-887a-d87639afa4b2",
- "available": true,
- "starts_at": "2026-07-09T21:00:00.000-07:00",
- "formatted_slot_name": "9:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "9:00 PM"
}
}, - {
- "id": "2ac1b30b-3b56-4396-a3d8-06a509a26fc7",
- "type": "availability_slot",
- "attributes": {
- "id": "2ac1b30b-3b56-4396-a3d8-06a509a26fc7",
- "available": true,
- "starts_at": "2026-07-09T21:30:00.000-07:00",
- "formatted_slot_name": "9:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "9:30 PM"
}
}, - {
- "id": "b96e163d-9904-4ccf-b333-7c8adbaac3cb",
- "type": "availability_slot",
- "attributes": {
- "id": "b96e163d-9904-4ccf-b333-7c8adbaac3cb",
- "available": true,
- "starts_at": "2026-07-09T22:00:00.000-07:00",
- "formatted_slot_name": "10:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "10:00 PM"
}
}, - {
- "id": "7eb11bd5-c9b3-4493-b152-8719ccf4ac2c",
- "type": "availability_slot",
- "attributes": {
- "id": "7eb11bd5-c9b3-4493-b152-8719ccf4ac2c",
- "available": true,
- "starts_at": "2026-07-09T22:30:00.000-07:00",
- "formatted_slot_name": "10:30 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "10:30 PM"
}
}, - {
- "id": "6ec41eed-4089-4708-bf95-eee2d457d2de",
- "type": "availability_slot",
- "attributes": {
- "id": "6ec41eed-4089-4708-bf95-eee2d457d2de",
- "available": true,
- "starts_at": "2026-07-09T23:00:00.000-07:00",
- "formatted_slot_name": "11:00 PM",
- "length_in_minutes": 1800,
- "localized_date": "07-09-2026",
- "localized_time": "11:00 PM"
}
}
]
}Services, package groups, and packages define what a business offers. Services (event categories) are the top-level grouping (e.g., "DJ Services", "Photo Booth"). Each service contains package groups, which in turn contain individual packages (event types) with pricing, duration, and availability settings.
Returns all active services (event categories) for the business, ordered by position.
Services are the top-level grouping for your offerings (e.g., "DJ Services", "Photo Booth", "Lighting"). Each service contains one or more package groups, which in turn contain individual packages (event types).
Required permission: offerings_read
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "33",
- "type": "event_category",
- "attributes": {
- "id": 33,
- "name": "DJ Services",
- "position": 1,
- "primary_image": {
- "panel_variant": null
}
}, - "relationships": {
- "package_groups": {
- "data": [ ]
}
}
}, - {
- "id": "34",
- "type": "event_category",
- "attributes": {
- "id": 34,
- "name": "Photo Booth",
- "position": 2,
- "primary_image": {
- "panel_variant": null
}
}, - "relationships": {
- "package_groups": {
- "data": [ ]
}
}
}
]
}Returns the details of a single service (event category), including its name, position, and primary image.
Use the include query parameter to sideload related resources (comma-separated). Available: package_groups.
Required permission: offerings_read
| id required | integer The unique ID of the service |
| Api-Key required | string Your Integration Key |
{- "data": {
- "id": "35",
- "type": "event_category",
- "attributes": {
- "id": 35,
- "name": "DJ Services",
- "position": 1,
- "primary_image": {
- "panel_variant": null
}
}, - "relationships": {
- "package_groups": {
- "data": [ ]
}
}
}
}Returns all packages (event types) for the business. Packages define the services offered, including pricing, duration, availability windows, and booking configuration.
Results can be filtered by visibility (e.g., public-only packages shown on the booking page vs. all packages including private ones).
Use the include query parameter to sideload related resources (comma-separated). Available: package_group, package_unit_ranges, event_type_extra_categories.
Required permission: offerings_read
| visibility | string Filter by visibility (e.g., 'public_only') |
| Api-Key required | string Your Integration Key |
{- "data": [
- {
- "id": "29",
- "type": "event_type",
- "attributes": {
- "id": 29,
- "name": "4-Hour DJ Package",
- "description_html": null,
- "advertised_rate": "$100 includes 5 hours",
- "base_rate_cents": 10000,
- "position": 1,
- "hourly": true,
- "package_group_id": 30,
- "default_length": 300,
- "min_length": 60,
- "max_length": null,
- "step": 60,
- "default_length_in_minutes": 300,
- "min_length_in_minutes": 60,
- "max_length_in_minutes": null,
- "min_length_in_days": 1,
- "max_length_in_days": 1,
- "default_length_in_days": 1,
- "date_mode": "date_time",
- "calendar_mode": "minimal",
- "deposit_method": "percent",
- "deposit_multiplier_percent": 25,
- "enable_customer_can_book_extra_hours": true,
- "enable_customer_can_book_extra_days": false,
- "deposit_amount": "0.00",
- "deposit_amount_cents": 0,
- "deposit_amount_currency": "USD",
- "deposit_amount_formatted": "$0",
- "base_rate": "100.00",
- "base_rate_currency": "USD",
- "base_rate_formatted": "$100",
- "price_per_extra_hour": "50.00",
- "price_per_extra_hour_cents": 5000,
- "price_per_extra_hour_currency": "USD",
- "price_per_extra_hour_formatted": "$50",
- "price_per_extra_day": "0.00",
- "price_per_extra_day_cents": 0,
- "price_per_extra_day_currency": "USD",
- "price_per_extra_day_formatted": "$0",
- "taxable": true,
- "step_in_minutes": 60,
- "slot_interval_minutes": 30,
- "available_every_day_of_the_week": "yes",
- "available_starts_at_time": null,
- "available_ends_at_time": null,
- "available_sunday": "yes",
- "available_sunday_starts_at_time": null,
- "available_sunday_ends_at_time": null,
- "available_monday": "yes",
- "available_monday_starts_at_time": null,
- "available_monday_ends_at_time": null,
- "available_tuesday": "yes",
- "available_tuesday_starts_at_time": null,
- "available_tuesday_ends_at_time": null,
- "available_wednesday": "yes",
- "available_wednesday_starts_at_time": null,
- "available_wednesday_ends_at_time": null,
- "available_thursday": "yes",
- "available_thursday_starts_at_time": null,
- "available_thursday_ends_at_time": null,
- "available_friday": "yes",
- "available_friday_starts_at_time": null,
- "available_friday_ends_at_time": null,
- "available_saturday": "yes",
- "available_saturday_starts_at_time": null,
- "available_saturday_ends_at_time": null,
- "enable_customer_can_book_per_unit": false,
- "unit_name": "unit",
- "enable_customer_can_book_per_unit_range": false,
- "primary_image": {
- "large_variant": "/assets/prize-dddddd-b0dab4555d253a9daf0e6b30d4ad5572dd37fbfad501fb8eec6a1d53eb7629ad.png"
}, - "has_backdrops": false,
- "unit_title": "Unit",
- "units_title": "Units",
- "units_how_many": "How many units would you like to book?",
- "location_booking_type": "yes"
}, - "relationships": {
- "package_unit_ranges": {
- "data": [ ]
}, - "event_type_extra_categories": {
- "data": [ ]
}, - "package_group": {
- "data": {
- "id": "30",
- "type": "package_group"
}
}
}
}
]
}Returns the full details of a single package (event type), including pricing, duration settings, availability windows, deposit configuration, and booking options.
Use the include query parameter to sideload related resources (comma-separated). Available: package_group, package_unit_ranges, event_type_extra_categories.
Required permission: offerings_read
| id required | integer The unique ID of the package |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "30",
- "type": "event_type",
- "attributes": {
- "id": 30,
- "name": "4-Hour DJ Package",
- "description_html": null,
- "advertised_rate": "$100 includes 5 hours",
- "base_rate_cents": 10000,
- "position": 1,
- "hourly": true,
- "package_group_id": 31,
- "default_length": 300,
- "min_length": 60,
- "max_length": null,
- "step": 60,
- "default_length_in_minutes": 300,
- "min_length_in_minutes": 60,
- "max_length_in_minutes": null,
- "min_length_in_days": 1,
- "max_length_in_days": 1,
- "default_length_in_days": 1,
- "date_mode": "date_time",
- "calendar_mode": "minimal",
- "deposit_method": "percent",
- "deposit_multiplier_percent": 25,
- "enable_customer_can_book_extra_hours": true,
- "enable_customer_can_book_extra_days": false,
- "deposit_amount": "0.00",
- "deposit_amount_cents": 0,
- "deposit_amount_currency": "USD",
- "deposit_amount_formatted": "$0",
- "base_rate": "100.00",
- "base_rate_currency": "USD",
- "base_rate_formatted": "$100",
- "price_per_extra_hour": "50.00",
- "price_per_extra_hour_cents": 5000,
- "price_per_extra_hour_currency": "USD",
- "price_per_extra_hour_formatted": "$50",
- "price_per_extra_day": "0.00",
- "price_per_extra_day_cents": 0,
- "price_per_extra_day_currency": "USD",
- "price_per_extra_day_formatted": "$0",
- "taxable": true,
- "step_in_minutes": 60,
- "slot_interval_minutes": 30,
- "available_every_day_of_the_week": "yes",
- "available_starts_at_time": null,
- "available_ends_at_time": null,
- "available_sunday": "yes",
- "available_sunday_starts_at_time": null,
- "available_sunday_ends_at_time": null,
- "available_monday": "yes",
- "available_monday_starts_at_time": null,
- "available_monday_ends_at_time": null,
- "available_tuesday": "yes",
- "available_tuesday_starts_at_time": null,
- "available_tuesday_ends_at_time": null,
- "available_wednesday": "yes",
- "available_wednesday_starts_at_time": null,
- "available_wednesday_ends_at_time": null,
- "available_thursday": "yes",
- "available_thursday_starts_at_time": null,
- "available_thursday_ends_at_time": null,
- "available_friday": "yes",
- "available_friday_starts_at_time": null,
- "available_friday_ends_at_time": null,
- "available_saturday": "yes",
- "available_saturday_starts_at_time": null,
- "available_saturday_ends_at_time": null,
- "enable_customer_can_book_per_unit": false,
- "unit_name": "unit",
- "enable_customer_can_book_per_unit_range": false,
- "primary_image": {
- "large_variant": "/assets/prize-dddddd-b0dab4555d253a9daf0e6b30d4ad5572dd37fbfad501fb8eec6a1d53eb7629ad.png"
}, - "has_backdrops": false,
- "unit_title": "Unit",
- "units_title": "Units",
- "units_how_many": "How many units would you like to book?",
- "location_booking_type": "yes"
}, - "relationships": {
- "package_unit_ranges": {
- "data": [ ]
}, - "event_type_extra_categories": {
- "data": [ ]
}, - "package_group": {
- "data": {
- "id": "31",
- "type": "package_group"
}
}
}
}
}Returns all publicly visible package groups for the business.
Package groups organize packages (event types) within a service (event category). For example, a "DJ Services" service might have package groups like "Wedding Packages" and "Corporate Packages".
Use the include query parameter to sideload related resources (comma-separated). Available: event_types, event_category.
Required permission: offerings_read
| Api-Key required | string Your Integration Key |
{- "data": [
- {
- "id": "33",
- "type": "package_group",
- "attributes": {
- "id": 33,
- "name": "Wedding Packages",
- "position": 1,
- "package_sort_preference": "price",
- "event_category_id": 39,
- "primary_image": {
- "panel_variant": null
}
}, - "relationships": {
- "event_category": {
- "data": {
- "id": "39",
- "type": "event_category"
}
}, - "event_types": {
- "data": [
- {
- "id": "32",
- "type": "event_type"
}
]
}
}
}
]
}Returns the details of a single package group, including its name, description, and associated service.
Use the include query parameter to sideload related resources (comma-separated). Available: event_types, event_category.
Required permission: offerings_read
| id required | integer The unique ID of the package group |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "34",
- "type": "package_group",
- "attributes": {
- "id": 34,
- "name": "Wedding Packages",
- "position": 1,
- "package_sort_preference": "price",
- "event_category_id": 40,
- "primary_image": {
- "panel_variant": null
}
}, - "relationships": {
- "event_category": {
- "data": {
- "id": "40",
- "type": "event_category"
}
}, - "event_types": {
- "data": [ ]
}
}
}
}Add-ons are optional upgrades or equipment that can be added to an event (e.g., extra speakers, uplighting, fog machine). Add-ons are organized into categories and support flat-rate, hourly, or daily pricing.
Returns all active add-on categories for the business, ordered by position.
Add-on categories organize add-ons into logical groups (e.g., "Lighting", "Equipment Upgrades"). Each category contains one or more add-ons.
Use the include query parameter to sideload related resources (comma-separated). Available: add_ons.
Required permission: offerings_read
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "10",
- "type": "add_on_category",
- "attributes": {
- "id": 10,
- "name": "Lighting",
- "position": 1
}, - "relationships": {
- "add_ons": {
- "data": [ ]
}
}
}, - {
- "id": "11",
- "type": "add_on_category",
- "attributes": {
- "id": 11,
- "name": "Equipment Upgrades",
- "position": 2
}, - "relationships": {
- "add_ons": {
- "data": [ ]
}
}
}
]
}Returns the details of a single add-on category, including its name and position.
Use the include query parameter to sideload related resources (comma-separated). Available: add_ons.
Required permission: offerings_read
| id required | integer The unique ID of the add-on category |
| Api-Key required | string Your Integration Key |
{- "data": {
- "id": "12",
- "type": "add_on_category",
- "attributes": {
- "id": 12,
- "name": "Lighting",
- "position": 1
}, - "relationships": {
- "add_ons": {
- "data": [ ]
}
}
}
}Returns all active add-ons for the business. Add-ons are optional upgrades or equipment that can be added to an event (e.g., extra speakers, uplighting, fog machine).
Results can be filtered by text search, widget visibility, category, and sort order.
Required permission: offerings_read
| text | string Search add-ons by name |
| only_widget_visible | boolean Only return add-ons visible on the booking widget |
| order | string Sort order for results |
| category_ids[] | Array of arrays Filter by add-on category IDs |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "7",
- "type": "add_on",
- "attributes": {
- "id": 7,
- "name": "Uplighting Package",
- "description": "Thousands of bubbles ready for that special moment",
- "position": 1,
- "price_method": "flat_rate",
- "third_party_video_id": null,
- "price": "10.00",
- "price_cents": 1000,
- "price_currency": "USD",
- "price_formatted": "$10",
- "hourly_price": "0.00",
- "hourly_price_cents": 0,
- "hourly_price_currency": "USD",
- "hourly_price_formatted": "$0",
- "daily_price": "0.00",
- "daily_price_cents": 0,
- "daily_price_currency": "USD",
- "daily_price_formatted": "$0",
- "primary_image": {
- "video_variant": "/assets/video_dimensions_no-addon-51d25c35216ac7f3ea621f74772120bbea123405e2fa3f25d97050af78f5804e.png",
- "url": null,
- "content_type": null
}, - "additional_images": [ ]
}, - "relationships": {
- "add_on_category": {
- "data": {
- "id": "13",
- "type": "add_on_category"
}
}
}
}
]
}Returns the full details of a single add-on, including its name, description, pricing (flat rate, hourly, or daily), position, and images.
Use the include query parameter to sideload related resources (comma-separated). Available: add_on_category.
Required permission: offerings_read
| id required | integer The unique ID of the add-on |
| Api-Key required | string Your Integration Key |
{- "data": {
- "id": "8",
- "type": "add_on",
- "attributes": {
- "id": 8,
- "name": "Uplighting Package",
- "description": "Thousands of bubbles ready for that special moment",
- "position": 1,
- "price_method": "flat_rate",
- "third_party_video_id": null,
- "price": "10.00",
- "price_cents": 1000,
- "price_currency": "USD",
- "price_formatted": "$10",
- "hourly_price": "0.00",
- "hourly_price_cents": 0,
- "hourly_price_currency": "USD",
- "hourly_price_formatted": "$0",
- "daily_price": "0.00",
- "daily_price_cents": 0,
- "daily_price_currency": "USD",
- "daily_price_formatted": "$0",
- "primary_image": {
- "video_variant": "/assets/video_dimensions_no-addon-51d25c35216ac7f3ea621f74772120bbea123405e2fa3f25d97050af78f5804e.png",
- "url": null,
- "content_type": null
}, - "additional_images": [ ]
}, - "relationships": {
- "add_on_category": {
- "data": {
- "id": "14",
- "type": "add_on_category"
}
}
}
}
}Photo booth backdrops available for events. Backdrops are organized into categories and include pricing, images, and optional video previews.
Returns all active backdrop categories for the business, ordered by position.
Backdrop categories organize photo booth backdrops into groups (e.g., "Sequin Walls", "Flower Walls", "Custom Prints"). Each category contains one or more backdrops.
Use the include query parameter to sideload related resources (comma-separated). Available: photobooth_backgrounds.
Required permission: offerings_read
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "10",
- "type": "backdrop_category",
- "attributes": {
- "id": 10,
- "name": "Sequin Walls",
- "sub_header": null,
- "position": 1,
- "sync_with_pb_backdrops": false,
- "recently_created": true
}, - "relationships": {
- "photobooth_backgrounds": {
- "data": [ ]
}
}
}, - {
- "id": "11",
- "type": "backdrop_category",
- "attributes": {
- "id": 11,
- "name": "Flower Walls",
- "sub_header": null,
- "position": 2,
- "sync_with_pb_backdrops": false,
- "recently_created": true
}, - "relationships": {
- "photobooth_backgrounds": {
- "data": [ ]
}
}
}
]
}Returns the details of a single backdrop category, including its name, position, and whether it syncs with Photo Booth backdrops.
Use the include query parameter to sideload related resources (comma-separated). Available: photobooth_backgrounds.
Required permission: offerings_read
| id required | integer The unique ID of the backdrop category |
| Api-Key required | string Your Integration Key |
{- "data": {
- "id": "12",
- "type": "backdrop_category",
- "attributes": {
- "id": 12,
- "name": "Sequin Walls",
- "sub_header": null,
- "position": 1,
- "sync_with_pb_backdrops": false,
- "recently_created": true
}, - "relationships": {
- "photobooth_backgrounds": {
- "data": [ ]
}
}
}
}Returns all photo booth backdrops for the business. Backdrops are the visual background options available for photo booth events.
Results can be filtered by text search, widget visibility, and sort order.
Required permission: offerings_read
| text | string Search backdrops by name |
| only_widget_visible | boolean Only return backdrops visible on the booking widget |
| order | string Sort order for results |
| Api-Key required | string Your Integration Key |
{- "data": [
- {
- "id": "7",
- "type": "photobooth_background",
- "attributes": {
- "id": 7,
- "name": "Gold Sequin Wall",
- "description": "Sample description",
- "position": 1,
- "backdrop_category_id": 13,
- "video_url": null,
- "third_party_video_id": null,
- "include_at_no_charge_with_certain_packages": false,
- "price": "100.00",
- "price_cents": 10000,
- "price_currency": "USD",
- "price_formatted": "$100",
- "taxable": true,
- "primary_image": {
- "video_variant": null,
- "content_type": "image/png",
}, - "additional_images": [ ],
- "archived": false
}, - "relationships": {
- "backdrop_category": {
- "data": {
- "id": "13",
- "type": "backdrop_category"
}
}
}
}
]
}Returns the full details of a single photo booth backdrop, including its name, description, pricing, images, and video information.
Use the include query parameter to sideload related resources (comma-separated). Available: backdrop_category.
Required permission: offerings_read
| id required | integer The unique ID of the backdrop |
| Api-Key required | string Your Integration Key |
{- "data": {
- "id": "8",
- "type": "photobooth_background",
- "attributes": {
- "id": 8,
- "name": "Gold Sequin Wall",
- "description": "Sample description",
- "position": 1,
- "backdrop_category_id": 14,
- "video_url": null,
- "third_party_video_id": null,
- "include_at_no_charge_with_certain_packages": false,
- "price": "100.00",
- "price_cents": 10000,
- "price_currency": "USD",
- "price_formatted": "$100",
- "taxable": true,
- "primary_image": {
- "video_variant": null,
- "content_type": "image/png",
}, - "additional_images": [ ],
- "archived": false
}, - "relationships": {
- "backdrop_category": {
- "data": {
- "id": "14",
- "type": "backdrop_category"
}
}
}
}
}Extras are additional items or services customers can select when booking (e.g., premium props, custom signage, themed decorations). Extras are organized into categories with customer visibility controls and support flat-rate, hourly, or daily pricing.
Returns all active extra categories for the business, ordered by position.
Extra categories organize extras into groups (e.g., "Props", "Signage", "Decorations"). Each category has a customer visibility setting that controls when it is shown to customers during the booking process.
Use the include query parameter to sideload related resources (comma-separated). Available: extras, extra_groups.
Required permission: offerings_read
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "18",
- "type": "extra_category",
- "attributes": {
- "id": 18,
- "name": "Props",
- "position": 1,
- "customer_visibility": "always_show"
}, - "relationships": {
- "franchise": {
- "data": {
- "id": "691",
- "type": "franchise"
}
}, - "extra_groups": {
- "data": [ ]
}, - "extras": {
- "data": [ ]
}
}
}, - {
- "id": "19",
- "type": "extra_category",
- "attributes": {
- "id": 19,
- "name": "Signage",
- "position": 2,
- "customer_visibility": "always_show"
}, - "relationships": {
- "franchise": {
- "data": {
- "id": "691",
- "type": "franchise"
}
}, - "extra_groups": {
- "data": [ ]
}, - "extras": {
- "data": [ ]
}
}
}
]
}Returns the details of a single extra category, including its name, position, and customer visibility setting.
Use the include query parameter to sideload related resources (comma-separated). Available: extras, extra_groups.
Required permission: offerings_read
| id required | integer The unique ID of the extra category |
| Api-Key required | string Your Integration Key |
{- "data": {
- "id": "20",
- "type": "extra_category",
- "attributes": {
- "id": 20,
- "name": "Props",
- "position": 1,
- "customer_visibility": "always_show"
}, - "relationships": {
- "franchise": {
- "data": {
- "id": "692",
- "type": "franchise"
}
}, - "extra_groups": {
- "data": [ ]
}, - "extras": {
- "data": [ ]
}
}
}
}Returns all active extras for the business. Extras are additional items or services that customers can select when booking (e.g., premium props, custom signage, themed decorations).
Results can be filtered by text search, widget visibility, category, and sort order.
Required permission: offerings_read
| text | string Search extras by name |
| only_widget_visible | boolean Only return extras visible on the booking widget |
| order | string Sort order for results |
| extra_category_id | integer Filter by a specific extra category ID |
| category_ids[] | Array of arrays Filter by extra category IDs |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "7",
- "type": "extra",
- "attributes": {
- "id": 7,
- "name": "Premium Props Package",
- "description": "A special extra item for your event",
- "position": 1,
- "price_method": "flat_rate",
- "include_at_no_charge_with_certain_packages": false,
- "price": "25.00",
- "price_cents": 2500,
- "price_currency": "USD",
- "price_formatted": "$25",
- "hourly_price": "0.00",
- "hourly_price_cents": 0,
- "hourly_price_currency": "USD",
- "hourly_price_formatted": "$0",
- "daily_price": "0.00",
- "daily_price_cents": 0,
- "daily_price_currency": "USD",
- "daily_price_formatted": "$0",
- "primary_image": {
- "video_variant": "/assets/video_dimensions_no-addon-51d25c35216ac7f3ea621f74772120bbea123405e2fa3f25d97050af78f5804e.png"
}
}, - "relationships": {
- "extra_group": {
- "data": {
- "id": "11",
- "type": "extra_group"
}
}, - "extra_category": {
- "data": {
- "id": "21",
- "type": "extra_category"
}
}
}
}
]
}Returns the full details of a single extra, including its name, description, pricing (flat rate, hourly, or daily), position, and images.
Use the include query parameter to sideload related resources (comma-separated). Available: extra_group, extra_category.
Required permission: offerings_read
| id required | integer The unique ID of the extra |
| Api-Key required | string Your Integration Key |
{- "data": {
- "id": "8",
- "type": "extra",
- "attributes": {
- "id": 8,
- "name": "Premium Props Package",
- "description": "A special extra item for your event",
- "position": 1,
- "price_method": "flat_rate",
- "include_at_no_charge_with_certain_packages": false,
- "price": "25.00",
- "price_cents": 2500,
- "price_currency": "USD",
- "price_formatted": "$25",
- "hourly_price": "0.00",
- "hourly_price_cents": 0,
- "hourly_price_currency": "USD",
- "hourly_price_formatted": "$0",
- "daily_price": "0.00",
- "daily_price_cents": 0,
- "daily_price_currency": "USD",
- "daily_price_formatted": "$0",
- "primary_image": {
- "video_variant": "/assets/video_dimensions_no-addon-51d25c35216ac7f3ea621f74772120bbea123405e2fa3f25d97050af78f5804e.png"
}
}, - "relationships": {
- "extra_group": {
- "data": {
- "id": "12",
- "type": "extra_group"
}
}, - "extra_category": {
- "data": {
- "id": "22",
- "type": "extra_category"
}
}
}
}
}Expenses track business costs such as equipment purchases, venue fees, staff payments, and other expenditures. Each expense has a payee (custom text or a staff member reference), amount, payment date, reference number, and optional category and event associations.
Expense categories provide a hierarchical grouping for expenses, allowing businesses to organize and report on spending by type.
Returns all expense categories for the business. Categories can be nested — each category may have a parent category, forming a hierarchy. The nested_name attribute shows the full path (e.g., "Equipment → Audio").
Required permission: expense_read
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "9",
- "type": "expense_category",
- "attributes": {
- "id": 9,
- "name": "Equipment",
- "nested_name": "Equipment"
}, - "relationships": {
- "parent_expense_category": {
- "data": null
}, - "expenses": {
- "data": [ ]
}
}
}, - {
- "id": "10",
- "type": "expense_category",
- "attributes": {
- "id": 10,
- "name": "Audio",
- "nested_name": "Equipment → Audio"
}, - "relationships": {
- "parent_expense_category": {
- "data": {
- "id": "9",
- "type": "expense_category"
}
}, - "expenses": {
- "data": [ ]
}
}
}
]
}Returns the details of a single expense category.
Required permission: expense_read
| id required | integer The unique ID of the expense category |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "11",
- "type": "expense_category",
- "attributes": {
- "id": 11,
- "name": "Equipment",
- "nested_name": "Equipment"
}, - "relationships": {
- "parent_expense_category": {
- "data": null
}, - "expenses": {
- "data": [ ]
}
}
}
}Returns a paginated list of expenses for the business. Results can be filtered by event, expense category, date range, or full-text search.
The response includes meta.total_count and meta.per_page for pagination.
Required permission: expense_read
| event_id | integer Filter expenses by event ID |
| expense_category_id | integer Filter expenses by category ID |
| payment_date_start | string Filter expenses on or after this date (YYYY-MM-DD) |
| payment_date_end | string Filter expenses on or before this date (YYYY-MM-DD) |
| query | string Full-text search across reference number, payee, and description |
| sort_by | string Sort order:
|
| page | integer Page number for pagination (default: 1) |
| per | integer Number of results per page (default: 50) |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok",
- "total_count": 1,
- "per_page": 50
}, - "data": [
- {
- "id": "6",
- "type": "expense",
- "attributes": {
- "id": 6,
- "payment_date": "2026-06-02",
- "amount": "100.00",
- "amount_cents": 10000,
- "amount_currency": "USD",
- "amount_formatted": "$100",
- "payee_type": "custom",
- "payee_value": "John Smith",
- "payee": "John Smith",
- "ref_no": "abc123",
- "description": "Hello abc123",
- "expense_category_name": "Equipment",
- "event_id": null,
- "event_title": null,
- "expense_category_id": 12,
- "attachments": [ ]
}, - "relationships": {
- "event": {
- "data": null
}, - "created_by": {
- "data": {
- "id": "366",
- "type": "user"
}
}, - "expense_category": {
- "data": {
- "id": "12",
- "type": "expense_category"
}
}, - "staff": {
- "data": null
}
}
}
]
}Create a new expense record for the business. Expenses track costs like equipment purchases, venue fees, staff payments, and other business expenditures.
The payee can be either a custom text value or a reference to a staff member. Set payee_type to "custom" and provide payee_value, or set payee_type to "staff" and provide staff_id.
Required permission: expense_create
| Api-Key required | string Your Integration Key |
| payee_type | string Enum: "custom" "staff" Payee type |
| payee_value | string Payee name (required when payee_type is "custom") |
| staff_id | integer Staff member ID (required when payee_type is "staff") |
| payment_date required | string Date of payment (YYYY-MM-DD) |
| payment_method | string Payment method (e.g., "Cash", "Check", "Credit Card") |
| amount required | number Expense amount |
| ref_no required | string Reference number |
| description | string Description of the expense |
| expense_category_id | integer Expense category ID |
| event_id | integer Associated event ID (optional) |
{- "payee_type": "custom",
- "payee_value": "string",
- "staff_id": 0,
- "payment_date": "string",
- "payment_method": "string",
- "amount": 0,
- "ref_no": "string",
- "description": "string",
- "expense_category_id": 0,
- "event_id": 0
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "7",
- "type": "expense",
- "attributes": {
- "id": 7,
- "payment_date": "2026-06-02",
- "amount": "250.00",
- "amount_cents": 25000,
- "amount_currency": "USD",
- "amount_formatted": "$250",
- "payee_type": "custom",
- "payee_value": "Best Buy",
- "payee": "Best Buy",
- "ref_no": "INV-2024-001",
- "description": "Speaker cables and adapters",
- "expense_category_name": "Equipment",
- "event_id": null,
- "event_title": null,
- "expense_category_id": 13,
- "attachments": [ ]
}, - "relationships": {
- "event": {
- "data": null
}, - "created_by": {
- "data": null
}, - "expense_category": {
- "data": {
- "id": "13",
- "type": "expense_category"
}
}, - "staff": {
- "data": null
}
}
}
}Returns the full details of a single expense record.
Required permission: expense_read
| id required | integer The unique ID of the expense |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "8",
- "type": "expense",
- "attributes": {
- "id": 8,
- "payment_date": "2026-06-02",
- "amount": "100.00",
- "amount_cents": 10000,
- "amount_currency": "USD",
- "amount_formatted": "$100",
- "payee_type": "custom",
- "payee_value": "John Smith",
- "payee": "John Smith",
- "ref_no": "abc123",
- "description": "Hello abc123",
- "expense_category_name": "Equipment",
- "event_id": null,
- "event_title": null,
- "expense_category_id": 14,
- "attachments": [ ]
}, - "relationships": {
- "event": {
- "data": null
}, - "created_by": {
- "data": {
- "id": "368",
- "type": "user"
}
}, - "expense_category": {
- "data": {
- "id": "14",
- "type": "expense_category"
}
}, - "staff": {
- "data": null
}
}
}
}Update an existing expense record.
Required permission: expense_write
| id required | integer The unique ID of the expense |
| Api-Key required | string Your Integration Key |
| payee_type | string Enum: "custom" "staff" Payee type |
| payee_value | string Payee name |
| staff_id | integer Staff member ID |
| payment_date | string Date of payment (YYYY-MM-DD) |
| payment_method | string Payment method |
| amount | number Expense amount |
| ref_no | string Reference number |
| description | string Description of the expense |
| expense_category_id | integer Expense category ID |
| event_id | integer Associated event ID |
{- "payee_type": "custom",
- "payee_value": "string",
- "staff_id": 0,
- "payment_date": "string",
- "payment_method": "string",
- "amount": 0,
- "ref_no": "string",
- "description": "string",
- "expense_category_id": 0,
- "event_id": 0
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "9",
- "type": "expense",
- "attributes": {
- "id": 9,
- "payment_date": "2026-06-02",
- "amount": "375.00",
- "amount_cents": 37500,
- "amount_currency": "USD",
- "amount_formatted": "$375",
- "payee_type": "custom",
- "payee_value": "John Smith",
- "payee": "John Smith",
- "ref_no": "abc123",
- "description": "Updated description",
- "expense_category_name": "Equipment",
- "event_id": null,
- "event_title": null,
- "expense_category_id": 15,
- "attachments": [ ]
}, - "relationships": {
- "event": {
- "data": null
}, - "created_by": {
- "data": {
- "id": "369",
- "type": "user"
}
}, - "expense_category": {
- "data": {
- "id": "15",
- "type": "expense_category"
}
}, - "staff": {
- "data": null
}
}
}
}Soft-deletes an expense record. The expense will no longer appear in listings but is retained in the database for record-keeping.
Required permission: expense_write
| id required | integer The unique ID of the expense |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}
}Checklists organize tasks and reminders for a business. The Checklists API covers three related resources:
Checklists are the containers. Each one is attached to a single record (the "checkable") that determines its scope:
Checklist items are the actual to-do entries inside a checklist. Each item has a title, optional notes, optional due date, optional assigned staff, and a checked/unchecked state. Items always belong to exactly one checklist and inherit that checklist's visibility and edit settings.
Checklist categories are reusable templates. Creating a checklist from a category seeds the new checklist with the category's name, view/edit flags, and starting set of items. Categories are managed in the Check Cherry admin UI; the API exposes a read-only list so integrations can show their users which template to start from.
Visibility is automatic based on the authenticated user's role: admins see every checklist; staff see their personal checklist plus event checklists they're assigned to or that allow staff view; customers see their event checklists where customer view is allowed. Per-checklist allow_staff_view, allow_customer_view, allow_staff_edit, and allow_customer_edit flags further control what staff and customers can see and modify, and which item-level actions they can perform — see and check go together, while editing, adding, and removing items require the edit flag.
Returns the checklist categories visible to the authenticated user. Categories are the templates new checklists can be seeded from — pass a category's id as checklist_category_id when creating a checklist to copy its items and view/edit flags onto the new checklist.
Admin users see every category; non-admin staff (and integration keys minted by them) only see categories with allow_staff_view enabled.
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": [
- {
- "id": "29",
- "type": "checklist_category",
- "attributes": {
- "id": 29,
- "name": "Day-of Setup"
}
}
]
}Returns a paginated list of checklist items visible to the authenticated user. Results can be scoped to a single checklist, filtered by status, assignment, or full-text search, and sorted by due date, event date, or recency.
Visibility is determined automatically based on the authenticated user's role: admins see every item; staff see items on their personal checklist, items assigned to them, and items on event or franchise checklists they have view access to; customers see items on their event checklists where customer view is allowed.
The response includes meta.total_count and meta.per_page for pagination.
| checklist_id | integer Filter to items on a single checklist |
| checkable_type | string Filter to items whose checklist is attached to this type:
|
| checkable_id | integer Filter to items whose checklist is attached to the record with this ID |
| filter | string Status filter |
| assigned_filter | string Assignment filter relative to the authenticated user |
| query | string Full-text search across item titles and notes |
| sort_by | string Sort order |
| show_proposals | boolean Include items on proposal-status event checklists (default: true) |
| only_show_items_in_global_list | boolean Only return items flagged to appear in the global task list |
| page | integer Page number for pagination (default: 1) |
| per | integer Number of results per page (default: 50) |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok",
- "total_count": 1,
- "per_page": 50
}, - "data": [
- {
- "id": "20",
- "type": "checklist_item",
- "attributes": {
- "id": 20,
- "title": "Confirm venue arrival time",
- "notes": null,
- "checked_at": null,
- "deleted": false,
- "position": 0,
- "due_on": null,
- "taskable_type": null,
- "taskable_id": null,
- "taskable_description": null,
- "checklist_id": 28,
- "user_ids": [ ],
- "updated_at": "2026-06-09T13:55:59.908-07:00",
- "created_at": "2026-06-09T13:55:59.908-07:00",
- "checkable_description": "Sarah and John's Wedding on Jun 16 / Sample Checklist",
- "checked": false,
- "editable": true,
- "checkable_id": 78,
- "checkable_type": "Event",
- "checkable_status": "confirmed",
- "checklist_name": "Sample Checklist",
- "user_full_names": [ ]
}, - "relationships": {
- "checklist": {
- "data": {
- "id": "28",
- "type": "checklist"
}
}, - "users": {
- "data": [ ]
}
}
}
]
}Adds a new item to a checklist. When checklist_id is supplied, the item is added to that checklist. When it's omitted, the item is added to the franchise-wide "Shared Checklist" (created on first use).
Required permission: assigned_event_write (when the authenticated user is assigned to the target checklist's event) or unassigned_event_write (otherwise). Staff users without admin role also need the per-checklist allow_staff_edit flag; customers need allow_customer_edit. Items on user-checklists (personal task lists) can only be created by their owner.
| Api-Key required | string Your Integration Key |
| title required | string Item title |
| notes | string Free-form notes |
| due_on | string Due date (YYYY-MM-DD) |
| checklist_id | integer Optional ID of the checklist to add the item to. Omit to use the franchise-wide Shared Checklist. |
| checked | boolean Whether the new item should start in the checked state |
| user_ids | Array of integers Staff member IDs to assign to this item |
{- "title": "string",
- "notes": "string",
- "due_on": "string",
- "checklist_id": 0,
- "checked": true,
- "user_ids": [
- 0
]
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "21",
- "type": "checklist_item",
- "attributes": {
- "id": 21,
- "title": "Confirm venue arrival time",
- "notes": null,
- "checked_at": null,
- "deleted": false,
- "position": 0,
- "due_on": null,
- "taskable_type": null,
- "taskable_id": null,
- "taskable_description": null,
- "checklist_id": 29,
- "user_ids": [ ],
- "updated_at": "2026-06-09T13:56:00.227-07:00",
- "created_at": "2026-06-09T13:56:00.227-07:00",
- "checkable_description": "Sarah and John's Wedding on Jun 16 / Sample Checklist",
- "checked": false,
- "editable": true,
- "checkable_id": 79,
- "checkable_type": "Event",
- "checkable_status": "confirmed",
- "checklist_name": "Sample Checklist",
- "user_full_names": [ ]
}, - "relationships": {
- "checklist": {
- "data": {
- "id": "29",
- "type": "checklist"
}
}, - "users": {
- "data": [ ]
}
}
}
}Returns the full details of a single checklist item, including its title, notes, due date, checked state, assigned staff, and the type/status of the record its checklist is attached to.
Visibility is inherited from the parent checklist — see the Checklists tag overview for details.
Required permission: assigned_event_read (when the authenticated user is assigned to the item's checklist's event) or unassigned_event_read (otherwise). Items on user-checklists (personal task lists) are only visible to their owner.
| id required | integer The unique ID of the checklist item |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "22",
- "type": "checklist_item",
- "attributes": {
- "id": 22,
- "title": "Confirm venue arrival time",
- "notes": null,
- "checked_at": null,
- "deleted": false,
- "position": 0,
- "due_on": null,
- "taskable_type": null,
- "taskable_id": null,
- "taskable_description": null,
- "checklist_id": 30,
- "user_ids": [ ],
- "updated_at": "2026-06-09T13:56:00.335-07:00",
- "created_at": "2026-06-09T13:56:00.335-07:00",
- "checkable_description": "Sarah and John's Wedding on Jun 16 / Sample Checklist",
- "checked": false,
- "editable": true,
- "checkable_id": 80,
- "checkable_type": "Event",
- "checkable_status": "confirmed",
- "checklist_name": "Sample Checklist",
- "user_full_names": [ ]
}, - "relationships": {
- "checklist": {
- "data": {
- "id": "30",
- "type": "checklist"
}
}, - "users": {
- "data": [ ]
}
}
}
}Updates an existing checklist item. Only fields included in the request body are modified — omitted fields remain unchanged. Use this to change the title, notes, due date, checked state, or assigned staff. Toggling checked is also exposed as dedicated /mark_as_checked and /mark_as_unchecked endpoints.
Required permission: assigned_event_write (when the authenticated user is assigned to the item's checklist's event) or unassigned_event_write (otherwise). Staff users without admin role also need the per-checklist allow_staff_edit flag; customers need allow_customer_edit. Items on user-checklists (personal task lists) can only be edited by their owner.
| id required | integer The unique ID of the checklist item |
| Api-Key required | string Your Integration Key |
| title | string Item title |
| notes | string Free-form notes |
| due_on | string Due date (YYYY-MM-DD) |
| checked | boolean Whether the item is checked |
| user_ids | Array of integers Staff member IDs assigned to this item |
{- "title": "string",
- "notes": "string",
- "due_on": "string",
- "checked": true,
- "user_ids": [
- 0
]
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "23",
- "type": "checklist_item",
- "attributes": {
- "id": 23,
- "title": "Confirm venue arrival time and load-in door",
- "notes": "Loading dock is on 4th St",
- "checked_at": null,
- "deleted": false,
- "position": 0,
- "due_on": null,
- "taskable_type": null,
- "taskable_id": null,
- "taskable_description": null,
- "checklist_id": 31,
- "user_ids": [ ],
- "updated_at": "2026-06-09T13:56:00.532-07:00",
- "created_at": "2026-06-09T13:56:00.501-07:00",
- "checkable_description": "Sarah and John's Wedding on Jun 16 / Sample Checklist",
- "checked": false,
- "editable": true,
- "checkable_id": 81,
- "checkable_type": "Event",
- "checkable_status": "confirmed",
- "checklist_name": "Sample Checklist",
- "user_full_names": [ ]
}, - "relationships": {
- "checklist": {
- "data": {
- "id": "31",
- "type": "checklist"
}
}, - "users": {
- "data": [ ]
}
}
}
}Soft-deletes a checklist item. The item is hidden from listings but retained in the database for record-keeping.
Required permission: assigned_event_write (when the authenticated user is assigned to the item's checklist's event) or unassigned_event_write (otherwise). Staff users without admin role also need the per-checklist allow_staff_edit flag; customers need allow_customer_edit. Items on user-checklists (personal task lists) can only be deleted by their owner.
| id required | integer The unique ID of the checklist item |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}
}Reorders the checklist item within its checklist by inserting it at the given zero-indexed position. Other items shift to make room.
Required permission: assigned_event_write (when the authenticated user is assigned to the item's checklist's event) or unassigned_event_write (otherwise). Reordering is treated as editing the list — staff users without admin role also need the per-checklist allow_staff_edit flag, and customers need allow_customer_edit. Items on user-checklists can only be reordered by their owner.
| id required | integer The unique ID of the checklist item |
| Api-Key required | string Your Integration Key |
| position required | integer Zero-indexed position to move the item to |
{- "position": 0
}{- "meta": {
- "status": "ok"
}
}Marks a checklist item as checked. This is the same as updating the item with checked: true, but exposed as a dedicated endpoint for convenience.
Checking and unchecking items is treated as part of viewing a checklist — staff and customers only need the per-checklist allow_staff_view or allow_customer_view flag plus the corresponding event-read permission.
Required permission: assigned_event_read (when the authenticated user is assigned to the item's checklist's event) or unassigned_event_read (otherwise). Items on user-checklists can only be checked by their owner.
| id required | integer The unique ID of the checklist item |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "26",
- "type": "checklist_item",
- "attributes": {
- "id": 26,
- "title": "Confirm venue arrival time",
- "notes": null,
- "checked_at": "2026-06-09T13:56:00.946-07:00",
- "deleted": false,
- "position": 0,
- "due_on": null,
- "taskable_type": null,
- "taskable_id": null,
- "taskable_description": null,
- "checklist_id": 34,
- "user_ids": [ ],
- "updated_at": "2026-06-09T13:56:00.946-07:00",
- "created_at": "2026-06-09T13:56:00.914-07:00",
- "checkable_description": "Sarah and John's Wedding on Jun 16 / Sample Checklist",
- "checked": true,
- "editable": true,
- "checkable_id": 84,
- "checkable_type": "Event",
- "checkable_status": "confirmed",
- "checklist_name": "Sample Checklist",
- "user_full_names": [ ]
}, - "relationships": {
- "checklist": {
- "data": {
- "id": "34",
- "type": "checklist"
}
}, - "users": {
- "data": [ ]
}
}
}
}Marks a checklist item as unchecked. This is the same as updating the item with checked: false, but exposed as a dedicated endpoint for convenience.
Checking and unchecking items is treated as part of viewing a checklist — staff and customers only need the per-checklist allow_staff_view or allow_customer_view flag plus the corresponding event-read permission.
Required permission: assigned_event_read (when the authenticated user is assigned to the item's checklist's event) or unassigned_event_read (otherwise). Items on user-checklists can only be unchecked by their owner.
| id required | integer The unique ID of the checklist item |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "27",
- "type": "checklist_item",
- "attributes": {
- "id": 27,
- "title": "Confirm venue arrival time",
- "notes": null,
- "checked_at": null,
- "deleted": false,
- "position": 0,
- "due_on": null,
- "taskable_type": null,
- "taskable_id": null,
- "taskable_description": null,
- "checklist_id": 35,
- "user_ids": [ ],
- "updated_at": "2026-06-09T13:56:01.084-07:00",
- "created_at": "2026-06-09T13:56:01.052-07:00",
- "checkable_description": "Sarah and John's Wedding on Jun 16 / Sample Checklist",
- "checked": false,
- "editable": true,
- "checkable_id": 85,
- "checkable_type": "Event",
- "checkable_status": "confirmed",
- "checklist_name": "Sample Checklist",
- "user_full_names": [ ]
}, - "relationships": {
- "checklist": {
- "data": {
- "id": "35",
- "type": "checklist"
}
}, - "users": {
- "data": [ ]
}
}
}
}Returns the checklists visible to the authenticated user. Pass an event_id to limit results to checklists attached to a specific event (booking or proposal); omit it to get every checklist the user can see across the franchise (event checklists, the user's personal staff checklist, and any franchise-level checklists).
Visibility is determined automatically based on the authenticated user's role: admins see every checklist; staff see their personal checklist plus event checklists they're assigned to or that allow staff view; customers see their event checklists where customer view is allowed.
Each checklist includes a complete_count (number of checked items) and count (total items) to support progress displays without a separate request.
| event_id | integer Filter checklists by event ID |
| page | integer Page number (default: 1) |
| per | integer Results per page (default: 50) |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok",
- "total_count": 1,
- "per_page": 50
}, - "data": [
- {
- "id": "36",
- "type": "checklist",
- "attributes": {
- "id": 36,
- "name": "Day-of Setup",
- "checkable_type": "Event",
- "checkable_id": 86,
- "allow_edit": true,
- "complete_count": 0,
- "count": 0
}
}
]
}Creates a new checklist on an event. When a checklist_category_id is supplied, the new checklist's items, view/edit flags, and name are seeded from the chosen category. When it's omitted, an empty checklist named "Checklist" is created with no items.
Required permission: assigned_event_write (when the authenticated user is assigned to the event) or unassigned_event_write (otherwise). If a checklist_category_id is supplied, the category must also be accessible to the user — admins can use any category; non-admin staff can only use categories with allow_staff_view enabled.
| Api-Key required | string Your Integration Key |
| event_id required | integer ID of the event the checklist should be attached to |
| checklist_category_id | integer Optional checklist category to seed the new checklist from |
{- "event_id": 0,
- "checklist_category_id": 0
}{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "37",
- "type": "checklist",
- "attributes": {
- "id": 37,
- "name": "Day-of Setup",
- "checkable_type": "Event",
- "checkable_id": 87,
- "allow_edit": true,
- "complete_count": 0,
- "count": 0
}
}
}Returns a single checklist along with its name, checkable_type/checkable_id (the record the checklist is attached to), allow_edit for the authenticated user, and progress counts (complete_count and count).
Visibility is determined automatically based on the authenticated user's role and the checklist's view flags — see the Checklists tag overview for details.
Required permission: assigned_event_read (when the authenticated user is assigned to the checklist's event) or unassigned_event_read (otherwise). User-checklists (personal task lists) are only visible to their owner.
| id required | integer The unique ID of the checklist |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "38",
- "type": "checklist",
- "attributes": {
- "id": 38,
- "name": "Day-of Setup",
- "checkable_type": "Event",
- "checkable_id": 88,
- "allow_edit": true,
- "complete_count": 0,
- "count": 0
}
}
}Permanently removes a checklist and all of its items. The deletion is logged on the attached event's change history when applicable.
Required permission: assigned_event_write (when the authenticated user is assigned to the checklist's event) or unassigned_event_write (otherwise). Staff users without admin role also need the per-checklist allow_staff_edit flag. Customers cannot delete checklists. User-checklists (personal task lists) cannot be deleted via the API — they are singletons that recreate themselves on next access.
| id required | integer The unique ID of the checklist |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}
}Resets the checklist back to its starting state. All existing items are deleted — any notes, due dates, or staff assignments on those items are lost. If the checklist was seeded from a checklist category, items are repopulated from the category template and the checklist's name plus view/edit flags are restored to the category defaults. If no category is associated, the result is an empty checklist. The reset is logged on the attached event's change history when applicable.
Required permission: assigned_event_write (when the authenticated user is assigned to the checklist's event) or unassigned_event_write (otherwise). Staff users without admin role also need the per-checklist allow_staff_edit flag. Customers cannot reset checklists. User-checklists (personal task lists) can only be reset by their owner.
| id required | integer The unique ID of the checklist |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}
}Payments represent financial transactions recorded against events — charges, tips, and refunds. Payments can be manual (cash, check, other) or processed through a payment gateway (Stripe, Square, PayPal). Each payment includes amount breakdowns, tax details, and processor information.
Use the Payments API to list payments across all events, look up individual payment records, and filter by event or date range.
Returns a paginated list of payments across all events for the business. Results can be filtered by event ID or date range.
Each payment includes amount breakdowns (charge, tip, tax, fees, net), processor details, and associated event information.
The response includes meta.total_count and meta.per_page for pagination.
Required permission: assigned_event_read_pricing or unassigned_event_read_pricing
| event_id | integer Filter payments by event ID |
| payment_date_start | string Filter payments on or after this date (YYYY-MM-DD) |
| payment_date_end | string Filter payments on or before this date (YYYY-MM-DD) |
| page | integer Page number for pagination (default: 1) |
| per | integer Number of results per page (default: 25) |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok",
- "total_count": 1,
- "per_page": 25
}, - "data": [
- {
- "id": "8",
- "type": "event_payment",
- "attributes": {
- "id": 8,
- "event_id": 95,
- "paid_at": "2026-06-09T13:56:03.116-07:00",
- "payment_method": "Other",
- "reference": "Check Number #123",
- "processor": null,
- "refund": false,
- "amount": "30.00",
- "amount_cents": 3000,
- "amount_currency": "USD",
- "amount_formatted": "$30",
- "tip_amount": "0.00",
- "tip_amount_cents": 0,
- "tip_amount_currency": "USD",
- "tip_amount_formatted": "$0",
- "total_amount": "0.00",
- "total_amount_cents": 0,
- "total_amount_currency": "USD",
- "total_amount_formatted": "$0",
- "paid_by": "Wade Lynch",
- "paid_at_formatted": "06-09-2026 1:56 PM",
- "event_starts_at": "2026-06-16T13:56:03.066-07:00",
- "invoice_number": null,
- "event_title": "Sarah and John's Wedding",
- "event_total": "0.00",
- "event_total_cents": 0,
- "event_total_currency": "USD",
- "event_total_formatted": "$0",
- "taxable_amount": "0.00",
- "taxable_amount_cents": 0,
- "taxable_amount_currency": "USD",
- "taxable_amount_formatted": "$0",
- "non_taxable_amount": "0.00",
- "non_taxable_amount_cents": 0,
- "non_taxable_amount_currency": "USD",
- "non_taxable_amount_formatted": "$0",
- "tax_rate": "0.0",
- "tax_collected": "0.00",
- "tax_collected_cents": 0,
- "tax_collected_currency": "USD",
- "tax_collected_formatted": "$0",
- "amount_collected_excluding_tax": "30.00",
- "amount_collected_excluding_tax_cents": 3000,
- "amount_collected_excluding_tax_currency": "USD",
- "amount_collected_excluding_tax_formatted": "$30",
- "processing_fees": null,
- "processing_fees_cents": null,
- "processing_fees_currency": null,
- "processing_fees_formatted": "$0",
- "net_amount": "30.00",
- "net_amount_cents": 3000,
- "net_amount_currency": "USD",
- "net_amount_formatted": "$30",
- "taxjar_city": null,
- "taxjar_county": null,
- "taxjar_state": null,
- "taxjar_country": null,
- "taxjar_postal_code": null,
- "taxjar_city_rate": null,
- "taxjar_county_rate": null,
- "taxjar_state_rate": null,
- "taxjar_country_rate": null,
- "taxjar_combined_district_rate": null,
- "taxjar_combined_rate": null,
- "brand_id": 756,
- "brand_name": "Hammes, Ruecker and Gutkowski 177",
- "check_cherry_payment_id": "18adb819-af1c-49af-aa93-5333ed76026d"
}
}
]
}Returns the full details of a single payment, including amount breakdowns, tax information, processor details, and associated event data.
Required permission: assigned_event_read_pricing or unassigned_event_read_pricing
| id required | integer The unique ID of the payment to retrieve |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "9",
- "type": "event_payment",
- "attributes": {
- "id": 9,
- "event_id": 96,
- "paid_at": "2026-06-09T13:56:03.256-07:00",
- "payment_method": "Other",
- "reference": "Check Number #123",
- "processor": null,
- "refund": false,
- "amount": "30.00",
- "amount_cents": 3000,
- "amount_currency": "USD",
- "amount_formatted": "$30",
- "tip_amount": "0.00",
- "tip_amount_cents": 0,
- "tip_amount_currency": "USD",
- "tip_amount_formatted": "$0",
- "total_amount": "0.00",
- "total_amount_cents": 0,
- "total_amount_currency": "USD",
- "total_amount_formatted": "$0",
- "paid_by": "Piedad Rogahn",
- "paid_at_formatted": "06-09-2026 1:56 PM",
- "event_starts_at": "2026-06-16T13:56:03.196-07:00",
- "invoice_number": null,
- "event_title": "Sarah and John's Wedding",
- "event_total": "0.00",
- "event_total_cents": 0,
- "event_total_currency": "USD",
- "event_total_formatted": "$0",
- "taxable_amount": "0.00",
- "taxable_amount_cents": 0,
- "taxable_amount_currency": "USD",
- "taxable_amount_formatted": "$0",
- "non_taxable_amount": "0.00",
- "non_taxable_amount_cents": 0,
- "non_taxable_amount_currency": "USD",
- "non_taxable_amount_formatted": "$0",
- "tax_rate": "0.0",
- "tax_collected": "0.00",
- "tax_collected_cents": 0,
- "tax_collected_currency": "USD",
- "tax_collected_formatted": "$0",
- "amount_collected_excluding_tax": "30.00",
- "amount_collected_excluding_tax_cents": 3000,
- "amount_collected_excluding_tax_currency": "USD",
- "amount_collected_excluding_tax_formatted": "$30",
- "processing_fees": null,
- "processing_fees_cents": null,
- "processing_fees_currency": null,
- "processing_fees_formatted": "$0",
- "net_amount": "30.00",
- "net_amount_cents": 3000,
- "net_amount_currency": "USD",
- "net_amount_formatted": "$30",
- "taxjar_city": null,
- "taxjar_county": null,
- "taxjar_state": null,
- "taxjar_country": null,
- "taxjar_postal_code": null,
- "taxjar_city_rate": null,
- "taxjar_county_rate": null,
- "taxjar_state_rate": null,
- "taxjar_country_rate": null,
- "taxjar_combined_district_rate": null,
- "taxjar_combined_rate": null,
- "brand_id": 759,
- "brand_name": "Bechtelar-Jacobs 180",
- "check_cherry_payment_id": "145aabed-11e6-42f0-abf6-df37c066246a"
}
}
}Reporting endpoints surface aggregated, read-only summaries of a business's data — revenue projections, lead and proposal counts, payment receipts, booked-on activity, staff productivity, package utilization, and more. They are intended for dashboards, BI tools, and AI assistants that need to answer "how is the business doing?" questions without paging through individual events, leads, or payments.
All reporting endpoints require the reports_read permission on the integration key. Most accept a date range (starts_at / ends_at) and an optional brand_id filter, and return raw JSON (not JSON:API) shaped for chart-friendly consumption.
Returns revenue totals bucketed by when a booking was sold (the booked_at date), rather than when the event runs. Each bucket reports the amount already collected, the amount still expected from non-postponed bookings (split into projected vs. past due), the amount tied up in postponed bookings, and the count of bookings.
This is the right endpoint for sales-pipeline questions like "how much did we sell last month?" or "what was our best booking week?". For event-date-based projections, use revenue_projection_summary instead.
Proposals are excluded. Only confirmed (non-archived) bookings with a due_on set are considered. All monetary fields are reported in cents.
Required permission: reports_read
| interval | string Default: "month" Enum: "year" "quarter" "month" "week" "day" Time-bucket size. Defaults to |
| starts_at | string Start of the date range (YYYY-MM-DD), applied against |
| ends_at | string End of the date range (YYYY-MM-DD), applied against |
| brand_id | integer Limit results to a single brand. Omit to include all brands on the account. |
| Api-Key required | string Your Integration Key |
{- "results": [
- {
- "name": "Apr 2026",
- "amount_paid_cents": 0,
- "projected_cents": 0,
- "postponed_cents": 0,
- "past_due_cents": 0,
- "total_cents": 0,
- "event_count": 0,
- "report_path": "/report/events?query%5Bbooked_at_dynamic%5D=custom&query%5Bbooked_at_end%5D=04-30-2026&query%5Bbooked_at_start%5D=04-01-2026&query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=booked_at&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstatus%5D=not_proposal"
}, - {
- "name": "May 2026",
- "amount_paid_cents": 0,
- "projected_cents": 0,
- "postponed_cents": 0,
- "past_due_cents": 0,
- "total_cents": 0,
- "event_count": 1,
- "report_path": "/report/events?query%5Bbooked_at_dynamic%5D=custom&query%5Bbooked_at_end%5D=05-31-2026&query%5Bbooked_at_start%5D=05-01-2026&query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=booked_at&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstatus%5D=not_proposal"
}, - {
- "name": "Jun 2026",
- "amount_paid_cents": 0,
- "projected_cents": 0,
- "postponed_cents": 0,
- "past_due_cents": 0,
- "total_cents": 0,
- "event_count": 0,
- "report_path": "/report/events?query%5Bbooked_at_dynamic%5D=custom&query%5Bbooked_at_end%5D=06-30-2026&query%5Bbooked_at_start%5D=06-01-2026&query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=booked_at&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstatus%5D=not_proposal"
}
]
}Returns the number of leads, bucketed by time interval. Useful for spotting trends in lead volume — answering "are we getting more inquiries lately?" or "how many leads did we get last quarter?".
Spam-flagged and franchise-hidden leads are excluded. Use chart_type to choose whether leads are bucketed by when they were created (the default — measures inquiry volume) or when the requested event would happen (measures demand by event date).
Required permission: reports_read
| interval | string Default: "month" Enum: "year" "quarter" "month" "week" "day" Time-bucket size. Defaults to |
| starts_at | string Start of the date range (YYYY-MM-DD). Defaults to one year ago. Snapped to the beginning of the chosen |
| ends_at | string End of the date range (YYYY-MM-DD). Defaults to today. Snapped to the end of the chosen |
| chart_type | string Default: "created_on" Enum: "created_on" "scheduled_on" Which date drives bucketing. |
| brand_id | integer Limit results to a single brand. Omit to include all brands on the account. |
| Api-Key required | string Your Integration Key |
{- "results": [
- {
- "name": "Apr 2026",
- "lead_count": 0,
- "report_path": "/report/leads?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=total_adjustments&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=04-30-2026&query%5Bstarts_at_start%5D=04-01-2026&query%5Bstatus%5D=not_proposal"
}, - {
- "name": "May 2026",
- "lead_count": 1,
- "report_path": "/report/leads?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=total_adjustments&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=05-31-2026&query%5Bstarts_at_start%5D=05-01-2026&query%5Bstatus%5D=not_proposal"
}, - {
- "name": "Jun 2026",
- "lead_count": 0,
- "report_path": "/report/leads?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=total_adjustments&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=06-30-2026&query%5Bstarts_at_start%5D=06-01-2026&query%5Bstatus%5D=not_proposal"
}
]
}Returns the total payments actually collected, bucketed by time interval. Each bucket reports the amount received and the number of distinct payment records that landed in the bucket.
Payments are bucketed by paid_at (when the money was actually received), not by the event date. Refunds and zero-amount records are excluded. Payments tied to archived or recurring template events are excluded. All monetary fields are reported in cents.
Pairs well with revenue_projection_summary: this endpoint answers "how much came in?", the projection endpoint answers "how much do we still expect?".
Required permission: reports_read
| interval | string Default: "month" Enum: "year" "quarter" "month" "week" "day" Time-bucket size. Defaults to |
| starts_at | string Start of the date range (YYYY-MM-DD). Defaults to one year ago. Snapped to the beginning of the chosen |
| ends_at | string End of the date range (YYYY-MM-DD). Defaults to today. Snapped to the end of the chosen |
| brand_id | integer Limit results to a single brand. Omit to include all brands on the account. |
| Api-Key required | string Your Integration Key |
{- "results": [
- {
- "name": "Apr 2026",
- "amount_paid_cents": 0,
- "payment_count": 0,
- "report_path": "/report/event_payments?query%5Bbrand_id%5D=&query%5Bpaid_at_dynamic%5D=custom&query%5Bpaid_at_end%5D=04-30-2026&query%5Bpaid_at_start%5D=04-01-2026"
}, - {
- "name": "May 2026",
- "amount_paid_cents": 50000,
- "payment_count": 1,
- "report_path": "/report/event_payments?query%5Bbrand_id%5D=&query%5Bpaid_at_dynamic%5D=custom&query%5Bpaid_at_end%5D=05-31-2026&query%5Bpaid_at_start%5D=05-01-2026"
}, - {
- "name": "Jun 2026",
- "amount_paid_cents": 0,
- "payment_count": 0,
- "report_path": "/report/event_payments?query%5Bbrand_id%5D=&query%5Bpaid_at_dynamic%5D=custom&query%5Bpaid_at_end%5D=06-30-2026&query%5Bpaid_at_start%5D=06-01-2026"
}
]
}Returns the number of proposals, bucketed by time interval. Useful for measuring how many proposals the business is sending out — answering "are we quoting more this quarter?" or "how many proposals went out last week?".
Includes all non-archived proposals (any of proposal_date_reserved, proposal_date_open, or proposal_awaiting_review). Use chart_type to choose whether proposals are bucketed by when they were created (the default — measures sales-team activity) or when the proposed event would happen (measures pipeline by event date).
Required permission: reports_read
| interval | string Default: "month" Enum: "year" "quarter" "month" "week" "day" Time-bucket size. Defaults to |
| starts_at | string Start of the date range (YYYY-MM-DD). Defaults to one year ago. Snapped to the beginning of the chosen |
| ends_at | string End of the date range (YYYY-MM-DD). Defaults to today. Snapped to the end of the chosen |
| chart_type | string Default: "created_on" Enum: "created_on" "scheduled_on" Which date drives bucketing. |
| brand_id | integer Limit results to a single brand. Omit to include all brands on the account. |
| Api-Key required | string Your Integration Key |
{- "results": [
- {
- "name": "Apr 2026",
- "proposal_count": 0,
- "report_path": "/report/events?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=total_adjustments&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=04-30-2026&query%5Bstarts_at_start%5D=04-01-2026&query%5Bstatus%5D=not_proposal"
}, - {
- "name": "May 2026",
- "proposal_count": 1,
- "report_path": "/report/events?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=total_adjustments&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=05-31-2026&query%5Bstarts_at_start%5D=05-01-2026&query%5Bstatus%5D=not_proposal"
}, - {
- "name": "Jun 2026",
- "proposal_count": 0,
- "report_path": "/report/events?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=total_adjustments&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=06-30-2026&query%5Bstarts_at_start%5D=06-01-2026&query%5Bstatus%5D=not_proposal"
}
]
}Returns projected revenue for the business, bucketed by time interval. Each bucket reports the amount already collected, the amount still expected from confirmed bookings, the amount that has slipped past due, and the amount tied up in postponed bookings — along with the number of bookings in that interval.
Proposals are excluded. Only confirmed (non-archived) bookings whose earliest_starts_at falls within the bucket contribute to the totals. All monetary fields are reported in cents.
Useful for dashboards, cash-flow forecasting, and answering questions like "how much do we expect to bring in next quarter?" or "how much is past due from last month?".
Required permission: reports_read
| interval | string Default: "month" Enum: "year" "quarter" "month" "week" "day" Time-bucket size for the projection. Defaults to |
| starts_at | string Start of the date range to project over (YYYY-MM-DD). Defaults to one year ago. The range is snapped to the beginning of the chosen |
| ends_at | string End of the date range to project over (YYYY-MM-DD). Defaults to today. The range is snapped to the end of the chosen |
| brand_id | integer Limit the projection to a single brand. Omit to include all brands on the account. |
| Api-Key required | string Your Integration Key |
{- "results": [
- {
- "name": "Apr 2026",
- "amount_paid_cents": 0,
- "projected_cents": 0,
- "postponed_cents": 0,
- "past_due_cents": 0,
- "total_cents": 0,
- "event_count": 0,
- "report_path": "/report/events?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=04-30-2026&query%5Bstarts_at_start%5D=04-01-2026&query%5Bstatus%5D=not_proposal"
}, - {
- "name": "May 2026",
- "amount_paid_cents": 0,
- "projected_cents": 0,
- "postponed_cents": 0,
- "past_due_cents": 0,
- "total_cents": 0,
- "event_count": 0,
- "report_path": "/report/events?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=05-31-2026&query%5Bstarts_at_start%5D=05-01-2026&query%5Bstatus%5D=not_proposal"
}, - {
- "name": "Jun 2026",
- "amount_paid_cents": 0,
- "projected_cents": 0,
- "postponed_cents": 0,
- "past_due_cents": 0,
- "total_cents": 0,
- "event_count": 1,
- "report_path": "/report/events?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=06-30-2026&query%5Bstarts_at_start%5D=06-01-2026&query%5Bstatus%5D=not_proposal"
}, - {
- "name": "Jul 2026",
- "amount_paid_cents": 0,
- "projected_cents": 0,
- "postponed_cents": 0,
- "past_due_cents": 0,
- "total_cents": 0,
- "event_count": 0,
- "report_path": "/report/events?query%5Bbrand_id%5D=&query%5Bcolumns%5D%5B%5D=name&query%5Bcolumns%5D%5B%5D=status&query%5Bcolumns%5D%5B%5D=starts_at_date&query%5Bcolumns%5D%5B%5D=starts_at_time&query%5Bcolumns%5D%5B%5D=total_cost&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_paid&query%5Bcolumns%5D%5B%5D=past_due_amount&query%5Bcolumns%5D%5B%5D=total_due&query%5Bstarts_at_dynamic%5D=custom&query%5Bstarts_at_end%5D=07-31-2026&query%5Bstarts_at_start%5D=07-01-2026&query%5Bstatus%5D=not_proposal"
}
]
}Design Templates available to a specific business. These are templates that have been made available through the App Platform and enabled for the business's account.
Fetch all design templates for a business.
Required permission: design_template_read
| Api-Key required | string Your Integration Key |
{- "data": [
- {
- "id": "15",
- "type": "design_template",
- "attributes": {
- "id": 15,
- "name": "Sample Template",
- "description": "Sample description",
- "video_url": null,
- "number_of_photos": 3,
- "design_category_tag_ids": [ ],
- "design_category_tag_names": [ ],
- "design_category_layout_ids": [ ],
- "design_category_layout_names": [ ],
- "primary_image": {
- "video_variant": null
}, - "additional_images": [ ]
}, - "relationships": {
- "design_template_category": {
- "data": {
- "id": "28",
- "type": "design_template_category"
}
}, - "design_category_tags": {
- "data": [ ]
}, - "design_category_layouts": {
- "data": [ ]
}
}
}
]
}Template Selections track which design templates a business has chosen for their account. Use this endpoint to submit a template selection on behalf of a business.
After a customer chooses a template, this API endpoint should be called.
Required permission: design_template_select
| Api-Key required | string Your Integration Key |
object |
{- "template_selection": {
- "event_booking_id": 0,
- "design_id": 0,
- "user_id": 0,
- "template_name": "string",
- "template_image_url": "string",
- "account_number": "string",
- "template_purchase_url": "string"
}
}{- "meta": {
- "status": "ok"
}
}Returns the canonical public URLs for each active brand on the franchise — the online booking flow, sign-in page, availability calendar, mini sessions index, add-on gallery, photo booth backdrop gallery, design template gallery, and team page. Use this when a customer asks "what's the link to my X" or when an agent needs to point a user at the right hosted page.
A franchise can have multiple brands, each with its own custom domain. The response includes one entry per active brand with that brand's links resolved against its primary custom domain.
Required permission: offerings_read
| Api-Key required | string Your Integration Key |
{- "data": [
- {
- "id": "683",
- "type": "brand_links",
- "attributes": {
- "name": "Wehner-Blick 105",
- "host": "test-105-9d272217.cc.localhost",
- "primary": true,
- "links": {
- "lead_forms": [
- {
- "id": 5,
- "name": "Wedding Inquiry",
- "default": false,
}
], - "appointment_schedulers": [
- {
- "id": 50,
- "title": "30-minute consult",
- "user_id": 315,
- "user_full_name": "Stanford Swift",
}
]
}
}
}
]
}Returns published, non-internal Check Cherry help center articles. Use this to answer customer questions about how the platform works (booking flow, payments, leads, integrations, etc.) instead of guessing.
Filter by category to scope the list, or pass text to run a full-text search across the article title, body, and meta description. When text is present results are ranked by relevance; otherwise articles are returned in display order within their category.
Required permission: global
| text | string Full-text search query across article title, body, and meta description |
| category | string Filter by article category (e.g., bookings, leads, payments) |
| page | integer Page number (default: 1) |
| per | integer Results per page (default: 20) |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok",
- "total_count": 2,
- "per_page": 20
}, - "data": [
- {
- "id": "32",
- "type": "support_article",
- "attributes": {
- "title": "How to create a booking",
- "slug": "how-to-create-a-booking",
- "category": "bookings",
- "category_label": "Bookings",
- "meta_description": "Repellat et voluptatibus tenetur.",
- "body_text": "Eos impedit quis. Exercitationem perspiciatis voluptas. Placeat vitae quia. Section Step one. Step two.",
- "body_html": "<p>Eos impedit quis. Exercitationem perspiciatis voluptas. Placeat vitae quia.</p>\n<h2 id=\"section\">Section</h2>\n<div class=\"steps\"><div class=\"step\"><div class=\"step-content\">Step one.</div></div>\n<div class=\"step\"><div class=\"step-content\">Step two.</div></div></div>",
- "published_at": "2026-06-09T13:56:11.363-07:00",
- "updated_at": "2026-06-09T13:56:11.369-07:00"
}
}, - {
- "id": "33",
- "type": "support_article",
- "attributes": {
- "title": "Lead capture forms",
- "slug": "lead-capture-forms",
- "category": "leads",
- "category_label": "Leads",
- "meta_description": "Quia quis molestiae magni.",
- "body_text": "Ab neque libero. Enim quo reprehenderit. Accusamus eos sed. Section Step one. Step two.",
- "body_html": "<p>Ab neque libero. Enim quo reprehenderit. Accusamus eos sed.</p>\n<h2 id=\"section\">Section</h2>\n<div class=\"steps\"><div class=\"step\"><div class=\"step-content\">Step one.</div></div>\n<div class=\"step\"><div class=\"step-content\">Step two.</div></div></div>",
- "published_at": "2026-06-09T13:56:11.376-07:00",
- "updated_at": "2026-06-09T13:56:11.377-07:00"
}
}
]
}Returns a single published help center article by its slug. The response includes both a plain-text body (best for AI assistants to read) and a rendered HTML body (for display).
Required permission: global
| slug required | string The article's URL slug |
| Api-Key required | string Your Integration Key |
{- "meta": {
- "status": "ok"
}, - "data": {
- "id": "34",
- "type": "support_article",
- "attributes": {
- "title": "How to create a booking",
- "slug": "how-to-create-a-booking",
- "category": "bookings",
- "category_label": "Bookings",
- "meta_description": "Excepturi voluptatem impedit id.",
- "body_text": "Voluptate dolorum incidunt. Excepturi laudantium fugit. Sed deserunt ab. Section Step one. Step two.",
- "body_html": "<p>Voluptate dolorum incidunt. Excepturi laudantium fugit. Sed deserunt ab.</p>\n<h2 id=\"section\">Section</h2>\n<div class=\"steps\"><div class=\"step\"><div class=\"step-content\">Step one.</div></div>\n<div class=\"step\"><div class=\"step-content\">Step two.</div></div></div>",
- "published_at": "2026-06-09T13:56:11.529-07:00",
- "updated_at": "2026-06-09T13:56:11.534-07:00"
}
}
}