Rate limit errors
Chatevo returns HTTP 429 Too Many Requests when you exceed rate limits. The response includes a Retry-After header and error body with retry_after seconds.
Identify the limit
Section titled “Identify the limit”Check response headers:
| Header | Example | Meaning |
|---|---|---|
X-RateLimit-Limit | 60 | Max requests in window |
X-RateLimit-Remaining | 0 | None left |
X-RateLimit-Reset | 1752652860 | Window resets at this Unix time |
Retry-After | 12 | Wait 12 seconds before retry |
Error body:
{ "error": { "code": "rate_limit_exceeded", "message": "Chat rate limit exceeded for deployment dep_abc123.", "retry_after": 12 }}Limit categories
Section titled “Limit categories”| Category | Default limit | Typical trigger |
|---|---|---|
| Global | 1,000 req/min per org | Automation polling list endpoints |
| Auth | 10/min per IP | Login brute force (wait before retry) |
| Chat | 60 messages/min per deployment | High-volume Direct API |
| Widget | 120 req/min per deployment | Traffic spike or load test |
| Webhook | 100 deliveries/min per endpoint | Slow webhook handler causing retries |
Fixes by scenario
Section titled “Fixes by scenario”Widget visitors see errors
Section titled “Widget visitors see errors”| Cause | Fix |
|---|---|
| Load test without throttling | Spread requests; use staging deployment |
| Bot traffic | Add CAPTCHA on your site; contact support for IP rules |
| Config fetched in a loop | Cache config client-side; load script once per page |
Widget performance target remains ≤ 2s to interactive — rate limits should not affect normal visitor traffic.
Direct API integration
Section titled “Direct API integration”import timeimport requests
def send_with_retry(payload, max_retries=3): for attempt in range(max_retries): resp = requests.post(API_URL, json=payload, headers=HEADERS) if resp.status_code != 429: return resp time.sleep(int(resp.headers.get("Retry-After", 2 ** attempt))) raise Exception("Rate limit exceeded after retries")Prefer webhooks over polling conversations.
Dashboard / API automation
Section titled “Dashboard / API automation”- Batch creates instead of one request per row
- Cache assistant and KB lists locally
- Use
cursorpagination — do not refetch page 1 in a loop
Webhook endpoint slow
Section titled “Webhook endpoint slow”Respond within 5 seconds with 2xx. Slow handlers cause retries that consume webhook quota.
Plan upgrades
Section titled “Plan upgrades”Pro and Enterprise plans include higher limits. View current quotas under Billing → Usage or Deployment rate limits.