Errors
Quick Overview
Common error responses from the Public API and their meanings.
Authentication Errors
| Status | Error Code | Description | Resolution |
|---|---|---|---|
| 401 | ERR_UNAUTHORIZED | Missing or invalid Authorization header, or API key does not match any workspace. | Check your Bearer token and API key from Settings > General > API Keys. |
Rate Limiting and Quota
| Status | Error Code | Description | Resolution |
|---|---|---|---|
| 429 | ERR_PUBLIC_API_LIMIT_REACHED | Monthly quota for Public API requests has been exceeded. | Contact your workspace admin or upgrade your plan to increase the quota. |
| 429 | Rate limit exceeded | Too many requests in a short period. | Reduce request frequency and retry after a delay. |
Validation Errors
Validation errors are typically returned with status 400. The response body contains error details. Common cases include missing required fields, invalid values, or constraint violations.
Resource Not Found
| Status | Error Code | Description |
|---|---|---|
| 404 | ERR_CONTACT_NOT_FOUND | Contact not found. |
| 404 | ERR_TICKET_NOT_FOUND | Ticket not found. |
| 404 | ERR_QUEUE_NOT_FOUND | Queue not found. |
| 404 | ERR_LABEL_NOT_FOUND | Label not found. |
| 404 | ERR_USER_NOT_FOUND_IN_WORKSPACE | User not found in the workspace. |
| 404 | ERR_MESSAGE_NOT_FOUND | Message not found. |
Business Logic Errors
| Status | Error Code | Description |
|---|---|---|
| 400 | ERR_USER_ID_REQUIRED | User ID required when setting ticket status to IN_PROGRESS without an assignee. |
| 400 | ERR_LABEL_SLUGS_REQUIRED | Label slugs required. |
| 400 | ERR_CONTACT_IDS_REQUIRED | Contact IDs required for bulk delete. |
| 400 | ERR_CONTACT_ALREADY_EXISTS | Contact already exists. |
| 400 | ERR_REACTION_NOT_ALLOWED | Reaction not allowed for this channel (Telegram apply-only). |
| 400 | ERR_REACTION_NOT_SUPPORTED_FOR_CHANNEL | Reaction not supported for this channel (Messenger, LINE). |
General Errors
| Status | Description |
|---|---|
| 500 | Internal server error. Retry the request or contact support if the issue persists. |