Web search APIs, measured

We sent 45 real questions that AI agents asked during real work and checked each result against an answer key verified on the primary source: 10 search APIs ranked; 14 settings measured, one of them a partial run. Exa's answer API was judged separately. Synthetic Search API found the most required facts (0.96 with full page text) and also ranked the answer page first most often.

Measured by usOur search eval, one run · Nov 7, 2026 Method
45
graded questions (48 written, 3 dropped)
6
question classes
0.96
best fact@5 (Synthetic Search API)
Nov 7, 2026
measured

The ranking

10 search APIs ranked; 14 settings measured. Each API is ranked once, at its best-scoring setting by fact@5; its other settings sit indented beneath it, unranked, as does one equal-budget check. Scores equal to two decimals share a rank. Whole-page APIs send 47k to 86k characters per query; excerpt APIs send 965 to 12k. Hover or tap a dotted value for its source. Cost is the list price per 1,000 calls.

10 search APIs ranked by fact@5 on 45 real agent questions, each at its best-scoring setting; indented rows are other settings or an equal-budget check, not ranked. Measured Nov 7, 2026.
Rank Search API fact@5 Context (chars/query) Full answers Answer page first In top 3 pages Cost / 1k Latency
1 Synthetic Search API full page text 0.96 Our search eval Share of required facts found in the top 5 results' returned text Nov 7, 2026 47k Whole pages: median characters returned per query Nov 7, 2026 41/45 32/45 36/45 In plan Plan-included: in every Synthetic subscription (from $9/mo); 250 searches/hour quota 0.66 s
↳ Synthetic Search API trimmed to 900 chars/result · equal-budget check, not ranked 0.87 Our search eval, equal-budget check, not ranked Share of required facts found in the top 5 results' returned text Nov 7, 2026 4.8k Excerpts: median characters returned per query Nov 7, 2026 33/45 32/45 36/45 In plan 0.70 s
=2 Jina Search s.jina.ai, whole pages 18.6 s per call; free 10M tokens ≈ 470 searches 0.92 Our search eval Share of required facts found in the top 5 results' returned text. Tied: same score to two decimals (0.924). Nov 7, 2026 86k Whole pages: median characters returned per query Nov 7, 2026 36/45 18/45 29/45 Token-billed Billed by tokens; 10M free tokens, about 470 searches at its median page size (eval/REPORT.md) 18.6 s
=2 Parallel Search basic mode 0.92 Our search eval Share of required facts found in the top 5 results' returned text. Tied: same score to two decimals (0.917). Nov 7, 2026 5.0k Excerpts: median characters returned per query Nov 7, 2026 35/45 24/45 34/45 $5 $5 per 1,000 calls; same $80 free credit 2.7 s
↳ Parallel Search fast mode · other setting, not ranked 0.91, within 0.01 of basic at 1/5 the price and 0.74 s vs 2.7 s 0.91 Our search eval, another setting (not ranked) Share of required facts found in the top 5 results' returned text Nov 7, 2026 7.5k Excerpts: median characters returned per query Nov 7, 2026 38/45 26/45 34/45 $1 $1 per 1,000 calls; $80 free credit for 60 days 0.74 s
4 Linkup standard primary page in its top 5 on only 7/45 (others 21–28); mostly secondary sources 0.87 Our search eval Share of required facts found in the top 5 results' returned text Nov 7, 2026 12k Excerpts: median characters returned per query Nov 7, 2026 33/45 23/45 26/45 $5–6 $5–6 per 1,000 calls; $20 free credit 1.5 s
5 Tavily advanced 0.84 Our search eval Share of required facts found in the top 5 results' returned text Nov 7, 2026 8.7k Excerpts: median characters returned per query Nov 7, 2026 29/45 21/45 32/45 $10–16 2.8 s
↳ Tavily basic · other setting, not ranked 0.84, within 0.01 of advanced; 1 credit per search vs 2; 1.4 s vs 2.8 s 0.84 Our search eval, another setting (not ranked) Share of required facts found in the top 5 results' returned text Nov 7, 2026 6.3k Excerpts: median characters returned per query Nov 7, 2026 29/45 23/45 28/45 $5–8 1.4 s
6 Exa auto 0.75 Our search eval Share of required facts found in the top 5 results' returned text Nov 7, 2026 2.7k Excerpts: median characters returned per query Nov 7, 2026 24/45 28/45 32/45 $7 1.8 s
↳ Exa instant · other setting, not ranked · answered 41/45; failed calls score 0 0.61 vs 0.75; $4 vs $7 per 1k; 0.89 s vs 1.8 s 0.61 Our search eval, another setting (not ranked) Share of required facts found in the top 5 results' returned text Nov 7, 2026 2.5k Excerpts: median characters returned per query Nov 7, 2026 17/45 23/45 30/45 $4 0.89 s
7 Brave Search API web 0.65 Our search eval Share of required facts found in the top 5 results' returned text Nov 7, 2026 1.5k Excerpts: median characters returned per query Nov 7, 2026 17/45 26/45 35/45 $5 1.3 s
=8 Serper Google results, snippets 0.61 Our search eval Share of required facts found in the top 5 results' returned text. Tied: same score to two decimals (0.615). Nov 7, 2026 965 Excerpts: median characters returned per query Nov 7, 2026 13/45 18/45 29/45 $0.30–1 $0.30–1 per 1,000 calls by volume; 2,500 free searches 1.1 s
=8 TinyFish search, snippets 0.61 Our search eval Share of required facts found in the top 5 results' returned text. Tied: same score to two decimals (0.609). Nov 7, 2026 971 Excerpts: median characters returned per query Nov 7, 2026 13/45 20/45 27/45 Free Free search, limited to 5 calls a minute 1.6 s
10 DuckDuckGo HTML results 0.54 Our search eval Share of required facts found in the top 5 results' returned text Nov 7, 2026 1.5k Excerpts: median characters returned per query Nov 7, 2026 9/45 19/45 30/45 Free No official search API; results page read directly 1.4 s

