Getting started
Rate limits
Per-workspace request rates, in-flight caps, and monthly quotas.
Limits apply per workspace, across all billable operations.
Request rate
| Plan | Requests per minute | In-flight retain/reflect |
|---|---|---|
| Free | 60 | 2 |
| Pro | 600 | 10 |
The per-minute limit is a token bucket, so short bursts above the sustained rate are absorbed. The in-flight cap bounds concurrent heavy operations (retain and reflect) separately.
Exceeding either answers 429 with a Retry-After header:
{
"detail": "rate limited",
"code": "rate_limited"
}Honor Retry-After and retry with backoff. SDK clients surface the header on
the raised error.
Monthly quotas
| Quota | Free | Pro |
|---|---|---|
| Retain operations | 1,000 | 50,000 |
| Recall operations | 5,000 | 50,000 |
| Reflect operations | 50 | 50,000 |
| Namespaces | 3 | Higher caps |
| Blob storage | 1 GiB | 50 GiB |
A request past an exhausted quota answers 402 before the request body is
even parsed. Every LLM-consuming path is metered, not just retain: file
uploads, document reprocessing, and connector ingestion meter as retain;
manual consolidation and automation refresh meter as reflect.
Usage is visible in the dashboard, and upgrading lifts the caps immediately.
Service backstops
Independent of plan limits, the service sheds excess load with 503 +
Retry-After rather than queuing, and any single request is bounded to 300
seconds. Treat 503 as retryable with backoff.