Errors & limits
Use the HTTP status code to determine whether a request succeeded. Success responses are 200 for reads, 201 for subscription creation, and 204 for subscription deletion.
Status codes
| Status | Meaning | What to check |
|---|---|---|
400 Bad Request | Request validation failed. | Parameter types, required fields, event enum, UUIDs, and the limit range. |
401 Unauthorized | Authentication failed. | Bearer header and whether the API key is active. |
404 Not Found | A requested page or active subscription is unavailable to this user. | Ownership, deletion state, and the resource ID. |
500 Internal Server Error | Authentication or endpoint processing failed. | Retry reads later. For subscriptions, see the duplicate behavior below. |
Authentication & resource errors
These errors return a JSON object with an error string:
{
"error": "Booking page not found"
}| Status | error | Cause |
|---|---|---|
401 | Missing or invalid Authorization header | Missing or malformed Bearer header. |
401 | Invalid API key | Unknown or revoked key. |
401 | Unauthorized | Authenticated integration context is unavailable to the endpoint. |
404 | Booking page not found | Missing, deleted, or unowned page. |
404 | Subscription not found | Missing, inactive, or unowned subscription. |
500 | Authentication failed | Authentication processing failed. |
Validation errors
Invalid query parameters, subscription bodies, and subscription IDs use a different response shape:
{
"code": "ERR_VALIDATION",
"message": "Invalid Zapier booking trigger query",
"details": {
"formErrors": [],
"fieldErrors": {
"limit": ["Too big: expected number to be <=500"]
}
}
}details.formErrors contains errors for the overall input. details.fieldErrors maps field names to arrays of validation messages. The field text above is illustrative; use code and field names rather than matching exact validation wording.
| Endpoint | Validation message |
|---|---|
| New bookings | Invalid Zapier booking trigger query |
| Cancelled bookings | Invalid Zapier cancelled booking trigger query |
| Rescheduled bookings | Invalid Zapier updated booking trigger query |
| Create subscription | Invalid Zapier subscription request |
| Delete subscription | Invalid Zapier subscription id |
Send syntactically valid JSON for subscription creation. A malformed JSON body can be rejected before the endpoint's field validation and may not use the JSON error shape above.
Endpoint server errors
Endpoint processing failures return 500 with an error string:
| Endpoint | error |
|---|---|
| Connection identity | Failed to load Zapier connection info |
| Booking pages | Failed to list booking pages |
| New bookings | Failed to list bookings for Zapier trigger |
| Cancelled bookings | Failed to list cancelled bookings for Zapier trigger |
| Rescheduled bookings | Failed to list updated bookings for Zapier trigger |
| Create subscription | Failed to create Zapier subscription |
| Delete subscription | Failed to delete Zapier subscription |
Result limits & pagination
Booking trigger queries default to 100 records and accept an integer limit from 1 to 500. There is no cursor, offset, total count, or date-range pagination. The booking pages endpoint does not accept pagination parameters.
This API reference does not specify a requests-per-second quota or rate-limit response headers. The 500-record maximum is a result limit, not a request quota. If infrastructure returns 429 Too Many Requests, reduce request frequency and honor Retry-After if it is provided.
Retrying subscription operations
Creating the same active subscription again with the same user, event type, callback URL, and page filter returns its existing ID. You can repeat that exact request if a network failure leaves the outcome unknown. It does not update existing fields.
Deleting an already inactive subscription returns 404. If you have already confirmed deletion with 204, that later 404 is expected.