A 403 is never a credential problem here. On many APIs an authorization
failure arrives as a 401 and integrators rotate keys forever trying to fix it.
A 403 from this surface means your key is fine and lacks access to that
endpoint — so the fix is a conversation, not a new key.
Retrying a 429
Every 429 carries:Retry-After— seconds to waitX-RateLimit-Limit/X-RateLimit-RemainingX-RateLimit-Reset— epoch seconds
Rate limit
Rate limit
Short-window throttling. Honour
Retry-After and continue.Monthly request limit
Monthly request limit
Counts only your API-key requests, never our internal traffic.
X-RateLimit-Reset is the start of next month, UTC.Spend cap (`spend_limit_reached`)
Spend cap (`spend_limit_reached`)
LLM-backed endpoints stop at your organization’s spend limit rather than
billing past it. Raise the cap with us; retrying will not clear it.
Request IDs
Every response carriesX-Request-Id, and error bodies echo it as
request_id. Include it in any support request: it joins your call to our logs
and to the exact billing ledger row in one lookup.
You may also send your own X-Request-Id — 8 to 64 characters of
[A-Za-z0-9._-] — and we will echo it back.
Latency: measured, not promised
The p95 comes from upstream model throttling rather than our compute, which is
why it is quoted as an observation rather than a guarantee.

