Limits: how much you can submit¶
A key is held to daily and monthly counters, size caps per submission, and request rates per minute. Every number on this page is read from the definitions the service enforces.
These are the limits of the hosted API. Aurora Direct, the upload on the website, has an allowance of its own.
Quotas¶
Every approved account starts on the academic tier. Use is metered per key against that tier's counters, each over a calendar day or a calendar month in UTC. A request past a counter is refused, never delayed.
| Counter | Window | academic tier |
|---|---|---|
tiles |
day | 50,000 |
rows |
day | 200,000 |
jobs |
day | 5 |
jobs_month |
month | 30 |
A daily counter starts again at midnight UTC, and a monthly one on the first
of the month. A request past a counter answers
quota_exceeded, which names the counter, how
much of it is used and its window. A refused request charges nothing.
What charges what¶
Tiles and embedding rows are charged once, when an upload completes, from the count the service measured. A job is charged when a submission is accepted. Covariates charge nothing.
| Input kind | Counter | Charged |
|---|---|---|
patches |
tiles |
one per item |
embeddings |
rows |
one per item |
bulk_rna |
— | nothing |
tissue |
— | nothing |
disease |
— | nothing |
Sizes¶
Two caps apply to every submission. The item cap is the point above which a submission is refused. The upload cap is enforced before the bytes are written.
| Input kind | Item cap | Upload cap | Per-model bounds from |
|---|---|---|---|
patches |
50,000 | 2 GiB | card.input_spec |
embeddings |
50,000 | 256 MiB | card.input_spec |
bulk_rna |
— | 64 MiB | card.output |
Under the cap every item you send is read. No kind is sampled down to fit. Over it the submission is refused with payload_too_large, and the refusal names the count and the limit.
Check tile quality says how to bring a slide under the item cap. A model's card may set narrower bounds than these.
Request rate¶
A request with a valid key is limited per key, not per network address, so several clients behind one address are limited separately. A request without one is limited per address.
| Bucket | Limit |
|---|---|
read |
600 per minute |
write |
60 per minute |
submit |
10 per minute |
Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. A 429 or a 503 also carries Retry-After.
Read the headers rather than estimating
When a bucket is exhausted the response is
rate_limited. Wait the seconds in
Retry-After, then retry: a refused request spends nothing.
Your place in the queue¶
The job response reports your queue_position and eta_seconds.
Use these to follow progress, and respect the polling interval Aurora returns.
When the queue is full, a submission answers
queue_full. Nothing is charged and no job is
created.
Ask for more¶
If you would like to analyse more, get in touch and tell us a little about your project. We can discuss the appropriate route for your work.