Documentation Index
Fetch the complete documentation index at: https://docs.bookingshake.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The BookingShake API uses standard HTTP status codes to indicate the success or failure of requests. Error responses include a JSON object with a descriptivemessage field to help you understand what went wrong.
HTTP Status Codes
| Status Code | Meaning | Description |
|---|---|---|
200 | Success | Request completed successfully |
400 | Bad Request | Invalid request parameters or authentication error |
403 | Forbidden | Access denied to the requested resource |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Something went wrong on our end |
Error Response Format
All errors follow a consistent JSON structure:Common Errors
Authentication Errors
missing token
missing token
HTTP Status: Example:
400 Bad RequestCause: The Authorization header is missing from the request.Solution: Include the Bearer token in the Authorization header:invalid token
invalid token
HTTP Status:
400 Bad RequestCause: The API key provided is incorrect, expired, or revoked.Solution:- Verify you copied the complete API key without extra spaces
- Ensure you’re using the correct API key from Settings > Integrations
- Generate a new API key if needed
- Log in to BookingShake dashboard
- Go to Settings > Integrations
- Copy the API key again
- Try the request with the fresh key
Request Body Errors
body is empty
body is empty
HTTP Status:
400 Bad RequestCause: The request body is empty or not included in a POST request.Solution: Include a valid JSON body with your POST request:invalid body
invalid body
HTTP Status:
400 Bad RequestCause: The request body is not valid JSON or cannot be parsed.Solution:- Ensure your JSON is properly formatted
- Check for missing commas, quotes, or brackets
- Validate your JSON using a JSON validator
Missing Required Fields
missing bookings
missing bookings
HTTP Status:
400 Bad RequestCause: The bookings array is missing from the request body.Solution: Include at least one booking in the bookings array:missing contact
missing contact
HTTP Status:
400 Bad RequestCause: The contact object is missing from the request body.Solution: Include contact information with required fields:missing pax
missing pax
HTTP Status:
400 Bad RequestCause: The pax (number of attendees) field is missing from a booking.Solution: Include the pax field in each booking:Format Validation Errors
date format must be DD-MM-YYYY
date format must be DD-MM-YYYY
HTTP Status:
400 Bad RequestCause: The date is not in the correct DD-MM-YYYY format.Solution: Use the DD-MM-YYYY format:Examples:- ✅ Correct:
"15-03-2025","01-12-2024","31-01-2025" - ❌ Incorrect:
"2025-03-15","03/15/2025","15.03.2025"
start_time format must be HH:mm
start_time format must be HH:mm
HTTP Status:
400 Bad RequestCause: The time is not in the correct HH:mm format (24-hour).Solution: Use the HH:mm format with 24-hour time:Examples:- ✅ Correct:
"14:00","09:30","23:45" - ❌ Incorrect:
"2:00 PM","14:00:00","14h00"
end_time format must be HH:mm
end_time format must be HH:mm
HTTP Status:
400 Bad RequestCause: The end time is not in the correct HH:mm format.Solution: Same as start_time - use HH:mm format (24-hour).Authorization Errors
Forbidden - client access denied
Forbidden - client access denied
HTTP Status:
403 ForbiddenCause: You’re trying to access or use a contact_id that doesn’t belong to your venue or venue group.Solution:- Ensure the
contact_idbelongs to your venue - Use the correct venue API key
- Create a new contact instead of referencing an existing one
Rate Limiting Errors
Rate limit exceeded
Rate limit exceeded
HTTP Status: Response Body:Solution:
429 Too Many RequestsCause: You’ve exceeded the rate limit for the endpoint (e.g., 10 requests/minute for /events/create or 60 requests/minute for GET endpoints).Response Headers:- Wait for the duration specified in the
Retry-Afterheader (in seconds) - Implement exponential backoff for retries
- Monitor
X-RateLimit-Remainingheader to avoid hitting limits - Cache GET endpoint responses (sources, spaces, status, fields)
- Batch multiple bookings in a single
/events/createrequest
Resource Validation Errors
invalid space
invalid space
HTTP Status:
400 Bad RequestCause: The space_id provided does not exist or is not valid for your venue.Solution:- Retrieve available spaces first:
- Use a valid
space_idfrom the response:
- Or omit the
space_idto use the default space.
invalid source
invalid source
HTTP Status:
400 Bad RequestCause: The source_slug or source_id provided does not exist.Solution:- Retrieve available sources:
- Use a valid source identifier from the response.
Product Validation Errors
When including products to create draft quotations, these validation errors may occur:missing products title
missing products title
HTTP Status:
400 Bad RequestCause: A product in the products array is missing the required title field.Solution: Ensure every product has a title:missing products quantity
missing products quantity
HTTP Status:
400 Bad RequestCause: A product is missing the quantity field.Solution: Include a positive integer quantity for each product:missing products price_without_tax
missing products price_without_tax
HTTP Status:
400 Bad RequestCause: A product is missing the price_without_tax field.Solution: Include the price in cents/centimes (not euros/dollars):missing products vat
missing products vat
HTTP Status:
400 Bad RequestCause: A product is missing the vat (VAT rate) field.Solution: Include the VAT rate in basis points (not percentage):Invalid VAT rate
Invalid VAT rate
HTTP Status: Common mistakes:
400 Bad RequestCause: The VAT value is outside the valid range (0-10000 basis points).Solution: Ensure VAT is between 0 and 10000:- Using
20instead of2000for 20% VAT ❌ - Using negative values ❌
- Using values over 10000 ❌
Server Errors
Internal server error
Internal server error
HTTP Status:
500 Internal Server ErrorCause: An unexpected error occurred on the server.What to do:- Wait a moment and retry your request
- If the error persists, contact support at support@bookingshake.com
- Include the following information:
- Timestamp of the request
- Request method and endpoint
- Request body (sanitize any sensitive data)
- Any correlation ID if provided in the response
Error Handling Best Practices
1. Always Check Status Codes
2. Validate Input Before Sending
Validate data client-side before making API requests to catch errors early:3. Implement Retry Logic
For 500 errors, implement exponential backoff retry logic:4. Log Errors for Debugging
Always log errors with sufficient context:Need More Help?
Quickstart Guide
Review the quickstart guide for working examples
Contact Support
Get help from our support team
