Limits
Rate limits & quotas
Limits are per app, shared by all its keys and counted across every QuiC server. A sandbox key always gets sandbox limits.
| Limit | Sandbox | Internal live | Public live |
|---|---|---|---|
| API requests | 30 / minute | 300 / minute | 600 / minute |
| Messages | 200 / day | 10,000 / day | 50,000 / day |
| Business-initiated, per user | 3 / 24 hours | 3 / 24 hours | 3 / 24 hours |
| Media uploads | 100 / hour | 100 / hour | 100 / hour |
| Testers | 10 | — | — |
| Webhook endpoints | 5 | 5 | 5 |
Headers#
Every response carries RateLimit-Limit and RateLimit-Remaining. A throttled request gets 429 rate_limited and a Retry-After header in seconds. Wait that long, then retry — with the same Idempotency-Key for sends.
Quota errors#
daily_quota_exceeded— the app's daily message quota is used up (resets at 00:00 UTC).business_initiated_cap— you already started 3 messages to this person in the last 24 hours, outside the 24-hour window. Reply when they write to you.media_rate_limited— too many uploads this hour.