Skip to main content
For AI agents: a documentation index is available at https://docs.parallel.ai/llms.txt. The full text of all docs is at https://docs.parallel.ai/llms-full.txt. You may also fetch any page as Markdown by appending .md to its URL or sending Accept: text/markdown.
This guide maps the request you make today to its Parallel Search equivalent. Parallel Search takes keyword search_queries, plus an optional natural language objective, and returns ranked, LLM-optimized excerpts in a single call. search_queries is the only required field, so most migrations are a one-field change. Picking a mode is optional; requests default to advanced.

Start with one field

Exa, Tavily, and SERP APIs all center on a single query string. The fastest migration is to pass that string as one entry in search_queries. That alone is a complete, valid request, since mode is optional and defaults to advanced:
For the lowest latency and cost, add "mode": "turbo". For better results, also add an optional objective, a natural language description of your full intent, and split the query into 2-3 short keyword queries:
See Best Practices for how to write objectives and queries.

From Exa

Before and after:
Excerpts are on by default and sized dynamically, so most requests need no excerpt configuration at all. Add advanced_settings knobs only when you have a specific product constraint. Restrictive settings can reduce result quality.

From Tavily

Tavily’s search_depth tiers map one-to-one onto Parallel modes. Before and after:
Parallel authenticates with an x-api-key header rather than Authorization: Bearer, so a request that keeps the Tavily-style Bearer header returns 401.

From a SERP API

A SERP API returns a ranked list of links and snippets, but you must make subsequent fetches to extract usable information. Parallel Search combines everything into a single call. Instead of links you fetch and process, you get ranked, compressed excerpts sized for a model, so there is no fetch round and no chunking or ranking to build yourself. If a workflow still needs a specific page’s full contents, use the Extract API.
You search, then fetch and process each result in your own code:
Parallel does it in one call:
“Built-in model search” splits into two cases that migrate differently. Building on the API. If you call a provider’s hosted search tool in your own app (for example OpenAI’s web_search in the Responses API), the provider runs the search inside its own walls. Migrate by registering Parallel Search as a function tool your app executes, which gives you mode control (Turbo today), the excerpts, and the provider choice.
The model decides when to search. Your handler decides how. Full walkthroughs with the tool schema and the tool-result loop live on the OpenAI, Anthropic, and Ollama pages. Inside the ChatGPT app (no code). If you rely on web search in ChatGPT itself rather than building on the API, add Parallel as a connector through the Search MCP.

What you parse now

Parallel returns a results array. Each item has a url, title, publish_date, and excerpts (the compressed, relevant snippets your model reads), with a top-level warnings field worth checking on early calls:
If your current integration expects a field Search does not return, here is where that capability lives:

Verify your migration

Before moving production traffic, run your top queries in the Playground and start with the mapped mode. On your first calls, check the response warnings field for any parameters that were adjusted or ignored, and confirm Pricing and Rate Limits for your volume.