Skip to content
llms.party

Errors & limits

Errors use the OpenAI error object, so SDKs surface them the same way:

{
  "error": {
    "message": "Invalid proxy server token passed.",
    "type": "auth_error",
    "code": "invalid_api_key"
  }
}

Status codes

StatusUsually meansWhat to do
400Malformed JSON or a required field missing.Fix the request body.
401Missing, malformed or revoked key, or the key lacks this group.Check /v1/models; ask for a key.
403Blocked at the edge because the path is not on the client allow-list.Use /v1/* or /health/*.
404Unknown route; the edge exposes only /v1/* and /health/*.Check the path.
422Validation failed, or the key is over budget.Inspect error.message; top up.
429Key or upstream rate limit.Back off and retry.
500Internal proxy error.Retry once; report with a request id.
502/503Upstream provider error or no healthy upstream.Retry; fallback may already have run.
504Upstream timed out (router timeout is 600 s).Stream, or lower max_tokens.

Retries and fallbacks

The router retries a failed call twice and falls back from deepseek-v4-pro to deepseek-flash. Retries are automatic but not infinite. If a provider is down and the fallback also fails, the client sees the upstream status.

Budgets

A key's budget is checked before each request. Text tokens and video jobs both consume it. The check has no reservation for in-flight work: video tasks are charged when they report cost, so concurrent creates can overspend before the next call is rejected. Once the budget is exhausted the key fails every call, including GET /v1/videos/{id} for a job it already created. Budget the whole job lifecycle, not just creation.

What is public

Only the client API (/v1/*) and the health probes are public. Admin and console paths are blocked at the edge. A client never needs them; spend is tracked against the key's budget.

curl -sS "https://llms.party/health/readiness"