Plans
One balance, and every call draws from it. Running a tool needs an active plan. A plan fills the balance every month with more credit than the plan costs, and once you are on one, a one-time top-up adds more credit whenever you like. Credit you bought stays yours until you spend it. Signing up is free, and so is looking around: browsing the catalog,discover, inspect, and reading your runs and balance never need a plan.
Three rules carry most of the weight. Included credit lands when Stripe
confirms the invoice paid and expires at the end of that billing period, so it
does not roll over. Purchased credit never expires, and it is available only
to a workspace with an active plan, as overage once included credit runs out.
Nothing is ever charged to a card while you are not on the page. The rest is
under Plan rules below.
Three ways a tool prices
Goro fronts three providers and they meter their work in different ways, so a quoted price does not mean the same thing everywhere. Which shape applies is written on the tool’s page, and comes back asprice.type from discover and
inspect.
Only the first has a total that cannot be known before the call, and most of
this page is about that case. The other two are arithmetic you can do in
advance.
Flat
An image generation call costs what it costs, whatever comes back: 0.06 on Grok Imagine, 0.18 on Nano Banana 2. There is no ceiling to read and nothing to settle afterwards, and a call that fails is not charged at all.video.veo prices the same way, at $3.8250 a call, because it only makes videos
of one length.
Metered
A voice call bills a published rate against a quantity you can measure yourself. Text to speech is 0.36. Speech to text is 1.08 an hour, and no call can exceed $1.08. The other five video endpoints bill the same way, against the seconds of video you ask for. The rate is per second and differs by model, from 0.6150 on Seedance 5 Pro, andduration is the only field that
changes the price. The ceiling on one of those is that rate times the longest
clip the endpoint accepts.
The rate is exact, so the total is your input size times the rate. The ceiling
is still a ceiling: it is the price of the largest request the endpoint takes,
not a typical call.
Three numbers, three jobs
This is the per-result case, the one every search, social, maps, commerce and people tool uses.1
The rate
Every one of those tools publishes a rate per result, for example 0.0075 per result page. That is what one row costs you, and
it is on the tool’s page in the catalog.
2
The total
The total is the rate times the results the call actually produced. Ask for
3 rows and you pay for 3. Ask for 300 and the call finds 40, you pay for 40.
3
The ceiling
Before the call runs,
discover and inspect return a ceiling for your
specific request. You are never charged above it. It is a maximum, not an
estimate of what you will pay.Why the total is not fixed up front
How many rows a request produces is not knowable before it runs. A search for a niche term returns four results; the same query next week returns forty. Goro bills what the call consumed rather than an average that would overcharge the small calls to cover the large ones.1
The hold
Before the call runs, Goro reserves an amount against your balance, sized
from what you asked for. A small request holds a small amount, a large one
holds more. The hold never exceeds the ceiling.
2
The charge
When the call finishes, Goro works out what it actually did, takes that
amount, and releases the rest of the hold.
A call that returns nothing
If a call completes with no results, the per-call floor is waived and you pay only the published rate for what it actually did, which for an empty result is fractions of a cent. If the call cost nothing to serve, it bills nothing at all and comes back marked free. You are never charged for rows you did not receive. A flat-priced or metered call is different in kind: it either produced the thing you asked for, in which case it costs its published price, or it failed, in which case it costs nothing.Holds are not charges
A hold reserves balance, it does not spend it. If a call fails, times out, or you stop it, the whole hold is released and nothing is charged. Your available balance is what you can spend right now: the credit you bought, plus any unexpired included or promotional credit, minus anything currently held by a running call.Budgets
You can set a daily or monthly spend cap on a workspace, and choose whether hitting it blocks further calls or just notifies you. The cap is enforced when the hold is taken, so a call that would breach it never runs. A blocked call answers402 with the code budget_exceeded.
Plan rules
Running a tool needs an active plan, Build or Scale, with a Stripe status of trialing, active, or past_due (Stripe is still retrying the card, and credit already granted keeps the expiry it was given). Signing up, browsing the catalog,discover, inspect, and reading your runs and balance never need
one. Without an active plan, running a tool (POST /v1/run, MCP run_tool,
the CLI run) and creating an upload (POST /v1/uploads, MCP
create_upload) answer 402 with the code subscription_required, and
nothing is charged or held:
subscription_required on a workspace with no plan.
Included credit is spent before purchased credit, so a top-up you made sits
untouched until the period’s included credit is used up.
When both are gone, a run fails with insufficient_funds instead. The error
carries your plan, the top_up_url and, on a plan, renews_at, and the
message names the renewal date, so an agent can tell you whether to add
credit now or wait. Nothing is ever charged to your card while you are not on
the page: a plan fee is charged on its renewal date, a top-up when you make
one, and nothing else.
You change or cancel a plan from the Wallet page, through the Stripe customer
portal, and both take effect at the next renewal. Cancelling stops the next
charge; the cycle you already paid for runs to its end with its included
credit, and you can keep running tools until it does. If a renewal payment
fails, Stripe retries the card on its own schedule and emails you about it:
included credit ends at the period end it already had, but the plan itself
stays active while retries continue, so purchased credit keeps working. If
Stripe gives up, the plan ends: you cannot run tools again until you
subscribe. Purchased credit is never lost. It stays on the wallet and starts
working again the moment you resubscribe.
Plan fees are billed monthly in advance and are not refundable. There is no
free trial on a plan.
Reading prices from the API
discover and inspect return a price object per tool. Read type first,
because it decides which of the other fields are there: usage_based and
metered carry a ceiling in max_usd, per_call carries a fixed base_usd
and no ceiling at all, and per_call_variant carries a variants list, one
exact price per value of the input named in selector.
billed_on_actual_usage is the field to branch on. Where it is true, the
total depends on the call and max_usd is a maximum rather than a price. Where
it is absent, the quoted number is the price. Either way an agent can tell them
apart without parsing English. Field by field, see the
API reference.
Questions about a specific charge? Email
hello@usegoro.ai with the run id and we will
break it down.