Solrouter
API

Errors

The HTTP status codes the Solrouter API returns, what each one means, and how to fix it.

Every endpoint returns standard HTTP status codes. The common ones are below. Endpoint-specific errors are listed on each endpoint's reference page.

StatusMeaningFix
400 Bad RequestA required field is missing. The x402 and /api/v1/chat/completions routes require encryptedPrompt and model.Send every required field.
401 UnauthorizedThe Authorization header is missing, or the key does not begin with sk_solrouter_. On POST /tee/process a missing header is a guest call instead, and only an invalid token returns 401.Send Authorization: Bearer sk_solrouter_....
402 Payment Requiredinsufficient_funds: your plan calls and free messages are used up and the USDC balance is below $0.02. Or the route is x402-paywalled, including the per-wallet /agents/v1 routes, and no payment or balance covered it.Pick a plan at solrouter.com (see Pricing), add USDC, or pay per call with x402 and retry.
409 Conflictalready_subscribed: the account already has an active plan.Cancel the current plan, then subscribe to the new one. The old plan keeps working until its paid period ends.
429 Too Many Requestsguest_limit: a guest with no Authorization header used all 5 sealed calls for the day.Sign in, or send an API key.
403 ForbiddenWhich endpoints return 403, and when, is not determined. The API-key check itself returns 401, not 403.Not applicable.
502 TEE unreachableThe backend could not reach the enclave.Retry. If it persists, the enclave is down.
503 TDX quote unavailableThe enclave is up but could not produce an attestation quote.Retry. The reply path still works; only the quote is missing.
503 billing_unavailablePOST /tee/process could not check billing and nothing else covered the call.Retry shortly. Nothing was charged.

Never expose your API key in client-side code or public repositories. Anyone with your key can spend your plan. If a key leaks, rotate it at solrouter.com/sdk.