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.
| Status | Meaning | Fix |
|---|---|---|
400 Bad Request | A required field is missing. The x402 and /api/v1/chat/completions routes require encryptedPrompt and model. | Send every required field. |
401 Unauthorized | The 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 Required | insufficient_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 Conflict | already_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 Requests | guest_limit: a guest with no Authorization header used all 5 sealed calls for the day. | Sign in, or send an API key. |
403 Forbidden | Which endpoints return 403, and when, is not determined. The API-key check itself returns 401, not 403. | Not applicable. |
502 TEE unreachable | The backend could not reach the enclave. | Retry. If it persists, the enclave is down. |
503 TDX quote unavailable | The enclave is up but could not produce an attestation quote. | Retry. The reply path still works; only the quote is missing. |
503 billing_unavailable | POST /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.
POST /tee/process
Send one sealed prompt to the Intel TDX enclave. The route the web chat, the SDK, and the MCP server's encrypted_chat use. Each call costs one unit from a plan, free messages, or USDC balance.
Quote a private swap
Price a private swap before executing it. Returns the expected output after Solrouter's spread plus anonymity-set guidance: whether the amount snaps to a standard denomination bucket (strong privacy) or is an off-bucket amount with a unique on-chain fingerprint.