Limits
Every ceiling the API enforces, with the value it enforces today and what you get when you reach it. The figures on this page are read from the gateway as it renders.
The limits
Each limit is keyed on your own account, key or address. Whatever anyone else is doing, staying under these means you are never refused for capacity.
| Limit | Value | When you reach it |
|---|---|---|
| Inference requests per minute, per API key | 1,200 | 429 rate_limit_error with Retry-After. |
| Batch submissions per minute, per account | 1,200 | 429 rate_limit_error with Retry-After. |
| Order reads and cancels per minute, per account | 2,400 | 429 rate_limit_error with Retry-After. |
| File uploads and reads per minute, per account | 1,200 | 429 rate_limit_error with Retry-After. |
| Public requests per minute, per address | 600 | 429 rate_limit_error with Retry-After. |
| Open market streams, per address | 5 | 429, and the stream is refused. Close one to open another. |
| Queued orders, per account | 2,000 | 429 rate_limit_error. Counted across every market. Batch lines have a cap of their own in this table. |
| Request body | 8 MB | 413. |
| Result downloads per hour, per account | 4 GB | 429 rate_limit_error with Retry-After. One download may finish past the line; the next waits. |
| Active API keys, per account | 50 | 403 when making another. Revoke one first. |
| Order timeout | 10 seconds to 30 days | A max_wait below the floor is raised to it; above the ceiling it is refused with 400. |
| Price lock execute window | 10 seconds | A locked request that has not started by then cancels with 429 capacity_unavailable. Nothing is charged. |
| Batches running at once, per account | 5 | 429 rate_limit_error on the next create, with Retry-After. |
| Queued batch orders, per account | 5,000 | The batch stays in validating and fans out the rest as lines finish. Never an error. |
| Requests per batch input file | 10,000 | The batch fails validation, with the count in its error. |
| Batch input file size | 50 MB | 413 on upload. |
| Data storage, longest period | 30 days | 400 on the setting. A per-request retention_days is clamped to the account setting. |
| Data storage, total size | 100 GB | The oldest stored bodies are deleted to make room. Never an error. |
| Shortest time batch output is kept | 1 day | A floor rather than a limit: batch output is kept at least this long whatever your storage setting. |
| Top-up | $5 to $10,000 | 400 on the top-up form. |
What is a limit and what is the market
A request that waits because the level is above its max price has hit no limit. It is in the book, and it runs when the level falls to its price, until your timeout. The rows above are the constants; the wait is the product.
Two refusals look like limits and are the market instead: 402 when your balance cannot cover a request at the current level, and 429 capacity_unavailable when a price-locked request misses its window. Neither is charged, and both are on errors and retries.
Reading them from code
GET /v1/limits needs no key and answers with every figure above, so a client can pace itself instead of learning a ceiling from a 429.
curl https://api.openfill.ai/v1/limitsTo request a higher limit, email [email protected] with your workload and the limit concerned. Each request is reviewed individually.