Tried, not measured: You.com. The account's free credit read as depleted.

Synthetic Search API returns whole pages, about 47k characters per query, which helps its fact@5. Its equal-budget check trims the same results to 900 characters per result, about 4.8k per query. Trimmed, it scores 0.87: behind Jina (0.92, whole pages at ~86k chars) and Parallel basic mode (0.92 at ~5.0k chars), level with Linkup (0.87 at ~12k chars), and ahead of Tavily advanced (0.84 at ~8.7k chars) and Exa auto (0.75 at ~2.7k chars). Its ranking still leads: the answer page came first 32 times, against 28 for the next API whose result pages we read.

Parallel is the best excerpt API: 0.92 in basic mode, and 0.91 in fast mode at 1/5 the price ($1 against $5 per 1,000 calls) and 0.74 s against 2.7 s. For most agents fast mode is the better buy.

Measured by us

Full answers in the returned text

  1. Synthetic Search APIfull page text 41/45
  2. Parallel Searchfast mode 38/45
  3. Jina Searchs.jina.ai, whole pages 36/45
  4. Parallel Searchbasic mode 35/45
  5. Synthetic Search API900-char trim 33/45
  6. Linkupstandard 33/45
  7. Tavilyadvanced 29/45
  8. Tavilybasic 29/45
  9. Exaauto 24/45
  10. Exainstant 17/45
  11. Brave Search APIweb 17/45
  12. SerperGoogle results, snippets 13/45
  13. TinyFishsearch, snippets 13/45
  14. DuckDuckGoHTML results 9/45

Questions where every required fact appeared in the top five results.

Measured by us

Context size per query

  1. Jina Searchs.jina.ai, whole pages 86k chars
  2. Synthetic Search APIfull page text 47k chars
  3. Linkupstandard 12k chars
  4. Tavilyadvanced 8.7k chars
  5. Parallel Searchfast mode 7.5k chars
  6. Tavilybasic 6.3k chars
  7. Parallel Searchbasic mode 5.0k chars
  8. Synthetic Search API900-char trim 4.8k chars
  9. Exaauto 2.7k chars
  10. Firecrawl/v2/search, partial 2.6k chars
  11. Exainstant 2.5k chars
  12. DuckDuckGoHTML results 1.5k chars
  13. Brave Search APIweb 1.5k chars
  14. TinyFishsearch, snippets 971 chars
  15. SerperGoogle results, snippets 965 chars

Median characters returned for the top five results, on a linear scale from zero. More text finds more facts but costs the agent more tokens.

