Skip to main content
Use phaseo:web_search when the model needs current or source-backed information. The model decides when to search, writes the query, and can search multiple times in one request. Phaseo returns URLs, titles, snippets, highlights, and optional page text to the model so it can write a grounded response.
TinyFish Search is available as an optional managed engine. Provider-native search remains available through engine: "native" on supported routes.

How it works

  1. Add { "type": "phaseo:web_search" } to tools.
  2. The model decides whether it needs a search and emits a query.
  3. Phaseo executes the search using the configured engine.
  4. Results are returned to the model as tool context.
  5. The model writes the final response and may search again if needed.

Quick start

Configuration

Engine selection

Use engine: "native" only in the tool declaration. If a model tries to pass engine: "native" inside an already-emitted gateway search call, Phaseo returns a tool error because native tools must be selected before the upstream request is sent. Enable the engine by configuring TINYFISH_API_KEY in your Phaseo gateway runtime secrets, then select it in the tool parameters:
language provides a locale hint and page selects a result page from 0 through 10. TinyFish supports both domain-filter lists; Phaseo converts them into search operators. Results include URLs, titles, and snippets/highlights. Use phaseo:web_fetch when the model needs fuller text from a result.

Domain filtering

Use allowed_domains when the answer must come from a controlled source set:
Use excluded_domains when broad web search is allowed but specific domains should be removed from the result set. Perplexity and Firecrawl accept either allowed_domains or excluded_domains in a single search call, not both. Perplexity accepts up to 20 domain filters per request and maps excluded domains to its denylist format. TinyFish translates both arrays to site: and -site: operators in the query. TinyFish Search is free on its published plans, so Phaseo does not add a provider usage charge for engine: "tinyfish"; normal Phaseo request and token pricing still applies.

Responses API

The same tool shape works with /v1/responses:

Usage and pricing

Web search calls increment:
Managed search pricing can use server_tool_web_search_requests and server_tool_web_search_extra_results. Provider-native search usage can use native_web_search_requests where a model price card defines that meter.
Last modified on October 21, 2026