Rate limits
Limits live per key (not per team) so a noisy partner can't starve your own dashboards. Every response includes:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 273
X-RateLimit-Reset: 1716592860When you exceed a limit Dib returns 429 with a Retry-After header in seconds. Honor it — repeated 429s get a key marked as abusive (see security).
Defaults
| Class | Limit | Use case |
|---|---|---|
| Reads (GET) | 300 req/min per key | Bursty reads (dashboards, syncs) |
| Writes (POST/PATCH/DELETE) | 60 req/min per key | Editing data |
| Bulk (/v1/*/bulk) | 20 req/min per key | Batched mutations (max 50 ops each) |
| Smart Add | 20 req/min per key | Image extraction |
| Document extract | 20 req/min per key | OCR + structured fields |
| AI chat | 30 req/min per key | Counts against your team AI quota |
| Exports | 5 jobs / hour per team | Async job, runs in the background |
| Change feed (SSE) | 10 concurrent connections per team | 60s heartbeat |
Adaptive throttling
Dib also watches for behavioral signals — sudden geo jumps, rising error rates, or sustained cache-miss floods. We'll soft-throttle before issuing a hard ban, so transient issues self-recover.
Need more headroom?
Email support@dib.io with your team ID and an estimated daily request volume. Trusted partners can get bespoke ceilings.