Web Search API Benchmark for AI Agents — Exa vs SerpAPI vs Brave vs Tavily
Golden-URL accuracy for agent search APIs. 299 verified queries (public split, descriptive form) · snapshot web_search-2026-q3 · holdout 30% excluded.
Exa (80.9% hit@5) is the clear leader over SerpAPI (69.2%): Exa's 95% Wilson CI [76.1, 85.0] is disjoint from SerpAPI's [63.8, 74.2] and McNemar p≈0.001, so the two are statistically separable at n=299. Both are ahead of Brave (58.9%) and Tavily (49.4%). Cost, freshness & latency: pending — sentinel & cost instruments not yet run.
Full Leaderboard
| Vendor | hit@1 % | hit@5 % | fresh<30d % | retrievability h | cost/correct $ | p50 latency ms |
|---|---|---|---|---|---|---|
| 1Exa | 62.2 | 80.995% CI 76.1–85.0 | — | — | — | — |
| 2SerpAPI | 56.9 | 69.295% CI 63.8–74.2 | — | — | — | — |
| 3Brave | 48.8 | 58.995% CI 53.2–64.3 | — | — | — | — |
| 4Tavily | 31.4 | 49.495% CI 43.8–55.0 | — | — | — | — |
— denotes a metric not measured this snapshot: fresh<30d, retrievability, cost/correct and p50 latency have no scored run yet (sentinel & cost instruments pending), so they render as an em-dash and are excluded from ranking — never as 0. hit@5 carries a 95% Wilson CI. Exa leads: Exa (80.9%) and SerpAPI (69.2%) have disjoint CIs (McNemar p≈0.001, separable at n=299), so Exa is the clear #1. Serper and Firecrawl are not yet scored on web_search and are excluded from this snapshot.
- Golden rows (299 public queries + accepted golden-URL equivalence classes + truth tokens)
- Raw results (3587 per-(vendor,rep) hit@k outcomes, with miss reasons)
- Snapshot JSON (aggregates · Wilson CIs · per-metric status · content_hash · run timestamp)
- Run engine + scoring script (GoldenEvalWebSearch)
- Scoring methodology · atomic claims (status-tagged)
Cost, Freshness & Latency
Cost, freshness & latency: pending — the sentinel-page freshness instrument and the cost/latency metering have not been run for this snapshot. No cost, freshness or latency leader is claimed for web_search; these columns render as — until their first scored run lands, never as 0.