Limits and quotas
The real numbers. Every one of them is read out of the same table the server checks against, not out of a marketing page.
Per plan#
| Free | Pro | Enterprise | ||
|---|---|---|---|---|
| API access | — | yes | yes | The API is a Pro and Enterprise capability. A Free account calling it is answered 402. |
| API calls a day | — | 2,000 | 20,000 | Counted per account, not per credential: a second client id buys nothing. Resets at midnight UTC. |
| Largest single file | 25 MB | 512 MB | 512 MB | Refused with 413 before anything is read. |
| Documents kept | nothing | 5 GB | 25 GB | Over the quota is a 507. Free keeps nothing at all — that is what makes the free tier free. |
| Credentials at once | — | 20 | 20 | Per account. Revoked ones do not count. |
Calls are counted per account, not per
credential. An account that wants more room should not be able to get
it by making a second client id. Over the allowance is a
429 with a Retry-After header
counting down to midnight UTC.Per call#
Not per plan. These are properties of the API, and you meet them the same way on every tier.
| Limit | ||
|---|---|---|
| Token lifetime | 1 hour | Fixed. There is no way to ask for a longer one. |
| Token endpoint | 30 requests a minute | Per source address, burst 10. Answers 429, not 503. |
/api/v1 rate limit | none | There is no per-second limit in front of the API. The daily account allowance is the only rate control, which is why it is worth reading GET /api/v1/usage before a big run. |
| Documents in a list | 200 | ?limit= is clamped to 1–200; 50 by default. Page with ?offset=. |
| PNG resolution | 200 dpi | ?dpi= is clamped to 20–200; 110 by default. |
| Images in one Markdown post | 40 | Named in the images object, matching the names used in the text. |
| Fields on one form | 500 | Keys are up to 64 characters, labels 200, an answer 20,000, and a choice list 100 options. |
| Title length | 200 characters | Anything longer is truncated rather than refused. |
The free tools#
The free tools reach a server twice: /protect and
/unlock, because PDF encryption cannot be done in a browser.
Those two routes take no account and no token, and they are the only part
of this API a stranger can call.
| Limit | ||
|---|---|---|
| Rate | 10 requests a minute | Per address, burst 4, and at most 2 at once. |
| Body | 25 MB | nginx refuses a larger one before it reaches the process. |
| Concurrency | 2 at once, 1 redraw | Over that is a 503 saying we are busy, never a queue. |
| Reading a scan | 40 pages a day | Per address. Ten pages in one go, which is enough to finish a lease or a school letter. |
| Kept afterwards | nothing | A temp file, one process, and both are unlinked in a <code>finally</code>. The password is one argument and is never written down. |