Skip to main content
1 tools. Each one is deterministic: the same input gives the same output, and nothing is inferred. Call one directly with 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. 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

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.
  • code.run_python — process or summarise search results with inline Python
  • code.run_node — transform result data with Node.js

Examples

Basic search