Skip to Content
IntegrationRate limits & quotas

Rate limits & quotas

Per-tier request ceilings, uniformly enforced across REST, MCP, and the CLI. Limits protect the substrate from unintentional runaway loads and give the platform predictable capacity headroom — they are not a monetisation gate.

Per-tier ceilings

TierSustainedBurst (10s window)Notes
Guest (L1 · Starter)10 req/s40 req/sReads and low-risk tool calls
Host (L2 · Team)60 req/s240 req/sWrites within own org
Architect (L3 · Enterprise)600 req/s2,400 req/sSubstrate mutation

Bursts above the sustained ceiling are allowed for a short window (4× the sustained rate for 10 seconds). A pipeline that uses the burst window and returns to below sustained will not see any 429s.

How limits behave under load

When your operator identity hits the sustained ceiling, subsequent requests return HTTP 429 with a Retry-After header. The 429 body carries the standard error envelope, including the specific policy id that refused the call and the audit-chain entry that logged it.

{ "code": "policy.refusal.rate_limit_exceeded", "message": "Sustained rate exceeded for Host tier.", "policy_id": "RATE-LIMIT-HOST-SUSTAINED", "audit_event_id": "evt_01H8YMK7ZQV3D4XCJ9RM8W2N5T", "retry_after_seconds": 3 }

The refusal itself lands in the audit chain — every 429 is a distinct chain entry. Repeated 429s from one operator are legible to their compliance officer.

Raising a limit

For a workload that legitimately exceeds the tier ceiling — a batch import, a migration, an integration test suite — ask enterprise@nebbos.ai for a dedicated quota. Substrate-side lifting is per-identity and per-operation-category, so a bulk read allowance does not open the door to a bulk write path.

Where limits do not apply

Local operations that never cross the wire — MCP discovery reads served from the local cache, audit-chain verification of a locally-held segment — are not rate-limited. Limits only apply to substrate-touching calls.