Errors
Errors use the OpenAI envelope. Branch on code, not on the message.
json
{
"error": {
"message": "Offers for deepseek-ai/DeepSeek-V4.1-Flash exist, but none match your routing policy.",
"type": "api_error",
"code": "no_eligible_offers",
"rejected": [{ "offer_id": "off_…", "seller": "s_7f3a", "reason": "verification_below_policy" }]
}
}| code | Meaning |
|---|---|
invalid_request | Malformed body, bad parameter, or an unknown policy-path token. |
unauthorized | Missing or invalid API key / session. |
forbidden | Authenticated, but not allowed to do this. |
not_found | No such resource. |
insufficient_balance | Your balance can't cover the call. |
budget_exceeded | A key budget (daily or monthly) is used up. |
key_frozen | The anomaly guard froze the key. Unfreeze it in the dashboard. |
no_offers_for_model | Nobody sells this model right now. |
no_eligible_offers | Offers exist, but your policy excluded all of them. Includes rejected. |
upstream_failed | Every attempt failed. You were not charged. |
rate_limited | Too many requests. Back off and retry. |
not_configured | A feature (e.g. card payments) isn't enabled on this deployment. |
conflict | The request conflicts with current state. |
HTTP status codes follow the usual meanings; the code field is the contract.