Measured by us

Answer page ranked first, read in full

  1. Synthetic Search APIfull page text 32/45top 3: 36
  2. Exaauto 28/45top 3: 32
  3. Parallel Searchfast mode 26/45top 3: 34
  4. Brave Search APIweb 26/45top 3: 35
  5. Parallel Searchbasic mode 24/45top 3: 34
  6. Linkupstandard 23/45top 3: 26
  7. Tavilybasic 23/45top 3: 28
  8. Exainstant 23/45top 3: 30
  9. Tavilyadvanced 21/45top 3: 32
  10. TinyFishsearch, snippets 20/45top 3: 27
  11. DuckDuckGoHTML results 19/45top 3: 30
  12. Jina Searchs.jina.ai, whole pages 18/45top 3: 29
  13. SerperGoogle results, snippets 18/45top 3: 29

The way an agent searches, then fetches: the first result page, read in full, held every required fact.

Measured by us

Median latency

  1. Synthetic Search APIfull page text 0.66 s
  2. Firecrawl/v2/search, partial 0.72 s
  3. Parallel Searchfast mode 0.74 s
  4. Exainstant 0.89 s
  5. SerperGoogle results, snippets 1.1 s
  6. Brave Search APIweb 1.3 s
  7. Tavilybasic 1.4 s
  8. DuckDuckGoHTML results 1.4 s
  9. Linkupstandard 1.5 s
  10. TinyFishsearch, snippets 1.6 s
  11. Exaauto 1.8 s
  12. Parallel Searchbasic mode 2.7 s
  13. Tavilyadvanced 2.8 s
  14. Jina Searchs.jina.ai, whole pages 18.6 s

Shorter is faster. One call per question, median over the calls that returned.

By question class

fact@5 within each class. Shading runs from the lowest cell (0.33) to the highest (1.00); the outlined cell leads its column.

Search APIDevn=7Docsn=8Newsn=8Policyn=8Pricen=7Specn=7
Synthetic Search APIfull page text 1.000.940.970.881.001.00
Jina Searchs.jina.ai, whole pages 1.000.940.930.960.900.81
Parallel Searchbasic mode 0.960.940.910.760.951.00
Linkupstandard 0.890.940.780.891.000.71
Tavilyadvanced 0.850.930.800.680.900.93
Exaauto 0.890.720.900.500.950.57
Brave Search APIweb 0.820.640.660.500.860.48
SerperGoogle results, snippets 0.680.570.640.410.860.57
TinyFishsearch, snippets 0.710.540.610.560.670.57
DuckDuckGoHTML results 0.750.570.470.450.710.33
  • Synthetic Search API full page text
    Dev1.00
    Docs0.94
    News0.97
    Policy0.88
    Price1.00
    Spec1.00
  • Jina Search s.jina.ai, whole pages
    Dev1.00
    Docs0.94
    News0.93
    Policy0.96
    Price0.90
    Spec0.81
  • Parallel Search basic mode
    Dev0.96
    Docs0.94
    News0.91
    Policy0.76
    Price0.95
    Spec1.00
  • Linkup standard
    Dev0.89
    Docs0.94
    News0.78
    Policy0.89
    Price1.00
    Spec0.71
  • Tavily advanced
    Dev0.85
    Docs0.93
    News0.80
    Policy0.68
    Price0.90
    Spec0.93
  • Exa auto
    Dev0.89
    Docs0.72
    News0.90
    Policy0.50
    Price0.95
    Spec0.57
  • Brave Search API web
    Dev0.82
    Docs0.64
    News0.66
    Policy0.50
    Price0.86
    Spec0.48
  • Serper Google results, snippets
    Dev0.68
    Docs0.57
    News0.64
    Policy0.41
    Price0.86
    Spec0.57
  • TinyFish search, snippets
    Dev0.71
    Docs0.54
    News0.61
    Policy0.56
    Price0.67
    Spec0.57
  • DuckDuckGo HTML results
    Dev0.75
    Docs0.57
    News0.47
    Policy0.45
    Price0.71
    Spec0.33

Policy and spec questions were the hardest for most APIs. Classes hold 7 or 8 questions each, so a single question moves a cell by more than 0.1.

Partly measured

Shown, not ranked, until it answers every question.

Measured by uspartial: free-tier rate limits, 37/45 answered · Nov 7, 2026

