Skip to content

Rate limits ​

Budgets are per resource, not per family: each endpoint family holds its own counter, so exhausting one leaves the others untouched. Each resource carries two fixed one-minute counters:

  1. A broad source-IP backstop, one hundred times the resource's ordinary budget, charged first by every request.
  2. The ordinary resource budget, 6,000 requests per minute by default. After credential resolution an accepted credential is keyed by its non-secret token identifier; a missing, malformed, unknown, expired, revoked or wrong-plane credential falls back to the source IP.
ResourcePer minuteWhy
Conversation, run and InferenceRequest events6,000Event replay and bounded polling; realtime subscriptions reduce polling demand
Store entries (profile, workspace, conversation)6,000Reads and writes share the budget
inference_requests6,000Every create plus bounded list and read polling
Executor claim status (GET)600Recovers missed cancellation for concurrent held claims; the claim POST has its own 6,000
Executor progress10,000Also one frame per key per 250 ms per kernel process; excess is acknowledged and dropped
Upload thumbnail and preview30Bounds derivative generation independently of upload reads
Everything else6,000Including inference_requests/input_estimate and cancellation

The default accommodates parallel agents sharing one credential; it is an admission budget, not a throughput guarantee. Neither key contains the raw Authorization header or secret, so header spelling variants share one budget and invalid values cannot create fresh buckets. Different valid credentials behind one NAT have independent ordinary budgets; an exceptionally large shared NAT may share the backstop.

Either exhausted counter returns:

json
{ "error": { "code": "rate_limited", "message": "…" } }

with 429 and Retry-After: 60.

Other fixed limits: ten model connection tests per human in three minutes; invitation email resends at least 60 seconds apart; a parked approval or question waits 24 hours; a device authorization lives 15 minutes and its polling at most 900 seconds; an authorization code five minutes; a password reset link 15 minutes.

Nexus is licensed O’Saasy. The rest of the repository defaults to MIT.