Errors & rate limits
Error format, status codes and limits.
Errors always look like this:
{ "error": { "type": "invalid_request", "message": "The message field is required." } }
| HTTP | type |
Meaning |
|---|---|---|
| 400 / 422 | invalid_request |
A field is missing or invalid (fields lists them) |
| 401 | authentication_error |
Missing, wrong or revoked key |
| 402 | insufficient_credits |
Top up to continue |
| 403 | origin_not_allowed, business_inactive, channel_not_in_plan |
The key cannot be used here |
| 404 | not_found |
The resource does not exist in your business |
| 429 | rate_limited, visitor_limit |
Too many requests — wait for Retry-After seconds, or a website visitor reached the daily message limit |
| 5xx | server_error |
Something broke on our side; safe to retry with an Idempotency-Key |
Rate limits are per key, per minute, and depend on your plan (30 on Trial, 60 on Starter, 120 on Growth, 300 on Pro).
