POST /v1/capabilities/{id}/run, or use it as a step in a
workflow.
Prices are on the live catalogue — they change, and a stale price here would be
worse than none.
web.search
any → text · Billed per request
Search the web and return ranked results. The gateway routes to the best available provider (Brave, Gemini, OpenAI, or Anthropic) based on latency and cost.
When to use
- Research queries — retrieve up-to-date information from the live web.
- Fact checking — ground LLM responses in current sources.
- News & events — look up recent happenings beyond a model’s training cutoff.
Inputs & outputs
Output: which field carries the content
The step returns{ answer, results, citations, metadata }.
Bind answer, not results. results is a list of sources — url, title,
rank, domain. It is not the text of those pages. answer is the provider’s
grounded, synthesised answer to the query, and it is what a downstream model
step can summarise.
snippet depends on the provider the gateway routed to, which you cannot choose
and cannot see in advance, so metadata.snippet_support states it in the output:
A binding that must work whatever the router picks should use the fallback
operator:
${steps.search.output.answer | steps.search.output.results} — it
takes the grounded answer where there is one and the (snippet-bearing) result
list where there is not. This is what the web-research-summary template does.
Parameters
These are the only parameters accepted; any other key is rejected.
Examples
Basic web search
Non-English search
Results follow the language of the query — there is no locale parameter.Pricing
Billed per search request. The gateway routes to the most appropriate provider; see pricing dashboard for current rates.Related capabilities
code.run_python— process or summarise search results with inline Pythoncode.run_node— transform result data with Node.js