API
- Two kinds of chat request no longer fail with the provider’s
400on Gemini models. One ends with an assistant message to continue (prefill). The model now answers from scratch. The other is a tool schema whoserequiredlists a name missing fromproperties. See Requests NagaAI changes.
API
- A chat request whose input is longer than the model’s context window now fails with
400 context_length_exceededfrom NagaAI. The request no longer reaches a provider that would refuse it. With fallbackmodels, NagaAI sends it to the next model first. See Status codes.
API
- A chat request with
temperature: 0andtop_pbelow 1 no longer fails with the provider’s400on Mistral models. At zero temperaturetop_phas no effect, so NagaAI leaves it out there. See Requests NagaAI changes. - When a provider reports a rate limit or an account problem inside a stream, before any output, NagaAI now sends the request to another provider. Such a request used to fail with
400.
API
- Three kinds of chat request no longer fail with the provider’s
400. One is a user message with empty content. Another is a past tool call whoseargumentsisn’t a JSON object. The third is a tool schema with a type list or a numericenum. NagaAI converts each one for the provider. See Requests NagaAI changes.
API
POST /v1/embeddings,POST /v1/audio/speech,POST /v1/audio/transcriptions,POST /v1/audio/translationsandPOST /v1/moderationstake fallback models inmodels, up to three. When no provider of the model you asked for answers, NagaAI sends the same request to the next one. You pay only for the model that answered. See Fallback models.
API
POST /v1/videostakes fallback models inmodels, up to three. When no provider of the model you asked for takes the job, NagaAI sends it to the next one. You pay the price of the model that took the job. See Fall back to another model.
API
POST /v1/images/generationsandPOST /v1/images/editstake fallback models inmodels, up to three. When the model you asked for can’t make the image, NagaAI sends the same request to the next one. You pay only for the model that made it. See Fall back to another model.
API
- A chat request whose
max_tokensis above the most the provider returns in one answer no longer fails with that provider’s400. NagaAI lowersmax_tokensto the provider’s limit, and the answer can end withfinish_reason: "length". See Requests NagaAI changes.
Models
- Wan 3.0 and Wan 3.0 Prime edit and extend a clip you send. Pass the clip as a
video_urlininput_referencesofPOST /v1/videos, and say in the prompt what to change or what happens next. They also take up to tenimage_urlreferences for a character or a style. See Edit or extend a clip.
Integrations
- OpenClaw connects to NagaAI through the NagaAI provider plugin
@nagaai/openclaw-provideron ClawHub. It lists the NagaAI chat models with their context windows, reasoning support and prices, and sends requests to the Responses API. The hand-written custom provider entry is no longer needed. See OpenClaw.
APIDashboard
- An API key’s credit limit can reset every day, week or month. Set
credit_limit_periodtoday,week,monthorallwhen you create or change a key in the account API, or choose Resets next to the limit on API Keys. Periods run in UTC, and a week starts on Monday. Existing keys keepall, the limit that never resets. A key past a periodic limit fails with403credit_limit_exceeded, and the message says when the limit resets. See Limit spending per day, week or month.
Models
- A model whose requests are failing right now has a yellow or red dot next to its name. The dot shows in the catalog, on the model page and in the Playground model picker. Point at the dot to see the share of requests that succeeded in the last hour. Hide degraded models in the catalog filters lists only models without a dot. See Browse the catalog on naga.ac.
APIBreaking
- A model’s id is now the publisher’s slug, a slash and the model name, such as
anthropic/claude-opus-5.5.idinGET /v1/modelsandmodelin every response carry it. Code that comparesmodelin a response with a bare name needs the new id. Requests are not affected: a bare name such asclaude-opus-5.5and every alias still work, alone or after the slug. See Models. aliasesinGET /v1/modelsstarts with the bare model name. Each publisher inGET /v1/startupslists other spellings of its slug inaliases, such asalibabaforqwen, and a model id accepts them before the slash.- Meta’s slug is
meta.meta-llama/llama-3.3-70b-instructand the othermeta-llama/…ids keep working. - Model pages on naga.ac move to
naga.ac/models/<publisher>/<model>. Old addresses redirect to the new ones. - A chat request can list fallback models:
modelsin Responses and Chat Completions,fallbacksin Messages, up to three. When the requested model has no provider that can answer, or can’t take the request, NagaAI tries the next model in the list. The answer’smodelnames the model that answered, and you pay only for that one, at its price. See Fallback models.
Billing
- A crypto top-up now appears in the history on the Credits page as soon as you send the coins, with the status Processing. The credits arrive when the network confirms the payment, as before. Before, the top-up appeared only after the confirmation. See Balance, metrics and logs.
API
- Web search on Claude models now cites its sources. In Chat Completions they come in
message.annotations, and indelta.annotationswhen streamed. In Responses they areurl_citationannotations on the output text. Such a search usually runs once per question, so it costs fewer searches and input tokens than before. In Messages, aweb_searchtool withoutallowed_callersnow gets["direct"]. To let Claude filter results in code execution, sendallowed_callers: ["code_execution_20260120"]. Such a search returns no citations. See Web search.
Billing
- Each top-up paid by card or PayPal gets a paid invoice in PDF. Stripe emails it with the receipt to the address used for the payment. The Receipt link on the Credits page opens the invoice page. Top-ups paid before have a receipt only. See Balance, metrics and logs.
- The invoice and the Terms of Service name the seller: Artem Zhehlov, a sole proprietorship registered in Poland, with its address, NIP and REGON. The invoice charges no VAT and states the exemption it relies on. Prices stay the same.
- Auto top-up on the Credits page charges a saved card when your balance falls below a threshold you choose, so requests don’t stop. Each charge has its paid invoice. After three declined charges in a row, or a refund or dispute, it turns itself off. See Auto top-up.
- Companies can ask for higher limits or a bank transfer on the new Contact sales page. A top-up of $1,000 or more can be paid by bank transfer against an invoice. See Billing.
API
- An answer from a model that always searches before answering now carries its sources. In Chat Completions they come in
message.annotations, and indelta.annotationswhen streamed. In Responses they areurl_citationannotations on the output text. Before, these answers came without sources even when the model had searched. See Web search. - A streamed Chat Completions answer with web search now sends its sources. Each
url_citationcomes inchoices[0].delta.annotationsof its own chunk, with the samestart_indexandend_indexas inmessage.annotationsof a non-streaming answer. Before, only a non-streaming answer had sources. See Web search. - A stream that stops before the end of the answer reaches NagaAI now ends with an error event in Chat Completions, Responses and Messages. Before, Chat Completions closed it with
data: [DONE]and nofinish_reason, and Responses and Messages closed the connection without an end event. See Errors in a stream. - On Gemini models, the reasoning item of a Responses answer now comes before the function call or message it belongs to. Before, it could come after them, and a conversation that sent the output back with
store: falsefailed on its third turn withUpstream returned an error: Model turns with thought summaries must start with a thought block. - A video job whose input the provider refuses, such as a frame or reference link it could not download, now fails with
error.typeinvalid_request. Itserror.messagegives the provider’s reason afterUpstream returned an error:. Before, such a job failed asupstream_errorwith a general message. The job still costs nothing. See Video generation.
API
POST /v1/videosacceptsinput_references: images and videos the clip should follow, in the same form as OpenRouter’s Videos API. A model lists how many references of each type it takes in itsinput_referencesparameter inGET /v1/models. A request with references goes only to a provider that accepts them, and a model that takes none answers400invalid_request_error. See Video generation.- A video request goes only to a provider that can make the clip it asks for, such as both frames or a silent clip. Before, such a request could reach a provider that refused it. When no provider of the model can make it, the request fails with
400invalid_request_errorthat names the parameter, and no provider is called. See Video generation.
Dashboard
- Organizations have a Billing role. A person with it adds credits, opens receipts and sees Metrics, but can’t open API Keys, Logs or Privacy. Admins give the role when they invite someone or in the members list. See Share a balance in an organization.
- In an organization, a member sees and changes only the API keys they created. Admins see and change every key. Keys created before this change are visible to admins only. Before, every member could see, edit, disable and delete all of the organization’s keys. See Share a balance in an organization.
- When a person leaves an organization or an admin removes them, NagaAI disables the keys they created in it and moves them to the admins. An admin can enable a key that a service still needs.
- The API keys list shows when each key last made a request, by UTC day. A key you no longer use is easy to find and disable. See API keys.
- Each top-up paid by card or PayPal on the Credits page has a Receipt link. It opens the payment’s receipt from Stripe in a new tab, with any refund on it. The short top-up ID column is gone. See Balance, metrics and logs.
- Credits that NagaAI support adds to your balance show Granted as their method. Before, the method was a dash.
- When the payment page can’t be opened, Add credits says so and suggests another payment method. Before, it showed the payment processor’s error text.
API
- A request that forces web search with
tool_choicenow fails when no provider can search. It gets400invalid_request_errorif the model has no provider with search, and503if those providers can’t answer right now. Before, NagaAI answered it without searching. A request that doesn’t force the search still gets an answer without it and thex-naga-dropped-tools: web_searchheader. See Web search. - A streamed answer with web search now starts once the search is done, or after 15 seconds of searching. If the provider fails before the answer starts, NagaAI sends the request to another provider. Before, the stream ended with an error.
Billing
- Web search now costs 0.005 credits per search, $5 per 1,000, on top of the tokens, on every paid model. Before, you paid only for the tokens. A failed search and a model that answers without searching cost nothing, and
:freemodels don’t charge for search. Each request lists its searches as Web search calls in its cost on the Logs page. See Web search.
API
web_search_optionsin Chat Completions now turns on web search, the same searchweb_searchgives in Responses, withsearch_context_sizeanduser_location. Before, NagaAI dropped it. When the provider returns sources, a non-streaming answer lists them inmessage.annotations. NagaAI bills each search as in Responses. See Web search.- The Chat Completions request schema no longer lists
logit_bias,predictionandimage_config. NagaAI never passed them to a provider and still accepts and drops them, so requests that send them work as before. See Chat Completions.
Dashboard
- With data logging on, a video request on the Logs page shows its prompt. Its details play the finished clip for the 7 days NagaAI keeps the file. Before, video requests showed that the content was not stored. Videos generated before this change have no stored content. See Balance, metrics and logs.
API
- A request goes only to a provider that accepts the values it sends for a
limitedparameter inGET /v1/models, such as the number ofstopsequences. Every provider of a model may limit a parameter so that none accepts your value. Then the request fails with400invalid_request_errorthat names the parameter, and no provider is called. See Differences from OpenAI and Anthropic. - A provider that accepts only some levels of
reasoning_effort, or no JSON schema inresponse_format, now serves the other values too. NagaAI sends the nearest level the provider has, or moves the JSON schema into the prompt.reasoning_effort: "none"still goes only to a provider that can turn reasoning off.GET /v1/modelslists these converted values among the values alimitedparameter takes. See Models.
Dashboard
- The model catalog filters context length and input price per 1M tokens with two sliders, each from a low to a high value.
- On a phone, model cards in the catalog show the context window and the tokens a model processed.
- Questions about a model on its page are collapsed, and each answer opens with a click.
- On a wide screen, dashboard pages use more of the width, up to 1280 pixels of content, and Logs uses the whole width.
- The catalog filter panel shows how many filters are on, with a Clear button. Clear, and Reset filters on a phone, keep the chosen model kind, the search and the sort order.
API
- The
video_generationoperation inGET /v1/modelsnow listslimits.max_wait_seconds: how many seconds a job of that model may run before it endsfailedwitherror.typetimeout. The video parameters and prices do not change. See Models.
API
primary_operationinGET /v1/modelsis now the job the catalog states as the model’s main one. Before, it was the first served job in a fixed order.operationslists the jobs the catalog states for the model that a provider serves right now. Today every model keeps the sameprimary_operationandoperations. See Models.
Dashboard
- A chart above the Logs table shows the requests of the period over time, colored by outcome, under the same filters as the list. A click anywhere on a row opens its details, and so do Enter and Space on a row. See Balance, metrics and logs.
Dashboard
- Videos that are still being generated show in an In progress strip above the Logs table, with their stage, length, resolution and time so far. A finished video leaves the strip and appears as a row. See Balance, metrics and logs.
Dashboard
- The request panel on the Logs page is wider and steps to the previous or next request. A streamed answer shows its first token time and output speed at the top, and Timing draws them as bars. Prompt opens the conversation in a large window with search, a role filter and copying. See Balance, metrics and logs.
Dashboard
- The Metrics page puts what adds up across model types first: spend, requests, error rate and models used, with spend stacked by type. Each type follows in its own tab with its latency, its tokens for chat and its usage in the unit it bills. The top models and API keys open their requests on the Logs page. See Balance, metrics and logs.
Dashboard
- Request details on the Logs page open in a panel on the right, and the page address keeps the open request. The panel shows how the cost was calculated and the timing of a streamed answer. It also shows what the request asked for, such as the image size or the video resolution. With data logging on, it shows the conversation instead of raw JSON, and Download JSON saves the raw bodies. See Balance, metrics and logs.
Dashboard
- The Logs page shows every kind of model in one table: time, model with an icon for its kind, usage, duration, cost and API key. A request that did not succeed carries an Error, Canceled or Cut off tag before the model. Usage reads what you sent on the left of the arrow and what the model returned on the right, in the unit it bills. New filters narrow the list by period, kind, model, key, outcome and request ID, and the page address keeps them. Export applies the same filters. See Balance, metrics and logs.
API
operations[].parametersinGET /v1/modelsnow lists only the request fields NagaAI checks when it picks a provider. For chat these aretemperature,top_p,top_k,frequency_penalty,presence_penalty,stop,tools,web_search,tool_choice,parallel_tool_calls,response_format,reasoning_effortandmax_completion_tokens. Names that some providers declare but that NagaAI does not pass on,image_configon chat andbackgroundon image generation, no longer appear. Requests work as before. See Models.
API
- A parameter in
operations[].parametersofGET /v1/modelscan now carryminimum,maximum,maxLengthandproperties, andx-supportcan belimited. Alimitedparameter always states its bound: for example,"stop": {"x-support": "limited", "type": "array", "maxItems": 1}takes one stop sequence. When several providers serve a model, the description accepts every value at least one of them accepts. See Models.
Dashboard
- A new Security and data page explains how NagaAI stores API keys and which request data it keeps and for how long. It also covers training on requests, where NagaAI servers run and how to report a vulnerability. About now lists support contacts and the status page.
- The model catalog filters by context length and by input price per 1M tokens.
- Each model page on naga.ac ends with questions and answers about the model and up to six related models. The answers cover price, context window, tool calling, inputs and outputs. Pricing, performance and uptime now come first.
- On a phone, the bar with Compare and Try in Playground no longer covers the text or the footer of a model page.
- In the dark theme, red buttons and error text, such as Close account in account settings, are easier to read.
Dashboard
- The Logs page shows each request’s usage in the unit its model bills: tokens for text, images for image models, seconds for video. Request details end with Charges: each billed unit with its quantity, unit price and amount. The Metrics page adds Usage by unit, the total of each unit and its cost for the period. See Balance, metrics and logs.
Dashboard
- The naga.ac home page now leads with what NagaAI offers. It shows each kind of model with its popular models, and how routing picks a provider. Flagship models from the leading labs list input and output prices next to the lowest price elsewhere. Below them are the three chat formats with integration guides, the steps to a first request and the latest blog posts.
API
whisper-large-v3-turbono longer serves/v1/audio/translations: its provider does not translate, and such a request failed with400. Usewhisper-large-v3for translation. Transcription withwhisper-large-v3-turbodoes not change. See Speech to text./v1/audio/speechtries another provider when the first one sends no audio. Before, such a request failed with503. See Text to speech.- A request with web search in Responses or Messages now goes first to the providers that can search for the model. Before, such a request could reach a provider without search, and the model answered without searching. If no provider with search can answer, the request is served without search, and the
x-naga-dropped-tools: web_searchresponse header says so. Models that can search listweb_searchin the parameters of their operation inGET /v1/models. See Web search. - A file part sent to a model whose provider has no file input now reaches the model as the file’s text. Before, some providers of
gpt-oss-120banswered400on Chat Completions and Responses. See Images and files.
Docs
- New integration guide: Hermes Agent by Nous Research connects to NagaAI as a named provider on the Responses API.
- Integration guides now set up the Responses API or Messages wherever the tool offers them. That changes OpenCode, Kilo Code, OpenClaw, Open WebUI, LangChain and the Vercel AI SDK. Cline, Continue and LibreChat still use Chat Completions, and each page says why.
- Six chat features now have one guide each under Guides: streaming, tool calling, structured outputs, reasoning, images and files, and conversation state. Each guide shows Responses, Chat Completions and Messages in tabs. These guides replace 20 pages: the feature pages and the per-format pages under API guides. Old links redirect to the new guides. See Streaming.
- Billing now holds the usage fields of all three formats, and the separate Tokens and usage page redirects there. Routing, Differences from OpenAI and Anthropic, Errors and Limits are rewritten to lead with what you need to do. The production checklist moves to Guides and gives the reason for each item. See Billing.
- The home page and Get started are rewritten. The home page sends a first request and links to the next pages, and How NagaAI works redirects there. Choose an API compares the three chat formats side by side, and the Quickstart shows the answer you should see. See Quickstart.
- The account, product and integration pages are rewritten around tasks. Each integration page lists what you need, the steps, a check and the errors you may hit. Page addresses stay the same.
- The media guides moved to
/guides: Image generation now includes image edits, Text to speech, Speech to text, Video generation, Embeddings and Moderation. Every old address redirects to its new page, and each guide ends with the errors you can meet and how to fix them. - Differences from OpenAI and Anthropic now says that image links from
/v1/images/generationsand/v1/images/editsexpire after 24 hours, as the image guide does.
Billing
- Some providers return an image from
/v1/images/generationsor/v1/images/editswithout a token count. Such an image now counts at the model’s published count for its resolution. That is 1290 output tokens forgemini-2.5-flash-imageand 1120 for a 1K or 2K picture fromgemini-3-pro-image. A picture fromgemini-nano-banana-2.1counts 1120, 1680 or 3780 tokens at 1K, 2K or 4K. A model whose publisher gives no such count keeps 2048 per image. Seeusage.output_tokensin the API reference.
API
operations[].endpointsinGET /v1/modelslists every endpoint that serves the job. A chat model now listschat.completions,messagesandresponses, andx-naga-supported-endpoint: messagesorresponsesreturns the chat models. See Models.
Dashboard
- The naga.ac header links to Pricing and has a Sign up button next to Sign in. Model search opens with ⌘K or Ctrl+K from any page. Links to any naga.ac page now show a preview image in X, Slack and Discord.
- The naga.ac footer groups its links into Product, Developers, Company and Legal, and links to the API reference, this changelog and the status page. On Apps, the API base URL sits in a field with a Copy button.
- naga.ac serves llms.txt for AI assistants, a security.txt with a contact for vulnerability reports, and an RSS feed of announcements. Ended promotions are marked Ended.
- The model catalog opens faster: it shows the first 40 models and adds more as you scroll.
- Pricing lists prices of popular chat, image, video and speech models, with the market price struck through where it is known. Each kind links to the catalog sorted by price.
- Model pages on naga.ac add a Messages tab with the Anthropic SDK to the code samples of chat models.
- The Playground shows the price of the selected model next to the model picker. Chat, speech and transcription parameters stay open in a panel on wide screens. A new room offers example prompts for each mode.
- Code samples on naga.ac now open on the Responses API. This covers the home page, the API section of a model page and the first request of a new key. Chat Completions stays the second tab on model pages, and every model on Chat Completions serves Responses too. The Quickstart, the Playground API window and the guides open on Responses as well.
- The Playground header shows the market price struck through next to the NagaAI price, as model pages do.
- Compare shows the market price struck through next to the NagaAI price, as model pages do. Gray text in the light theme is darker, and code samples use GitHub’s current light palette, so both read at WCAG AA contrast.
- The dashboard groups its sections into Billing, API, Usage and Settings. On Credits, the top-up button is now Add credits, and the history shows the payment method and any bonus credits. See Account and organizations.
- The API Keys page shows usage and limit in their own columns and one status per key: disabled, expired or limit reached. See API keys.
- The Metrics page opens on four totals for the period, and each chart names its series. Spend by publisher, API key and model shows each amount in full. See Balance, metrics and logs.
- The Logs page shows each request’s time to the second and its tokens as input → output in one column. The arrow at the end of a row opens its details, and on a phone requests appear as a list. See Balance, metrics and logs.
- The Provisioning Keys page shows when each key was last used. See Authentication.
- The Referrals page shows your rate with the referrals left to the next one, and the full rate ladder under your link. See Account and organizations.
- The Account page lists Google, GitHub and Discord under one Sign-in methods list with Connect and Disconnect. Security shows whether two-factor authentication is on and sets it up in four short steps. See Account and organizations.
- The Privacy page groups the training settings under Training. See Privacy and logging.
- The Organization page lists members with their role and join date, and admins change a role right in the row. Invitations shows how long each invitation still works. See Account and organizations.
- The Sign in and Sign up pages put Google, Discord and GitHub first, then email. A link under the form switches between a password and a sign-in link by email.
- The documentation follows the light or dark theme of your system and shares the colors of naga.ac. Its header links to the Dashboard. The API reference opens code samples on Python.
- Code samples in the guides read the key from
NAGA_API_KEY. The API reference, the Playground and the site use the same variable. If you copiedNAGAAI_API_KEYfrom a guide, rename it in your environment. - Pricing shows Free and Pay-as-you-go side by side, then the full comparison and the questions as a list. The plans and their terms stay the same.
APIBreaking
GET /v1/modelsdescribes a model by what it does. Each entry ofoperationscarries itsendpoints, itslimitsand itsparameters;primary_operationnames the main one. See Models.context_windowmoves tolimits.context_windowof thechatoperation, andmax_output_imagestolimits.max_imagesof the image operations.supported_parametersgives way toparameterson each operation: one entry per request field, described in a subset of JSON Schema withx-support.pricingis a list of rows withmeter,unit,priceandconditions.per_input_tokenbecomes the row withmeterinput_token, and so on for every meter;priceis a decimal string. Every price keeps its value.- Video models list a row per second for each resolution and sound setting they sell, with the setting in
conditions. NagaAI removesGET /v1/videos/models: thevideo_generationoperation inGET /v1/modelsholds the values each model accepts. supported_endpointsgives way tooperations[].endpoints, which lists the same names. Thex-naga-supported-endpointheader filters on them.
Dashboard
- naga.ac/models shows the cheapest price elsewhere, struck through, next to the NagaAI price for chat and embedding models where it is higher. See Models.
- A new API key opens with a ready first request in Python and cURL to the newest
:freechat model, the key already filled in. See API keys. - Video jobs appear in Logs and Activity once they end. A completed job shows its charge, and a failed job shows its error with no charge. A job’s latency runs from the
POSTto the end of the job. - The Playground generates video. You pick the length, resolution, aspect ratio and sound, and see the price before you start. Models that take a start or end frame accept one from your files.
API
GET /v1/modelslistskindsfor every model: what kind of model it is, such aschat,imageorvideo.operationslists each job the model does, such asimage_generationorimage_edit, with the endpoints that serve it. Existing fields keep their values. See Models.GET /v1/modelslists the price of a video model aspricing.per_output_video_second: one second at the model’s cheapest resolution and audio setting.GET /v1/videos/modelsprices each combination.- Image models receive
qualityandbackgroundon more providers, in the values each model lists. NagaAI drops a value the model does not list. - Image edits on more providers drop
qualityandbackgroundwhere the provider has no field for them, instead of failing with400. - In
/v1/audio/translations,languagenames the language of your audio, and the translation is into English. Before, one provider readlanguageas the language to translate into.
API
- Video generation:
POST /v1/videosstarts a job and answers202,GET /v1/videos/{id}reports its status, andGET /v1/videos/{id}/contentdownloads the MP4 for seven days after the job completes.GET /v1/videos/modelslists the video models, the values each accepts and the price per second. See Videos. - NagaAI holds the full price of a video job on the balance while it runs and charges it once, when the clip is ready. NagaAI does not charge a failed job.
- More speech models serve
/v1/audio/speech, among them MiniMax Speech 2.8, Chatterbox and Gemini 3.8 Flash TTS. Each model receives the text, voice,speed,instructionsandresponse_formatin its own fields. A model ignores a parameter it has no field for. An OpenAI voice name the model does not know runs as the model’s default voice. - Speech-to-text models receive
languagein the field each model expects. Before, ElevenLabs Scribe ignoredlanguage, and NVIDIA Nemotron ASR failed. - Gemini 3.5 Transcribe serves
/v1/audio/transcriptions. NagaAI sendslanguageas the model’s language hint. The model has no slot forprompt, so NagaAI drops it. - Qwen-Image 2.1 Pro and Turbo serve
/v1/images/generationsand/v1/images/edits. NagaAI fitssizeinto the model’s range with its aspect ratio kept. Annabove the model’s limit runs as several calls. These models have nomask, so NagaAI drops it, and the prompt carries the edit. - Ideogram Vector models return SVG through
/v1/images/generationsand/v1/images/edits. Withresponse_format: "url", a browser that opens the link downloads the SVG file. - HiDream O1 Image, Vidu Q2 reference-to-image and Ideogram V3 Character receive your images in the field each model requires.
- Ideogram V3 Remix and Edit serve
/v1/images/edits. Ideogram V3 Edit needsmask, and NagaAI returns400without one. - GLM-Image serves
/v1/images/generations. MiniMax image-01 serves/v1/images/generationsand/v1/images/edits, where your images are the character to keep. - Kotoba STT receives a
languageit lists, or detects the language itself. Before, a language outside its list failed. - Token arrays in
/v1/embeddingswork on more providers of OpenAI embedding models. NagaAI decodes them withcl100k_basefor a provider that takes text only. - On more speech-to-text providers NagaAI drops
promptwhere the provider has no field for it, instead of failing. response_format: "pcm"returns raw 24 kHz, 16-bit mono samples on every speech model. Voxtral models returned 32-bit float samples before. NagaAI bills speech inpcmby its length, the same as the other formats.
API
- Image models such as FLUX.3, Bria FIBO and Ideogram receive the prompt, size and reference images in the fields each model expects. Bria FIBO edit models now receive your prompt; before, NagaAI sent it in a field these models ignore.
- Image edits check the number of reference images against the model before the request leaves NagaAI. Too many images, or any image on a model that takes none, fails with
400and a message that names the limit. - Sonar models run on the provider’s current API and keep their web search.
sonar-reasoning-proandsonar-deep-researchrun the provider’s matching research levels. - NagaAI drops
temperature,top_pandtop_kon Claude Haiku 5.5 and runs a forcedtool_choiceasautoon Claude Sonnet 5.5. Both returned400before. reasoning_effortfollows each model’s own levels on Gemini 4 Argon and Gemini 3.6 and 3.8 Flash. The same holds for GLM-5.2 and Grok 4.5 to 4.7. A level the model lacks runs as the nearest one.mediumno longer runs ashighon Gemini 3.6 and 3.8 Flash.reasoning_effort: "none"turns thinking off on DeepSeek models. MiniMax-M3.1-Flash and Grok 4.5 to 4.7 always reason, and NagaAI ignoresnonethere instead of returning400.reasoning_effort: "xhigh"reaches GPT-6 models and GPT-5.2 and later. Before, NagaAI senthighthere.reasoning_effort,reasoning.effortandoutput_config.effortacceptmax. GPT-6 and Claude models that have it run it, and other models run the nearest level they have. Before, Messages ranmaxasxhigh.reasoning_effort: "none"turns reasoning off on GPT-5.1 to GPT-5.5. Before, GPT-5.5 reasoned at itsmediumdefault.- NagaAI sends your
max_tokensasmax_completion_tokensto providers that deprecate the older field. - Sonar models accept a
max_tokensbelow 16: NagaAI raises it to 16, the smallest cap they take. - NagaAI asks providers not to store your requests wherever their API has such a switch. Reasoning then travels with the conversation instead of staying in the provider’s storage.
- DeepSeek models keep working in conversations with tools. Before, a request that carried an earlier assistant turn could fail with
400. - Mistral reasoning models stream their reasoning and the first words of the answer. Before, NagaAI lost both.
- Some image and speech models that run longer than 60 seconds now return their result. Before, the request failed with
400. - Nano Banana 2.1 returns an image in Chat Completions and Responses. Before, it answered with text only.
- Image edits work on Grok image models, and FLUX.1 schnell returns the image instead of a JSON text.
- Queued Midjourney tasks return their images instead of
500. - Transcriptions pass
languageto Whisper and Wizper models, and translations return English text. Before, Wizper transcribed every language as English. - On
gpt-transcribe, NagaAI sendslanguageas the language list that model expects. - Voxtral models can serve
/v1/audio/speechand/v1/audio/transcriptions. On them the OpenAI voice names map to Voxtral voices, and NagaAI dropsspeed,instructionsand the transcriptionprompt. - Gemini TTS models serve
/v1/audio/speech. NagaAI maps the OpenAI voice names to Gemini voices and sendsinstructionsas the speaking style. They returnwavby default orpcm; anotherresponse_formatfails with400. - On
eleven_*speech models, the OpenAI voice names map to voices that stay available after 2026-12-31.eleven_v4works on/v1/audio/speech, and NagaAI splits text over 2,000 characters at sentence ends.
API
GET /v1/modelsaccepts anx-naga-supported-endpointheader. Withchat.completionsit 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/modelswithout a key andGET /v1/startupsmay 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 gets401, and an account with no balance sees only:freemodels.
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 athigh, solowand above run ashigh, andnoneandminimalrun without reasoning. Gemini 2.5 Flash runsmediumashigh. Both failed with400before. - A provider that no longer serves a model moves the request to another provider. Before, some of these returned
400withUpstream returned an error:. - Fewer
400errors on Claude models: NagaAI removes trailing assistant messages and empty user messages where the provider rejects them. max_tokensworks ongpt-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_urlworks on every model in Chat Completions and Responses, andurlsources work for documents in Messages.- A
file_idfails with400 file_id_unsupported, and anitem_referencein Responses fails with400; NagaAI used to drop it. - Text to speech returns
400for aresponse_formatthe model cannot produce. /v1/messagesaccepts mid-conversationrole: "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_errorwithUpstream returned an error:in front of its text. - NagaAI no longer returns
502. A request no provider could serve returns503. - Image, audio, embedding and moderation endpoints report provider errors like the chat endpoints: a generic
503,400withUpstream returned an error:, or400withRequest rejected by upstream content moderation.(was403 inappropriate_content). /v1/messagesuses Anthropic error types by status:authentication_error,billing_error,not_found_error,rate_limit_error.- A
function_call_outputwithout itsfunction_callfails with400 tool_output_unmatched. Alanguagethat is not an ISO 639-1 code fails with400on transcriptions.daysoutside 1 to 30 on/v1/account/activityfails with400instead of500. /v1/modelsno longer listsweb_search_options,functions,function_call,logit_bias,logprobsorpredictioninsupported_parameters: NagaAI does not pass them to any provider.json_objectworks without the word “json” in the prompt.- Responses output lists reasoning before the answer.
/v1/responsescarries Codex CLI’s tool formats: freeform tools such asapply_patch, MCP tools grouped by namespace, and the compact tool list ofgpt-6-*andgpt-5.6-*.- The API reference documents the
x-naga-routing-strategyrequest and response header. - An unknown
default_routing_strategyinPOSTorPATCH /v1/account/keysnow fails with400instead of500. The response toPOST /v1/account/keysincludesdefault_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,throughputandcache. Set one in theroutingbody field, thex-naga-routing-strategyheader or as a key default. Thex-naga-routing-strategyresponse 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
503or502. A provider’s content filter returns400withcode: "content_moderation". A provider’s refusal of a valid request returns400withUpstream returned an error:in front of its text. - NagaAI drops parameters a model does not list in
supported_parametersbefore 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_modalitybefore it reaches a provider. pricingin/v1/modelshas 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_characterandper_output_text_character.per_audio_tokenis gone.
Pricing
- NagaAI charges cached input tokens at
per_cached_input_tokenon every model that has the price. Before, some models charged them at zero.
API
- Every response from an API endpoint carries an
x-request-idheader. The same id identifies the request on the Logs page. - Response ids have the prefixes
chatcmpl-,resp_andmsg_, andmodelalways 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-3anddall-e-3:freeleft 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_errorwith a textmessagesuch asbody.messages: .... - A model with no available provider returns
503withNo 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_tokensin Chat Completions works as an alias ofmax_completion_tokens.
API
- Chat models that draw return images in all three chat formats:
message.imagesin Chat Completions,image_generation_callin Responses andimageblocks in Messages.
API
- Chat Completions and Responses accept audio input on models that support it.
API
reasoning_effortis 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/modelsno longer hassupported_parameters_by_endpoint. Usesupported_parameters.