Firecrawl /v2/search

0.77
fact@5 on the 37 answered questions
21/37
full answers
0.72 s
median latency
~$5
per 1k calls

8 calls hit the free tier's rate limit, all on policy questions, so its score covers the other 37 and isn't comparable with the ranked rows. Counted as zero, the failed calls would put it at 0.63. It joins the ranking once it answers every question.

Exa /answer, judged

An answer API returns one cited paragraph, so it was judged as an answer, not as search results.

Measured by usstring match, then read by hand · Nov 7, 2026
  • 37 right
  • 5 partly right
  • 3 wrong
  • of 45 questions

List price $5 per 1,000 calls. Median 2.0 s per answer.

  • 22 answers contained every required fact verbatim. We read the other 23 against the answer key by hand.
  • The wrong answers read as fluent and confident: one gave a date a week off, one described a mechanism that doesn't exist. Open the cited page before acting on one.

What independent boards say

Not our measurement. Different questions, different metric, and APIs we haven't run yet.

Independent benchmarkopenbenchmarks.com, multi-hop agent search · Oct 21, 2026

F1 on 45 questions that need several searches

  1. Parallelbasic 46.5
  2. Exadeep 45.4
  3. Paralleladvanced 44.2
  4. Exainstant 43.3
  5. Linkupfast 41.1
  6. Tavilyadvanced 41.1
  7. Tavilybasic 36.5
  8. Firecrawl/v2/search 30.4
  9. Braveweb 28.0

Mean of 3 runs. Not an accuracy percentage. With no search tool, the same model scores 20.1.

Independent benchmarkopenbenchmarks.com, coding agents, search only · snapshot Sep 15, 2026

Coding tickets completed from search snippets alone

  1. Perplexitylow 77.3%
  2. Firecrawl 70.3%
  3. Parallelfast 66.7%
  4. Exafast 66.3%
  5. Exainstant 61.3%
  6. Tavilyfast 47.3%
  7. BraveLLM context 43.0%

When the agent may also fetch pages, the order changes: Exa deep leads at 83.0% (see fetch).

  • Brave is a clear example of task shape deciding the result: 94.0% on openbenchmarks' single-fact board, 16th of 20 on its multi-hop board, and first in two smaller LLM-judged studies (AIMultiple, GroundRoute).
  • openbenchmarks flags its own single-fact board as biased toward vendors measured later, pending a re-run, so we don't chart it.
  • Synthetic's search API isn't on any independent board we found. Perplexity isn't in our eval, and You.com isn't measured yet.

What the questions look like

6 of the 45, from the dev, docs and price classes. Each has a primary-source answer key.

  • devWhat is the CPU time limit per request (invocation) for Cloudflare Workers on the Free plan?
  • devIn pnpm 11, which setting replaces onlyBuiltDependencies for allowing dependency build scripts?
  • docsCan a user log in to pypi.org with their email address instead of their username?
  • docsHow do you apply D1 migrations in tests with Cloudflare's Vitest integration (which functions, where they run)?
  • priceWhat does Exa charge per 1,000 requests for Deep Search, Auto Search and Answer?
  • priceWhat is RunPod Serverless's flex price per second for an L4 (24 GB) GPU worker?

Class sizes: Dev 7 · Docs 8 · News 8 · Policy 8 · Price 7 · Spec 7.

Caveats

  • One run per API. Results were fetched within minutes of the answer key being checked, so every API saw the same live web.
  • Grading is string matching on required facts. It undercounts paraphrases ("10 milliseconds" against "10 ms") for every API alike; the answer API was also read by hand.
  • Three of the 48 questions were dropped: one had no primary source, one had its only source in an image, one had its source page change.
  • A failed call scores zero, because it fails the agent too. Exa instant failed on 4 questions (answered 41/45). Firecrawl, whose 8 failures were free-tier rate limits, is shown separately and scored on what it answered.
  • Linkup's returned text scores well, but it leans on secondary pages (blogs, write-ups) more than the others do; open its sources before citing them.
  • You.com was tried but not measured: the account's free credit read as depleted. Docs tools are compared on the dev and docs questions on the docs page.
  • Prices are list prices on the measurement date. Synthetic's search is included in its subscriptions, with an hourly quota, rather than billed per call.