Skip to content
Zabio is in beta: models, prices and features can change. Tell us what breaks at hello@zabio.ai.

Changelog

Improvements and fixes in each release, newest first. New features are announced on the roadmap.

  • Connected apps can be allowed to ask later. Zabio’s sign-in now names read and ask, so Claude, OpenCode, VS Code and Cursor offer both on Zabio’s page (you can still untick ask). A connection whose app was never offered ask lists it, and using it makes the app ask you to allow it. Approving Claude.ai, VS Code or Cursor again for the same project replaces the earlier connection. See Allowing ask later.
  • Connect Codex, Cursor, VS Code and OpenCode. Connect an AI app now has steps for each, next to Claude and Claude Code, and Zabio is listed in the official MCP Registry as ai.zabio/zabio.
  • Totals count no saving for calls made while a baseline was pending. A call on a key that had not reached its 20 calls is compared with itself, so it shows no saving. The dashboard, Usage, the CSV export, the CLI, the MCP usage tool and batch totals now count none for it either, even after the key’s baseline is set, so every total adds up the calls as each one showed. Before, those calls’ fees counted as a negative saving. The CSV export gains saved_micros, saved_usd and baseline_pending columns at the end. See API reference.
  • What a split saved, shown on its own. On a big request Zabio answered from an excerpt, zabio.split.saved_micros (and get_call’s split.saved_usd) states what the split saved against the request sent whole, at list price. It is separate from cost.saved_micros and shows while your key’s baseline is pending too. See Split and route.
  • get_call states the same saving as recent_calls. On a key that has its baseline, get_call showed a saving of 0 for a call recent_calls showed with its real saving. Both tools now read the saving and baseline_pending the same way.
  • No saving shown while a key’s baseline is pending. An auto call on a key that has not reached the 20 calls its baseline needs no longer carries saved_micros in zabio.cost; cost.baseline still shows pending and the progress. Before, the field showed the fees as a negative saving. Code that reads saved_micros should treat a missing value as no saving. See API reference.
  • An empty answer is retried one step up, never straight to the strongest model. When a model on auto spends its whole output budget thinking and answers nothing, Zabio now sends the request to the next cheapest model at the same skill level first, and on any line but best never to the strongest model for that kind of work. See Checked answers.
  • More from connected apps. get_call and ask show how Zabio split a big request, and reconnecting an app to the same project keeps its key’s savings baseline. See Connect an AI app.
  • Connected apps keep working across Zabio updates. A field Zabio adds to an MCP tool’s answer no longer makes an app that connected earlier refuse the answer. ask now also returns cached_tokens, and its input_tokens counts only the input not read from the cache, as get_call and Logs do. Connected apps shows when an app was last used within a minute. If Claude Code refused ask answers with “does not match the tool’s output schema” on 2026-10-14, reconnect it once with /mcp. See Connect an AI app.
  • Connect Claude and other AI apps to Zabio. Zabio now runs an MCP server. Add https://mcp.zabio.ai/mcp to Claude.ai, Claude Code or another MCP app and it can read Zabio’s docs, models and prices, your project’s usage and recent calls, explain why a call went to its model, and ask Zabio’s models questions within a daily limit you set. Each connection has its own API key, and Settings, Connected apps disconnects it. https://mcp.zabio.ai/public offers the docs, models and status with no sign-in. See Connect an AI app.
  • One id for every call. Every response’s zabio object now carries call_id, the id Logs shows for the call (call_ and the same hex as a chat response’s chatcmpl- id), on chat completions streamed or not, the Responses API, embeddings and batch results. See API reference.
  • A clear answer when a model cannot take tools. A call that names gpt-6-astra and sends tools now gets unsupported_parameter with a sentence naming the limit, instead of the provider’s refusal. The same call without tools works as before, and auto never sends a call with tools there. See Errors.
  • Price cuts reach you within a day. Zabio now reads every provider’s prices every day and applies a lower price as soon as it reads it. When a provider raises a price, Zabio keeps billing the old one until it confirms the change from what the provider charges.
  • Prices checked against real charges. Every day Zabio now compares the provider cost it records for each model with what OpenAI and Anthropic actually charged it, so a price that drifts from the provider’s is found within a day.
  • A clear answer when a provider is out of service. A call that names a model on a provider Zabio cannot use right now gets the new error vendor_unavailable, naming the provider, instead of a provider error. auto never sends a call there, and when another provider serves the same model, auto moves to it first. See Errors.
  • Usage replaces Logs. A new Usage page has a Stats tab and a Logs tab under one filter bar (range, project, key, provider, model), in your time zone and kept in the page address. Stats charts spend, what Zabio saved, requests, tokens and caching, hourly or daily, stacked by model or by provider, with Top keys and Top models; Logs lists the calls with an errors-only filter, and a call opens with its details. The dashboard’s tiles link into it. See The web app.
  • Calls keep their project. A call and its spend stay in the project they happened in, even when the key moves to another project later. Usage, the call list and the CSV export follow that.
  • What caching saved, on every call. Usage shows how much of your input came from the prompt cache and what that saved at the providers’ prices.
  • The web app on phones. The menu folds behind a Menu button on small screens, so every page uses the whole width.
  • On the API: the usage routes take provider and model filters, the call list takes from, to and errors, a new series route draws the charts, and calls carry their project_id. The usage summary no longer returns openrouter_equiv_micros and openrouter_equiv_usd.
  • One match per account, from your signup. The launch match is now your account’s, once, in your first organization, and its 30 days start when you sign up instead of at your first top-up. The dashboard counts the days down. Other organizations you create, and people you invite, have no match of their own. See Credits and promotions.
  • Keys that expire. A key can now expire: never, in 7, 30 or 90 days, or on a date you choose. An expired key is refused with the new error key_expired, shows as Expired, and whoever created it gets an email 7 days before. A new expiration brings it back. See Errors.
  • Spend limits that reset. A key’s spend limit now resets every day, week or month at 00:00 UTC (weeks from Monday), or covers the key’s whole life. When it is reached, the error says when it resets, and the key list shows each key’s spend against its limit. Existing monthly caps became monthly limits. On the API, the key’s spend_cap_micros_month is now spend_limit_micros with spend_reset.
  • A simpler way to create keys. Creating a key asks for its name, expiration and spend limit; everything else starts at its default. The Edit panel holds every setting, the key’s models included, and a key’s scopes can now be changed after it is created.
  • Prompt caching on every call. Zabio now caches every call automatically, whether it names auto or a model, and a call turns it off with cache.ttl none. The key’s default prompt cache setting is gone: on the API, cache_ttl_default was removed. See cache.ttl.
  • Notice before your own plan costs more. When Zabio moves an organization that has its own pricing plan to a plan that raises any of its fees, the change takes effect at least 30 days later and the organization’s owner gets an email listing each fee that changes; a change that only lowers fees applies at once, and a cancelled change is announced too.
  • A clearer error when no model is left. When the model access of your account, organization, project or key leaves auto no model to pick, the call now answers 400 no_model_allowed and names the level to check, and the model picker warns before a change that would leave a project or key without a model for auto, naming them.
  • Model access at four levels. Your account, each organization, each project and each key now choose which models they allow, and a call may use only what every level allows; auto picks only among those. One picker at every level: grouped by provider, with filters, a switch per provider that includes its future models, a checkbox per model and the auto lines at the top, which you can now turn off one by one. On the API, the key’s allowed_models is now model_access, and the organization’s vendor switch is a provider entry. See Model access.
  • One account above your organizations. Signing up now creates your account and its first organization, Default Organization, which you can rename in Settings. Only the account’s owner creates organizations and projects. People you invite belong only to the organizations you invite them to; someone you invited who wants their own account signs up with another email, and someone you invited who later belongs to no organization gets their own account at their next sign-in.
  • Members limited to projects. When you invite a member you can choose the projects they work in, and change them later from Members. They then see only those projects’ keys, calls, usage and conversations; owners and admins see everything. A project menu next to the organization menu shows one project or all of them, and a new key is created in the project you are in.
  • Keys in a project see their own project. On the API, a key that belongs to a project reads and changes only the conversations, responses, files and batches made with that project’s keys; a key at the organization’s level sees the whole organization. See Organizations, members and keys.
  • Updates no longer interrupt your calls. When Zabio releases an update, calls already running, streams included, finish on the version that started them, and new calls go to the new version without a pause.
  • Automatic recharge on the call that crosses your threshold. A recharge could wait for your next call or for the next check a few minutes later; it now starts on the call that takes your balance below the threshold.
  • Ten models retired on Alibaba Cloud. Alibaba Cloud no longer serves qwen3.6-max-preview, deepseek-v4-flash, qwen3-next-80b-a3b-thinking, qwen3-next-80b-a3b-instruct, qwen3-30b-a3b-thinking-2507, qwen3-30b-a3b-instruct-2507, qwen3-235b-a22b-thinking-2507, qwen3-235b-a22b-instruct-2507, qwen3-vl-235b-a22b-thinking and qwen3-vl-235b-a22b-instruct on its international service. The Models page marks them retired; choose another model there.
  • Prices now match each provider’s own price list. Six OpenAI models (gpt-6.1-sol, gpt-6-sol, gpt-6-luna, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna) bill a cache write at 1.25 times the input price, as OpenAI does; cached input in an OpenAI batch is billed at the batch input price on gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4o, gpt-4o-mini, o1, o3, o3-mini and o4-mini; cached input on gemini-3.1-pro-preview costs the standard cache price in a batch and at flex; qwen3.5-plus-2026-04-20, qwen3.6-plus and qwen3.6-flash@alibaba-us, which Alibaba Cloud gives no cache discount, bill cached input at the input price; and gemini-3.5-flash, which Google now answers with Gemini 3.6 Flash, costs Gemini 3.6 Flash’s lower price. The Models page shows every price in force.
  • New models arrive on their own. When a provider adds a model, Zabio reads its price from the provider’s own price list, checks that the model answers, and makes it callable by name within the hour. Where the provider’s own sources show two prices, you pay the lower one. The Models page lists every model you can call.
  • Lower cache prices on Claude Sonnet 5.5. Cached input on claude-sonnet-5-5 is now billed at Anthropic’s own price, 0.10 USD per million tokens (0.05 in a batch), half of what it was.
  • Provider sales reach your price. When a provider sells a model below its list price to everyone, Zabio charges the sale price.
  • Three more models you can name, each at its provider’s own list price. The Models page lists them.
  • auto picks by skill for each kind of work. Every auto request now goes to the cheapest model skilled enough for its kind of work; auto/balanced and auto/best ask for more skill, and a hard or high-stakes request moves one step up. An answer that fails Zabio’s check is sent once more to a stronger model at Zabio’s cost. The dashboard, the Logs page and zabio.routing.task_type show the kind of work. See Models and routing.
  • Routing details show the tier you asked for and the skill floor used. zabio.routing.line now reads auto, cheap, balanced or best as you sent it, and the new zabio.routing.floor says which skill floor was applied. zabio.auto_eligible, the Models page and the new GET /v1/public/auto-models show the models auto can pick today, and the request analyzer shows auto’s own picks.
  • Requests no longer fail on a parameter the model does not take. When the model that answers does not take temperature or top_p, Zabio leaves it out and names it in zabio.dropped_parameters and the x-zabio-dropped-params header instead of returning an error. stop is always honored: where a model does not take it, Zabio cuts the answer itself. The Models page lists each model.
  • The whole saving is yours, with simpler fees. Zabio no longer takes a share of what routing saves you. Every call pays the service fee on the provider price, and every auto request pays a small fixed fee for automatic model choice, once, shown as its own line (call_fee_micros). This replaces 1.2.6’s “never for choosing the model”: choosing the model now has its own small price. The fees in force are on the pricing page.
  • Calculations always use reasoning. On math, auto turns a model’s reasoning on and picks a model that can reason, so sums, averages and other calculations are worked through before the answer.
  • Reasoning levels follow each model’s own levels. Where a model names its thinking levels, low, medium and high now ask for those levels instead of a fixed number of thinking tokens, and zabio.reasoning.applied reads the level. Two models that cannot stop thinking are now treated that way: with no level they think at their own default, and none gives their lowest level. The Models page says which, so you can leave room in max_tokens.
  • Thinking shows in your usage on more models. usage.completion_tokens_details.reasoning_tokens and the dashboard now count the thinking of models that report it in their own format, so you can see which part of your output was thinking.
  • Calculations reason on more models. Some models reason only when asked, and Zabio now records which ones: auto turns their reasoning on for calculations too. When you name one of them without a level, zabio.reasoning.applied now reads off, which is how they already answered.
  • You’re never charged for an empty answer caused by a setting Zabio chose. When auto turns reasoning on, it makes sure your max_tokens leaves room for the answer. If the model still spends the whole budget thinking and writes nothing, that call is free, and a model that reasons by default answers instead, or the same model again without reasoning when there is none. With a reasoning level you set yourself, calls are billed as before.
  • Simpler routing details. zabio.routing no longer includes subject and language, and the job that POST /v1/public/analyze returns no longer includes language. Routing never used them.
  • You pay for the answer, never for choosing the model. The small routing step that reads each auto request is now part of Zabio’s fee, so classifier_micros reads 0 and the saving on every auto call is larger.
  • Lower prompt cache costs on long prompts you send once. A long prompt is now written to the provider’s cache when it comes back, not the first time, so a document you send once no longer pays the cache write. Conversations and sessions are cached from the first turn, as before.
  • Two new providers, Alibaba Cloud (US) and Alibaba Cloud (International). 34 more models you can name, the Qwen family among them, with the processing location of each shown on the Models page. Automatic routing keeps choosing from the same models as before.
  • More models to choose from. The catalog carries 43 more models you can name, from every provider Zabio serves, each at the provider’s own list price. Automatic routing keeps choosing from the same models as before.
  • A fresh look for every email. Sign-in links, receipts, balance notices and invitations now share one clear layout, addressed to you by name, with the Zabio logo, in English or Spanish, and replies reach our support team.
  • Sign in with GitHub, next to Google, a password and the email link.
  • Automatic top-ups. Credit is added automatically when your balance runs low, up to a monthly cap you choose.
  • The Free plan. Start without a card: 100 requests a day on a set of fast models.
  • Move credit between your organizations. Owners can transfer paid credit from one organization to another from the Billing page.
  • Better observability. The dashboard shows your cache hit rate, your cost per million tokens and your spend by kind of work, and a new Logs page shows how long each call took.
  • Security improvements across sign-in, accounts and payments, including better fraud protection for sign-ups and payments.