Guides
Limits and quotas
The free plan's numbers, how each response tells you where you stand, and what to do when you hit one.
The limits
| Requests per month | 500 | Per account, across all its keys. Resets at 00:00 UTC on the 1st. |
| Requests per minute | 30 | Per key. |
| File size | 50 MB | The upload itself. |
| Unpacked size | 250 MB | Everything inside the file's ZIP, uncompressed. |
Your dashboard shows this month's use. GET /v1/usage returns it from code, and does not count as a request.
What counts
Every call to /v1/check or /v1/repair whose upload we accept counts as one request, whatever the verdict — including a file we answer with a 4xx such as encrypted_package, because it was processed. Requests refused before the upload is read (a bad key, a missing Content-Length, a file over 50 MB, a rate limit) don't count, and neither does any request that fails on our side with a 5xx.
Headers
Responses from the counted endpoints carry where you stand:
- X-Quota-Limitinteger
- Your monthly quota.
- X-Quota-Remaininginteger
- Requests left this month after this one.
- X-Request-Idstring
- The request's id, on every response.
- Retry-Afterseconds
- On 429 and 503: when to try again.
When you hit one
All three are 429; the code says which. rate_limited clears within a minute — wait for Retry-After and retry. quota_exceeded lasts until the month resets, and its Retry-After says when. daily_limit means the service as a whole reached its daily ceiling; try again tomorrow.