Skip to main content
Requesty supports native web search across major providers. Pass a single tool definition and Requesty translates it to the right provider format automatically.
Native web search providers: Vertex AI (Google), Azure OpenAI, OpenAI, Anthropic, xAI, Perplexity
Browse models with web search in the Requesty Console. Look for supports_web_search: true in the List Models response.
Need web search on a model without a native search tool? Try Requesty Web Search (Beta).

How It Works

Each provider implements web search differently. Requesty normalizes these differences behind a single tool definition that works across all three inference endpoints: We recommend using streaming ("stream": true) for all web search requests. Streaming delivers citations and content in real time, and avoids the extra latency of waiting for the full search to finish.

Usage

POST /v1/chat/completions - Add { "type": "web_search" } to the tools array.
Just change the model to switch providers:
Response includes web_search metadata on streamed chunks with citation URLs and titles:
Web search requires models with tool use support. Check the Model Library to confirm web search support for specific models.

Requesty Web Search (Beta)

Beta. requesty:web_search is in beta. Its behavior and response format may change.
requesty:web_search is a server-side tool: Requesty runs the search, not the provider. Use it to add web search to models that support tool calling but have no native web search tool.

How it works

  1. Requesty replaces requesty:web_search with a web_search function that takes a single query string.
  2. When the model calls web_search, Requesty runs the search and sends the results back to the model as a tool result. Each search returns the top 5 results and a short answer.
  3. Requesty keeps calling the model until it replies without calling web_search. You only receive that final reply.

Usage

Add { "type": "requesty:web_search" } to the tools array. It works on all three endpoints: Chat Completions example:
Response is a standard chat completion containing the model’s final answer:
The same tool works on /v1/responses and /v1/messages:
You can mix requesty:web_search with your own function tools. If the model calls one of your tools, Requesty returns the tool call to you as usual.

Streaming

Streaming ("stream": true) works. While a search runs, Requesty sends the SSE comment line : REQUESTY EXECUTING SERVER SIDE TOOL to keep the connection alive. SSE clients, including the OpenAI SDKs, ignore comment lines. During the beta, Requesty buffers each model turn, so the final answer arrives once the model has finished generating rather than token by token.

Pricing

Requesty runs searches through Tavily. Each search is billed at Tavily’s pay-as-you-go rate of 0.008percredit,andabasicsearchuses1credit([TavilyAPIcredits](https://docs.tavily.com/documentation/api−credits)).Thatmakeseachsearch0.008 per credit, and a basic search uses 1 credit ([Tavily API credits](https://docs.tavily.com/documentation/api-credits)). That makes each search 0.008. Search charges are deducted from your balance on top of the model’s token cost.

Limitations

  • The model must support tool calling.
  • The model can’t call web_search and one of your own tools in the same turn. If it does, the request fails with The provider executed both a client and a server side tool call. Aborting execution as this is not supported.
  • You can’t define your own function named web_search in the same request. Requesty rejects it with tool name conflicts with server-side tool: web_search.
  • Search results and citations aren’t included in the response.
  • Unknown requesty: tool types are rejected, e.g. unsupported server-side tool type: requesty:foo.
Last modified on October 12, 2026