Skip to main content
API
  • GET /v1/models accepts an x-naga-supported-endpoint header. With chat.completions it lists only the models that serve Chat Completions, and a name no model serves returns an empty list. Without the header the list is unchanged. The LibreChat guide uses it to load chat models automatically.
  • GET /v1/models without a key and GET /v1/startups may be cached for 60 seconds and served for 60 more while the cache refreshes. A catalog change shows within two minutes. A request with a key is never answered from cache: an invalid key gets 401, and an account with no balance sees only :free models.
API
  • Tool calling works across turns on Gemini 2.5 models. Before, the request that carried a tool result failed with 400.
  • Gemini 2.5 Flash Lite accepts every reasoning_effort. It reasons only at high, so low and above run as high, and none and minimal run without reasoning. Gemini 2.5 Flash runs medium as high. Both failed with 400 before.
  • A provider that no longer serves a model moves the request to another provider. Before, some of these returned 400 with Upstream returned an error:.
  • Fewer 400 errors on Claude models: NagaAI removes trailing assistant messages and empty user messages where the provider rejects them.
  • max_tokens works on gpt-6-* models in Chat Completions.
APIDocs
  • PDFs and text files reach every model that accepts files. Models without native file input receive the text of the file.
  • file_url works on every model in Chat Completions and Responses, and url sources work for documents in Messages.
  • A file_id fails with 400 file_id_unsupported, and an item_reference in Responses fails with 400; NagaAI used to drop it.
  • Text to speech returns 400 for a response_format the model cannot produce.
  • /v1/messages accepts mid-conversation role: "system" messages with text content. Claude Code sends them on its first request.
  • A provider failure inside a stream, before any content, moves the request to another provider. If every attempt fails, you get the generic 503.
  • A provider’s rejection inside a stream arrives as 400 invalid_request_error with Upstream returned an error: in front of its text.
  • NagaAI no longer returns 502. A request no provider could serve returns 503.
  • Image, audio, embedding and moderation endpoints report provider errors like the chat endpoints: a generic 503, 400 with Upstream returned an error:, or 400 with Request rejected by upstream content moderation. (was 403 inappropriate_content).
  • /v1/messages uses Anthropic error types by status: authentication_error, billing_error, not_found_error, rate_limit_error.
  • A function_call_output without its function_call fails with 400 tool_output_unmatched. A language that is not an ISO 639-1 code fails with 400 on transcriptions. days outside 1 to 30 on /v1/account/activity fails with 400 instead of 500.
  • /v1/models no longer lists web_search_options, functions, function_call, logit_bias, logprobs or prediction in supported_parameters: NagaAI does not pass them to any provider.
  • json_object works without the word “json” in the prompt.
  • Responses output lists reasoning before the answer.
  • /v1/responses carries Codex CLI’s tool formats: freeform tools such as apply_patch, MCP tools grouped by namespace, and the compact tool list of gpt-6-* and gpt-5.6-*.
  • The API reference documents the x-naga-routing-strategy request and response header.
  • An unknown default_routing_strategy in POST or PATCH /v1/account/keys now fails with 400 instead of 500. The response to POST /v1/account/keys includes default_routing_strategy.
  • This documentation was rewritten against the current API. New pages: Routing, Differences from OpenAI and Anthropic, Limits.
Billing
  • Crypto top-ups go through CoinGate: BTC, ETH, USDC, SOL and other coins. USDT is not accepted there.
  • The legacy crypto method with USDT and 200+ coins stays available to accounts that have paid $1,000 or more in total.
Billing
  • Card and PayPal payments add credits only when the payment completes. A refund or chargeback removes the credits it paid for.
  • Bank debit methods such as SEPA are no longer offered at checkout.
APIRouting
  • Routing strategies: reliability, balanced, latency, throughput and cache. Set one in the routing body field, the x-naga-routing-strategy header or as a key default. The x-naga-routing-strategy response header names the strategy NagaAI used. See Routing.
API
  • NagaAI removes reasoning signatures issued by one provider before a request goes to another. Conversations with reasoning models no longer fail when the provider changes.
APIErrors
  • Errors come in three kinds. A provider failure moves the request to another provider, and if all fail you get a generic 503 or 502. A provider’s content filter returns 400 with code: "content_moderation". A provider’s refusal of a valid request returns 400 with Upstream returned an error: in front of its text.
  • NagaAI drops parameters a model does not list in supported_parameters before the request reaches a provider.
  • A conversation with a tool call and no matching tool result fails with 400.
APIPricing
  • An input the model cannot read, such as an image for a text-only model, fails with 400 unsupported_modality before it reaches a provider.
  • pricing in /v1/models has new units: per_input_audio_token, per_output_audio_token, per_input_audio_hour, per_output_audio_hour, per_output_text_token, per_input_text_character and per_output_text_character. per_audio_token is gone.
Pricing
  • NagaAI charges cached input tokens at per_cached_input_token on every model that has the price. Before, some models charged them at zero.
API
  • Every response from an API endpoint carries an x-request-id header. The same id identifies the request on the Logs page.
  • Response ids have the prefixes chatcmpl-, resp_ and msg_, and model always holds the catalog id.
  • A request body that stops arriving for 60 seconds, or takes longer than 15 minutes, fails with 408.
Models
  • dall-e-3 and dall-e-3:free left the catalog after OpenAI retired them.
APILimits
  • Request bodies are limited to 32 MiB and single inline files to 20 MiB. Larger requests fail with 413.
APIErrors
  • Validation errors return 400 invalid_request_error with a text message such as body.messages: ....
  • A model with no available provider returns 503 with No upstream available.
BillingLimits
  • NagaAI does not charge a request that fails before its answer reaches you.
  • A running paid request reserves 0.05 credits of the balance. A paid request with less than 0.05 credits left fails with 402.
  • max_tokens in Chat Completions works as an alias of max_completion_tokens.
API
  • Chat models that draw return images in all three chat formats: message.images in Chat Completions, image_generation_call in Responses and image blocks in Messages.
API
  • Chat Completions and Responses accept audio input on models that support it.
API
  • reasoning_effort is moved to the nearest level a model supports instead of failing.
DashboardPrivacy
  • Data logging (beta) on the Privacy page stores request and response bodies for 30 days and shows them in Logs.
API
  • /v1/models no longer has supported_parameters_by_endpoint. Use supported_parameters.