Rate limits
Each key has its own request limits. This guide gives the limits, the headers that report them, and how to back off when you reach one.
Limits per key
Limits apply to each API key separately, as token buckets: a steady rate per minute, and a burst you may spend at once before the steady rate applies.
| Bucket | Per minute | Burst | Counts |
|---|---|---|---|
| Reads | 600 | 100 | GET requests |
| Writes | 120 | 30 | POST, PUT, PATCH and DELETE requests |
| DMS ingestion | 60 | — | Calls to the DMS document and file endpoints, each up to 500 documents |
- A Mikono administrator can change a key’s limits. The key’s current limits are shown in Settings → Developers and returned by
GET /meinrateLimits. - Limits are the same in the sandbox and in production.
Rate limit headers
Responses carry the state of the bucket the call used:
| Header | Meaning |
|---|---|
RateLimit-Limit | Requests allowed in the current window for this key and bucket. |
RateLimit-Remaining | Requests left in the current window. |
RateLimit-Reset | Seconds until the window resets. |
Retry-After | On a 429 only: seconds to wait before the next attempt. |
Over the limit
A call over the limit returns 429 rate_limited and does nothing. Wait for Retry-After seconds, then send the same request again, with the same Idempotency-Key if it is a write.
Response
HTTP/1.1 429 Too Many Requests
Content-Type: application/problem+json
Retry-After: 4
RateLimit-Limit: 120
RateLimit-Remaining: 0
RateLimit-Reset: 4
X-Request-Id: req_01J9…
{ "code": "rate_limited", "status": 429, "title": "Rate limited", "detail": "…", "requestId": "req_01J9…" }- Spread bulk work out: read
RateLimit-Remainingand slow down before it reaches zero. - For large loads of DMS documents, send batches of up to 500 documents per call instead of one per call.