Skip to main content
Vetta charges for what your agents actually consume, in real dollars — no per-seat fee. The one recurring charge is the plan: **20permonth∗∗perorganization,andeachpaidmonthgrants20 per month** per organization, and each paid month grants 20 of credit toward that consumption.

What you pay for

Every rate published here and on Limits & billing is the price you pay — the number the ledger books and the number your spend breakdown reports. There is no separate fee, no seat charge and no minimum on top of it.

Priced tools

Three tool families have a price of their own, on top of the tokens the model spends calling them. Each appears on GET /v1/agents/{id}/spend?by=component under its own component name. An app’s database is not one of them: /v1/apps/{id}/db/* calls and the apps tool’s db_* actions carry no price of their own. They are all booked after the fact. A web call is priced from what the provider charged for it, so the debit lands after the call: an agent already at its cap can still make one. Media is the same — nothing is reserved before a render (see below), so max_task_micro_usd does not bound one. Watch the search and media components to see what each is costing, and treat the agent’s cap_micro_usd and the organization’s balance as the real limits.

Web tools — per call, search component

A search whose results are all filtered out by the agent’s domain policy still costs the call — the query ran. A web_fetch refused by that policy is stopped before the page is requested and costs nothing; a page that redirected somewhere the policy forbids is withheld after the fetch, and that one is billed, because the fetch happened.

Media generation — per finished job, media component

You are billed what the finished job actually cost, once per job. There is no per-model price table here, and that is deliberate rather than an omission. A generation job’s cost depends on the model, the duration and the size, and it is published by nobody until the job has finished — so any table on this page would be a number we invented. What can be listed is which models exist: GET /v1/media/models, read live from the provider. The audio routes and tools are on this component too: a transcription costs what the provider charged for the recording, speech what it charged for the characters spoken. Nothing is reserved for an image or a video before it renders. Nobody can price a render before it runs — video models publish no price at all — and a ceiling is not a price, so no hold is taken against the agent’s budget and no balance floor is checked, from a session or over REST. The real cost is booked once, when the job lands, on the render’s own idempotency key; a render costs cents, and a balance may go negative by one rather than turn the request away. A job that fails or never finishes is not billed at all. A clipping job submitted over REST has no agent, so no reservation. POST /v1/media/clips is admitted while the prepaid balance is above zero (402 insufficient_credits otherwise), and what it can cost is bounded server-side instead: the input is capped at 90 minutes of video and every metered actual the job reports is clamped before it is priced. The debit lands once, on completion; a failed job bills nothing.

Browser — per session minute and per hosted action, browser component

The minutes are one debit when the session closes; there is no up-front hold, because a session’s cost is knowable only at close. A session is capped at 360 minutes (timeout_minutes); one that hits its timeout bills up to it and no further. The deterministic actions (goto, click, type, screenshot, links, …) cost nothing beyond the minutes they run in. The whole model is on Limits & billing.

Storage — per bucket-day, storage component

Storage on a fullstack app is metered per bucket per UTC day it exists, on its own storage line — and no rate is published for it today, so no line is booked. The tier exists on the ledger so a rate can be set without a schema change; until one is, buckets and objects carry no charge beyond the computer time an agent spends using them.

The model proxy

POST /v1/proxy/anthropic/v1/messages is priced exactly like a session’s model call — same catalogue, same per-window tariff, same five tiers, same balance. The proxy adds no charge of its own.

The completion window is the biggest lever

The same model at a different window is a different price. The window is a single field with three wire values — immediate, priority, and loose. One model, three completion window lanes — immediate, priority, loose — with latency increasing and tariff decreasing, chosen per request You choose the window per request — pay the interactive tariff only when a person is waiting; overnight work runs on loose for materially less. On immediate, the router picks the fastest provider hosting the model rather than the cheapest, because that window exists for the case where a person is waiting. The same model can therefore cost a little more on one call than another — you are billed from what the call actually cost, and the ledger records which provider served it.

Budgets keep it predictable

Every agent has a budget: set cap_micro_usd, max_task_micro_usd, and a period. Model calls are quoted before they run, so one that would breach those ceilings is refused rather than discovered on an invoice. Media renders, compute and the web tools are metered from what they actually used and booked afterwards, so a period’s spend can finish past its cap — and, where a funded organization exhausts its balance mid-turn, the balance itself can go negative. It is on the ledger either way, never silent.

Measured, not modelled

All figures are corrected against vendor invoice brackets — list-price rate cards over-state real cost by 1.017x–4.176x. Methodology in Benchmarks.

See the numbers

Cost per completed task across 15 measured cells.