API errors and limits
Every WazzaBee API response comes back as JSON. When something goes wrong, the error field holds the description of the problem in Russian.
Error response format
{
"error": "Error description",
"details": "Additional information (optional)"
}
Success response format
{
"success": true,
...response data
}
HTTP response codes
| Code | Status | Description | What to do |
|---|---|---|---|
200 | OK | The request succeeded | Process the data from the response |
202 | Accepted | The request was accepted for processing (when sending messages) | The message is queued and will be delivered within seconds |
400 | Bad Request | Invalid request parameters | Check the required parameters and their format |
401 | Unauthorized | Authorization error | Check the Authorization header and the API key |
403 | Forbidden | No access to the resource | Check which channels are linked to the integration |
404 | Not Found | Resource not found | Check the endpoint URL and the resource IDs |
500 | Internal Server Error | Internal server error | Retry the request later. If it keeps happening, contact support |
Common errors and how to fix them
"Authorization header is missing" (401)
Reason: you didn't send the Authorization header, or sent it in the wrong format.
Fix: add the header Authorization: Bearer YOUR_API_KEY. Mind the space after Bearer.
# ❌ Wrong (no header)
curl -X GET "https://api.wazzabee.com/api-gateway/v1/channels"
# ❌ Wrong (no Bearer)
curl -X GET "https://api.wazzabee.com/api-gateway/v1/channels" \
-H "Authorization: wac_live_sk_..."
# ✅ Correct
curl -X GET "https://api.wazzabee.com/api-gateway/v1/channels" \
-H "Authorization: Bearer wac_live_sk_..."
"Invalid API key" (401)
Reason: the key isn't found in the system, probably a typo, or a key from another integration.
Fix: copy the key again from Connectors → API.
"Integration is deactivated" (403)
Reason: the integration was turned off in your dashboard.
Fix: go to Connectors and activate the integration.
"Channel is not linked to this integration" (403)
Reason: you're trying to use a channel that isn't on the allowed list for this API key.
Fix: check the integration settings and make sure the channel you need is enabled.
"Channel not found or no access" (404)
Reason: the channelId you passed doesn't exist or belongs to another account.
Fix: get the current list of channels with GET /v1/channels.
"Channel is inactive" (400)
Reason: the channel is disabled or lost its connection.
Fix: check the channel status in your dashboard. For WhatsApp QR you may need to scan the QR code again.
"Unsupported channel type" (400)
Reason: this channel type can't send messages through the API.
Fix: make sure the channel is one of the supported types: whatsapp_qr, whatsapp_waba, telegram_bot, telegram_personal.
"Unknown route" (404)
Reason: you called an endpoint that doesn't exist.
Fix: check the URL and the HTTP method. Available routes:
POST /v1/messages/send
GET /v1/messages
GET /v1/channels
PATCH /v1/webhooks
GET /v1/webhooks
POST /v1/iframe
Limits
| Parameter | Limit | Description |
|---|---|---|
| Messages per history request | 200 | The maximum value of limit in GET /v1/messages |
| iframe session lifetime | 24 hours | Once it expires, create a new session |
| Webhook test request timeout | 10 seconds | Your server must answer within 10 seconds when the webhook is registered |
Recommendations
- Always check the
successfield in the response before you process the data - Handle error codes in code: don't rely on the error text alone
- On a
500error, wait 5–10 seconds and retry the request - Keep
channelIdin your configuration: don't request the channel list before every send - Use webhooks instead of constantly polling GET /v1/messages
