A new search-quality index making the rounds around August 29, 2026 puts Perplexity's Search API at a score of 80, debuting ahead of both Parallel and Brave. If you build agents, the headline is less interesting than the question underneath it: how do you actually choose a search provider to ground a model on live web data, and how much should one index move that decision?
This is a practitioner piece. It covers what these search-quality indices measure, how Perplexity Search API, Exa, Brave, Parallel, and Firecrawl trade off on latency, cost, freshness, and citation quality, and how to wire a search tool into a Claude Code or MCP agent harness. It pairs with our companion post on Firecrawl's free keyless search and scrape — this one is the "which search API" half, that one is the "scrape tooling" half.
TL;DR
| Question | Short answer |
|---|---|
| What happened? | Perplexity's Search API scored 80 on a new search-quality index, debuting above Parallel and Brave (~Aug 29, 2026). |
| Is 80 a "good" score? | It is a leading score on that index. The rubric, query set, and who published it all matter. |
| Does this settle provider choice? | No. One index, provider-friendly framing, and benchmarks that move. Run your own eval. |
| What do the indices measure? | A weighted blend of result relevance, freshness, citation/source quality, and sometimes latency. |
| How do I use a search API in an agent? | Expose one search() tool via MCP or a native tool definition; return snippets + citations; fetch full pages only when needed. |
| Companion reading | Firecrawl free keyless and OpenRouter's web search benchmarks. |
What a "search-quality index" actually measures
There is no single agreed metric for search quality, so every index picks a blend. The common ingredients:
- Relevance — does the top result answer the query? Usually scored by an LLM judge or human raters against a fixed query set of a few hundred to a few thousand prompts.
- Freshness — for time-sensitive queries, how recent is the best result? A search that returns a canonical 2023 page for a "what happened this week" query scores badly here.
- Citation and source quality — are results from primary or authoritative sources, or from thin aggregators and AI-generated review farms? Some indices weight this heavily because agent grounding is only as trustworthy as its sources.
- Coverage / recall — for research-style "find everything about X" queries, how many relevant documents surface across the result set, not just the first hit.
- Latency — sometimes folded in, sometimes reported separately.
Perplexity's 80 is a single scalar collapsing some weighting of those. Before you act on it, three things are worth knowing: the query set (coding queries, news queries, shopping queries, and academic queries reward different engines), the judge (an LLM judge inherits its own model's biases), and the sponsor (an index published or funded by a provider tends to weight what that provider is good at). None of that makes the number fake — it makes it one data point.
The five providers, and how they differ
You can discuss these in one breath as "search APIs for agents," but they are built differently. We do not link to competitor sites; this is prose only.
Perplexity Search API
Perplexity exposes the retrieval layer that sits under its answer engine. You get ranked results with snippets, URLs, and published dates, tuned for downstream LLM consumption rather than a human clicking blue links. Its pitch is agent-shaped output and recency. Perplexity has been public about treating search as programmable infrastructure rather than a webpage, which is the same direction the rest of the field is moving.
Exa
Exa built around embeddings-based neural search — you can query by meaning ("startups doing X") rather than keywords, and it offers full-text content retrieval alongside the result list. It tends to shine on research and discovery workloads where you want breadth and semantic matching, and it exposes knobs for filtering by domain, date, and content type.
Brave Search API
Brave runs its own independent web index, not a reskin of another engine's results. For agent builders that independence matters for two reasons: resilience (you are not exposed to a single upstream index's policy changes) and a different result distribution that can complement a neural engine. It is generally the most "classic web search" of the five in feel.
Parallel
Parallel is aimed squarely at agentic and deep-research use, with an API designed for high-volume, multi-query workloads and structured task output. It ranked just behind Perplexity on this index and consistently shows up as a serious contender in independent search benchmarks.
Firecrawl
Firecrawl started as page-to-Markdown scraping — clean, fast extraction of a URL's main content — and layered search on top. If your agent's job is "read these specific pages well," Firecrawl's extraction quality is the draw; its free keyless tier also lowers the barrier for prototyping. Our deeper Firecrawl guide covers the Agent endpoint and structured extraction.
A useful mental split: Perplexity, Parallel, and Brave answer "what pages exist for this query." Exa answers "what pages mean this." Firecrawl answers "what does this page actually say." Most production agents end up using two of them — a search engine plus a scraper.
Latency, cost, freshness, citation quality
These four axes matter more day-to-day than an index score. Exact numbers move monthly, so treat this as the shape of the tradeoff, not a spec sheet.
| Axis | What to watch for |
|---|---|
| Latency | A search call adds 300ms–2s to every agent turn that uses it. Engines that pre-rank and return snippets are faster than ones that fetch and summarize full pages inline. Budget for it in multi-turn loops. |
| Cost | Priced per request or per result batch, typically a fraction of a cent to a few cents per query. The killer is volume: a research agent that fires 20–50 searches per task multiplies fast — see our agent monthly cost breakdown. |
| Freshness | Ask each provider how often its index refreshes and whether it has a real-time path for breaking queries. Freshness claims are the easiest thing to over-state in a launch. |
| Citation quality | Test with adversarial queries — topics where SEO spam and AI content farms dominate. A good engine still surfaces primary sources; a weak one launders spam into your agent's context. |
The single biggest score lever, per OpenRouter's testing, was not the engine at all — it was search budget, the number of search turns you allow the agent. Giving a mediocre engine more turns often beats giving the best engine one turn. Read the full benchmark writeup before you over-invest in provider selection.
How to wire a search tool into a Claude Code / MCP agent
The pattern is the same regardless of provider. Expose one tool, keep its output lean, and let the model drive.
1. Define a single search tool
{
"name": "web_search",
"description": "Search the live web. Use for facts that may have changed, recent events, or anything not in training data.",
"input_schema": {
"type": "object",
"properties": {
"query": { "type": "string" },
"recency_days": { "type": "integer", "description": "Only results newer than N days. Omit for evergreen queries." },
"num_results": { "type": "integer", "default": 5 }
},
"required": ["query"]
}
}
2. Return citations, not walls of text
Have the tool return an array of {title, url, published_date, snippet} — 5 results, snippets capped at ~300 characters. Do not dump full page content into the model's context on every search. Let the model call a separate fetch_url tool (Firecrawl or a plain reader) only for the two or three results it decides are worth reading in full. This keeps token cost down and matches how RAG and MCP grounding are meant to interleave.
3. Wrap it in an MCP server for reuse
If you want the same search tool across Claude Code, a custom harness, and a desktop client, put it behind an MCP server rather than reimplementing it per host. A minimal server exposes web_search and fetch_url, holds the provider API key server-side, and adds a rate limiter. That is the whole surface. New search-native agents like Mixedbread's Toast follow the same shape.
4. Handle the failure modes in the harness
- Injection: search results are untrusted input. A page can contain text that tries to hijack your agent — see indirect prompt injection. Keep tool results clearly delimited and never auto-execute instructions found in them.
- Rate limits: free and low tiers throttle hard. Cache identical queries within a task; back off on 429s.
- Empty results: give the model a retry path with a reformulated query rather than letting it hallucinate an answer.
For the broader design of the loop this sits inside, see our agent harness guide.
Honest caveats
- One index. A single search-quality index is a shortlist tool, not a ruling. Cross-check against at least one independent benchmark and your own eval set.
- Provider-friendly framing. "Debuts ahead of Parallel and Brave" is a launch narrative. Note who published the index and what their incentives are before repeating the ranking as fact.
- Benchmarks move. Indexes refresh, providers tune for the public query set, and a 5-point gap this month can invert next month. Re-test quarterly on your real traffic.
- Your weighting is not the index's weighting. A coding agent cares about docs and GitHub recall; a news agent cares about freshness and source authority; a shopping agent cares about product-page coverage. Score providers on your query mix.
- Search quality is not agent quality. Budget, prompt design, and how you interleave fetch calls swing end-task accuracy more than the engine. This overlaps with SEO/GEO questions about which sources engines surface at all.
What to do this week
- Pick two providers on different architectures — one ranked web engine (Perplexity, Parallel, or Brave) and one scraper or neural engine (Firecrawl or Exa).
- Build the single
web_searchtool above, behind an MCP server. - Assemble 50 queries from your actual agent logs, run both providers, and have a model judge relevance and freshness.
- Tune search budget before you tune provider choice.
- Browse explainx.ai's tools directory for the agent-tooling stack around this.
Related on explainx.ai
- Firecrawl relaunches free keyless search and scrape — the companion "scrape tooling" half of the agent search/scrape pair
- OpenRouter web search benchmarks: how to pick a search tool for agents — independent testing of Exa, Parallel, Perplexity, and native search
- Perplexity's Search as Code: rethinking search for the agentic era — Perplexity's own architecture for programmable search
- Firecrawl web scraping API for AI agents — the Agent endpoint and structured extraction in depth
- Mixedbread Toast: a search-native agent — how search-first agent design plays out in a product
- RAG vs MCP: complete comparison — live search grounding vs retrieval over your own corpus
- What is MCP? Model Context Protocol architecture guide — the protocol most agents use to wire in a search tool
- What is an agent harness? A complete guide — the loop your search tool runs inside
- AI agent monthly cost: a real workflow breakdown — where search-call volume shows up on the bill
- Indirect prompt injection in AI agents — why search results are untrusted input
- What is SEO/GEO? Generative engine optimization in 2026 — the other side: which sources these engines surface
Official
- Perplexity Search API — index debut coverage, around August 29, 2026
Scores, rankings, pricing, and index methodology are accurate as of publication (August 29, 2026). Search-quality indices refresh and provider APIs change frequently — verify current numbers against primary sources before making a provider decision.
