Whautomate REST API Error Messages
When a request fails, the API returns an HTTP status code and a JSON body, usually {"error": "..."} (or {"message": "..."} from the API gateway). Successful requests return 200.
Status codes
| Status | Example body | What it means and how to fix it |
|---|---|---|
| 400 Bad Request | {"message": "Invalid request body"} | The JSON is malformed, or a field has the wrong type or format. Check commas, brackets and quotes, and the field types on the endpoint page. |
| 400 Bad Request | {"error": "Invalid parameters"} | A required field is missing or has an invalid value. Some endpoints say exactly what is wrong, for example Invalid time format. Please provide the time in the format 'hh:mm AM/PM'. |
| 401 Unauthorized | {"message": "Unauthorized"} | The x-api-key header is missing, or the key is wrong or was deleted. Copy the key again from Settings > Integrations > REST API. |
| 403 Forbidden | {"message": "Forbidden"} | The request was blocked before reaching your account, usually because the x-api-key header is missing or the path does not exist. Check the header and the URL, including /v1. |
| 403 Forbidden | {"error": "This feature is not included in your plan.", "code": "MODULE_NOT_ENABLED", "module": "bookings"} | Your plan does not include the add-on this action needs (crm, bookings or sales). Reading data and handling existing bookings still work. See Plan add-ons. |
| 404 Not Found | {"error": "Invalid locationId"} or {"error": "Location not found in the account."} | The location ID is missing, wrong, from another account, or the workspace is deactivated. Get IDs from GET /v1/locations, or from the end of the URL when you edit the location in Settings. |
| 404 Not Found | {"error": "Client not found"} | The record ID (client, contact, class and so on) does not exist in your account. |
| 409 Conflict | {"error": "No slots available ..."} | Booking only: the time is no longer free or no staff member is available. Get fresh times from available slots. |
| 429 Too Many Requests | {"message": "Too Many Requests"} | You went over your rate limit (60 requests a minute on trial accounts, 300 on subscribed accounts). Slow down and retry after a short wait. |
| 500 Internal Server Error | {"error": "Could not create Client"} | Something went wrong on our side. Retry later; if it keeps happening, contact support with the request and the time it was sent. |
Tips
- Log the status code and body of failed requests; the message usually says what to fix.
- Retry
429and500responses with a growing delay; do not retry400,401,403or404without changing the request.