Error response format
All errors follow a consistent JSON structure. Every error includes a machine-readablecode, a human-readable message, and a unique request_id you can reference when contacting support.
details array identifies the specific fields that failed:
HTTP status codes
| Status code | Error code | Description |
|---|---|---|
| 400 | bad_request | The request body is malformed or missing required fields. |
| 400 | validation_error | One or more parameters failed validation. Check the details array. |
| 401 | unauthorized | The API key is missing, invalid, or expired. |
| 403 | forbidden | The API key does not have the required scope for this endpoint. |
| 404 | not_found | The requested resource does not exist or has been deleted. |
| 409 | conflict | The request conflicts with the current state (e.g., duplicate webhook URL). |
| 422 | unprocessable_entity | The request is well-formed but cannot be processed (e.g., regenerating a summary for a meeting still in progress). |
| 429 | rate_limit_exceeded | You have exceeded your plan’s rate limit. |
| 500 | internal_error | An unexpected error occurred on our side. These are automatically reported. |
| 503 | service_unavailable | The API is temporarily unavailable due to maintenance or high load. |
Error handling guide
400 Bad Request
Your request is malformed. Check the request body and query parameters.Content-Type: application/json header.
401 Unauthorized
The API cannot authenticate your request.Authorization: Bearer <key>.
403 Forbidden
Your API key is valid but lacks the required scope.404 Not Found
The resource you requested does not exist.429 Rate Limit Exceeded
You are sending too many requests.Retry-After header for the recommended wait time.
500 Internal Error
An unexpected error occurred on our servers.request_id.