DEV Community

Cover image for I benchmarked 4 web search APIs for AI agents. Here's what each one is good at.
Pallavi Singla
Pallavi Singla

Posted on Originally published at psinglap.github.io

I benchmarked 4 web search APIs for AI agents. Here's what each one is good at.

Every AI agent that answers questions about the world needs web search, and choosing the API behind it is surprisingly hard. Vendor benchmarks are run by vendors, and most public evals use generic trivia that looks nothing like what an agent actually sends.

So I built a small, open web search API evaluation around agent-style calls, and tested You.com, Tavily, Exa and Parallel live.

Overall scorecard: 30 queries, 3 use cases, 4 search APIs

TL;DR

If your agent… Pick Why
Answers inside a live turn (voice, chat, alerts) You.com Fastest at p50 and p95, freshest results, never returned empty
Does deep research where seconds don't matter Parallel Highest accuracy overall and in finance
Needs the most on-topic top 5 for semantic or long-tail queries Exa Best precision@5, best insurance accuracy
Looks up docs or how-to answers Tavily Best GTM accuracy, right on the config-docs query

There's no single winner. The right API depends on what your agent does.

How I tested

30 queries, written the way agents call search. Each one has an upstream task ("Any new mentions of Apache Iggy in the last day?"), the exact search string the agent sends ("Apache Iggy"), parameters (a 24-hour window), and what the agent needs back. They're split across three common agent use cases:

  • GTM agent: fresh developer and company buying signals (new issues, releases, funding, incidents)
  • Insurance agent: a voice and claims agent that needs live catastrophe status mid-call, with a 500 ms budget
  • Finance agent: an analyst copilot that needs exact, current numbers with a primary-source citation

Every use case has at least four real-time queries, and some expect "none" as the right answer. That catches APIs that present stale pages as current.

Same request for every API: 10 results, full content where supported, the same freshness window and domain filters. Each query ran 3 times through promptfoo (90 calls per API). Latency is client wall-clock around the HTTP request after a discarded warm-up call.

Grading: answer keys were captured live and archived to the Wayback Machine. Answers were graded with the published SimpleQA rubric (correct = 2, partial list = 1, wrong = 0), with FreshQA strict rules for "none" answers and stale results.

Overall results

Metric (90 calls per API) You.com Tavily Exa Parallel
Accuracy (% of max) 63% 51% 53% 67%
Queries fully correct in all 3 runs 57% 37% 50% 57%
Precision@5 37% 26% 40% 26%
Results inside the query's window 59% 37% 44% 29%
Empty responses (of 90) 0 27 12 3
Latency p50 / p95, client (ms) 593 / 804 1,864 / 3,305 1,106 / 3,997 2,038 / 4,117
Search cost per correct answer $0.026 $0.016 $0.012 $0.008

What happened in each use case

GTM: "what's new?" favors freshness

GTM agent: all providers ranked on accuracy, precision, freshness and latency

GTM per-query results

You.com was the only API to surface the day's new Apache Iggy activity, and it was right on that week's funding rounds and agent-memory posts. Parallel won when the agent needed the official page, such as a project's release notes. Tavily won the documentation lookup (Kafka consumer settings). For an agent that watches for fresh buying signals, freshness matters most. For one that mostly looks up release notes or docs, Parallel or Tavily fit better.

Insurance: live status is hard for everyone

Insurance agent: all providers ranked on accuracy, precision, freshness and latency

Insurance per-query results

You.com returned the latest hurricane advisory and answered every call in under a second. For current wind speed, though, it returned a cached weather page instead of a live reading. Exa was the only API to get both the live wind speed and both county warnings, which is why it leads insurance accuracy. No API found the active binding suspension from the state insurer of last resort. An insurance agent still needs a direct check of carrier and regulator pages.

Finance: two reliable APIs, one tie-breaker

Finance agent: all providers ranked on accuracy, precision, freshness and latency

Finance per-query results

You.com and Parallel both reliably answered live market and filing questions: the NVDA price, the 10-year yield, Bitcoin, the Fed minutes, a fresh 8-K and an earnings date. Parallel edged ahead because it was the only API to find the right week's jobless-claims report. Tavily returned nothing on queries limited to government domains, and Exa mostly returned stale prices.

Developer setup is part of the product

I also timed signup to a working API key from screen recordings.

Time and steps to activation

Tavily was fastest (25 seconds, 3 steps). Every provider's first API call worked on the first try.

Limits

  • 10 queries per use case is a focused test, not a leaderboard. A difference of a query or two is noise.
  • Results reflect one day (Oct 8, 2026). Real-time answer keys are only valid for that date.
  • Costs are list prices and cover search only, not the answering model.

Use it, rerun it, extend it

Everything is open and MIT-licensed:

Which queries or providers should I add next? I'd especially like ideas for making real-time answer keys reproducible.

Top comments (2)

Collapse
 
paul_irolla_6b5ae261d0224 profile image
Paul Irolla •

Thirty queries tell you which API won on those thirty. To say what each one is good at, every query needs an answer you can check. Without that, the grading turns into reading, and reading rewards the answer that sounds most sure.

Collapse
 
maxbuildsdev profile image
Max Kaya •

Useful breakdown — the per-use-case split is more actionable than the usual one-winner eval. The insurance result matches what I'd expect: none of these indices update fast enough for anything mid-call, so a fallback to the carrier/regulator page directly is unavoidable anyway.

Question on methodology: when you say same request for every API, did you normalize per-provider domain filtering/exclusions, or take each API's defaults? Some of these re-rank aggressively behind the scenes, so a query-by-query grid can partly reflect their threshold choices rather than raw retrieval quality. Also curious how you score the "none" expected answers — partial credit or binary? That's the part that best separates stale-from-current.