run without inspecting first.
Request
Response
Ranking is lexical and deterministic: the same query returns the same order
every time. Matches that score zero are dropped, so a query nothing answers
returns
{"items": []} rather than a list of bad guesses.
sample_input
sample_input is built from the tool’s own input schema. It contains every
required field, plus every optional field that declares a default. Values come
from the schema’s examples, then its defaults, then its enums. A required field
with none of those appears as a placeholder like "<searchTerms>", which you
are expected to replace.
It is a starting point, not a validated input. run validates what you
actually send.
price
price is the same object inspect and run
return. Its fields depend on type.
Most of the catalog is
usage_based: the total follows what the call actually
did, floored at min_micro and capped at max_micro. The image tools are
per_call, one flat price with no ceiling to read. The voice tools are
metered, an exact rate against the size of your request, with a ceiling on
top. The nano banana image tools are per_call_variant: flat and exact like
per_call, but the price depends on which resolution you ask for, and every
option’s price is listed in variants. per_result is part of the contract
but nothing in the catalog uses it today, so handle it if you parse price
generically.
A settled run that cost nothing is charged nothing: cost_micro comes back 0
and free comes back true. See run.
On a
usage_based or metered tool, max_usd is a ceiling and the hold Goro
places is sized from what you request, so it usually sits well below that
number. On a per_call tool there is no ceiling: base_usd is what the call
costs. Every tool’s page in the catalog says which it is.Errors
Discovery is free. It places no hold and charges nothing.
Then inspect the match
Read the full input schema before you run it.