Appearance
Limits
Every limit is enforced server-side and scope-labeled. Two kinds exist: plan limits, which differ by plan, and fixed bounds, which are the same for everyone.
Plan limits
| Limit | Scope | Starter | Pro | Business |
|---|---|---|---|---|
| Spools | account | 1 | 5 | 5 |
| Replicas | spool | 1 | 2 | 3 |
| Queues | spool | 1,000 | 10,000 | 100,000 |
| Stored messages | spool | 50,000 | 100,000 | 150,000 |
| Stored payload bytes | spool | 1.5 GiB | 3.1 GiB | 4.6 GiB |
| Retention cap | queue | 7 days | 14 days | 30 days |
Replicas is the number of nodes holding the spool's data, primary included: a single replica is a single copy; with more than one, losing a node makes another the primary with every stored message intact — see Delivery.
Stored messages and payload bytes count everything on the spool: visible, delayed, pending, and failed messages across all queues. When either cap is reached, sends fail with 507 kind spool_full — backpressure, not billing: receive and ack (or delete queues) to make room, then retry.
The queue limit refuses Create a queue with 403. The retention cap bounds what retentionSeconds a queue may set: asking for more fails with 403 kind retention_limit, and the applied value is always visible as the queue's read-only effectiveRetentionSeconds.
Fixed bounds
| Bound | Scope | Value |
|---|---|---|
| Message size | message | 64 KiB |
Send delay (Spooler-Delay) | message | ≤ 168h (a week) |
Receive long-poll (wait) | request | ≤ 20s |
| Lease timeout | queue | ≤ 1 year; 0 disables; default 5m |
| Max retries | queue | ≤ 65,535; default 10 |
| Dedup window | queue | ≤ 300s; default off |
| Dedup key | message | 1–128 printable ASCII chars |
| Retention | queue | ≥ 60s; capped by plan |
| Receive rate limit | queue | optional; sustained at most 100 msg/s (interval ≥ 10ms) |
| Spool and queue names | name | 1–64 chars matching ^[A-Za-z0-9_:-]+$ |
| Queue listing page | request | ≤ 1,000 queues; default 100 |
A message over the size limit fails with 413 kind payload_too_large before the body is read.
Queue settings left unset take server defaults; the values in force are returned by List queues.
Request rate
A flat per-account request-rate cap applies across all operations — the same for every plan. Exceeding it fails with 429 kind rate_limited and a Retry-After header naming the seconds to wait.

