benchmarks/web-search/multi-turn company search/most token efficient search API
45 questions · multi-hop · 20 configurations · updated 26 Sept 2026

Most token-efficient web search API for research agents

What the benchmark found. SERP (serp) used the fewest tokens per task search-only, a median of 10,890 tokens at 0.4% F1. The F1 leader, Parallel basic (parallel-basic), used 303,467 tokens at 46.5%.

What this page compares. Every search result the agent reads is model context. This page sorts the board by median task tokens, the total the agent consumed to finish a question, with F1 beside it.

How to read it. Fewer tokens is better only at equal task quality. A provider that returns short snippets and forces more searches can use more tokens end to end than one with longer, more useful results. Sorted by median task tokens, ascending.

Method in one paragraph. The same agent, prompt, turn budget and tool schema run against every web search API on 45 questions that each define a company set by three or four constraints. Every returned company is resolved to a canonical identity and compared with a human-reviewed gold set; precision, recall, F1 and exact-set are averaged over three runs per question. The model-only baseline is 0.

Most accurate · Fastest · Cheapest · Find companies by criteria · Search + fetch · Full benchmark

open runner + judgePublic in openbenchmarks-labs/multi-turn-company-search; dataset openbenchmarks/OB-Company-Websearch.github →

Ranked by median task tokens, fewest first

Most token-efficient web search API for research agents: search-only
ProviderEndpoint & configurationPrecision / 1k tokensPrecisionMedian task tokens
SERPGET google-search74.p.rapidapi.comserp0.070.7 ± 1.310,890
Brave SearchGET /res/v1/web/searchbrave1.3766.9 ± 8.549,005
FirecrawlPOST /v2/searchfirecrawl1.5377.3 ± 4.450,596
TinyFishGET api.search.tinyfish.aitinyfish1.2764.7 ± 1.551,091
NimblePOST /v2/searchsearch_depth=lite · full_content=false · focus=general1.1862.8 ± 1.953,219
PerplexityPOST /searchsearch_context_size=low1.1879.3 ± 5.766,928
NimblePOST /v2/searchsearch_depth=standard · full_content=false · focus=general0.6470.3 ± 3.3109,000
Parallel turboPOST /v1/search mode=turboparallel-turbo0.7280.0 ± 5.2110,844
Parallel fastPOST /v1/search mode=fastparallel-fast0.6779.9 ± 4.6119,953
Tavily basicPOST /search search_depth=basictavily-basic0.5882.5 ± 1.9142,692
Exa instantPOST /search type=instantexa-instant0.5482.6 ± 3.8152,622
Exa deepPOST /search type=deepexa-deep0.5483.2 ± 3.0153,061
Parallel advancedPOST /v1/search mode=advancedparallel-advanced0.5587.6 ± 3.4159,733
Tavily advancedPOST /search search_depth=advancedtavily-advanced0.3583.7 ± 4.2237,706
YouPOST /v1/searchextraction_mode=highlights · knowledge=core0.3380.9 ± 1.6244,245
Linkup standardPOST /v1/search depth=standardlinkup-standard0.3484.0 ± 7.9249,382
Linkup fastPOST /v1/search depth=fastlinkup-fast0.3282.8 ± 1.0259,642
YouPOST /v1/searchextraction_mode=highlights0.3079.3 ± 4.9264,016
Parallel basicPOST /v1/search mode=basicparallel-basic0.2988.7 ± 0.9303,467
SeltzPOST /v1/search scope=companiesseltz-companies0.0840.0 ± 3.1500,633

Acc / 1k tokens = precision percentage ÷ median task tokens × 1,000; higher is better. Accuracy on this table uses precision: the share of returned answers that match the reference set. Median task tokens sum LLM input and output across every turn, then take the median across all repeats. Missing measurements are shown as —. Precision is mean ± sample SD in percentage points.

Same sort, with a page-reading tool enabled

Most token-efficient web search API for research agents: search + fetch
ProviderEndpoint & configurationPrecision / 1k tokensPrecisionMedian task tokens
SERPGET google-search74.p.rapidapi.comserp0.000.0 ± 0.011,051
TinyFishGET api.search.tinyfish.aitinyfish1.3270.9 ± 11.353,654
Brave SearchGET /res/v1/web/searchbrave1.3573.5 ± 5.854,482
FirecrawlPOST /v2/searchfirecrawl1.5183.3 ± 0.855,069
NimblePOST /v2/searchsearch_depth=lite · full_content=false · focus=general · extract formats=[markdown]1.1768.5 ± 4.458,732
Parallel turboPOST /v1/search mode=turboparallel-turbo0.7783.6 ± 4.0108,358
NimblePOST /v2/searchsearch_depth=standard · full_content=false · focus=general · extract formats=[markdown]0.6273.2 ± 1.9117,345
Parallel fastPOST /v1/search mode=fastparallel-fast0.6982.3 ± 6.6119,278
PerplexityPOST /searchsearch_context_size=high0.7287.7 ± 5.9121,239
Tavily basicPOST /search search_depth=basictavily-basic0.5781.2 ± 5.9141,892
Exa deepPOST /search type=deepexa-deep0.6189.4 ± 1.2147,079
Parallel advancedPOST /v1/search mode=advancedparallel-advanced0.5887.6 ± 0.3152,116
Exa instantPOST /search type=instantexa-instant0.5585.9 ± 2.5156,796
Tavily advancedPOST /search search_depth=advancedtavily-advanced0.4389.4 ± 6.0208,974
YouPOST /v1/searchextraction_mode=highlights0.3585.2 ± 2.7241,834
Linkup fastPOST /v1/search depth=fastlinkup-fast0.3585.3 ± 3.6246,395
YouPOST /v1/searchextraction_mode=highlights · knowledge=core0.3178.2 ± 2.5250,679
Linkup standardPOST /v1/search depth=standardlinkup-standard0.3690.7 ± 2.0254,078
Parallel basicPOST /v1/search mode=basicparallel-basic0.2781.3 ± 2.8304,826
SeltzPOST /v1/search scope=companiesseltz-companies0.1049.5 ± 2.4502,391

Acc / 1k tokens = precision percentage ÷ median task tokens × 1,000; higher is better. Accuracy on this table uses precision: the share of returned answers that match the reference set. Median task tokens sum LLM input and output across every turn, then take the median across all repeats. Missing measurements are shown as —. Precision is mean ± sample SD in percentage points.

Common questions

Which web search API is most token-efficient for research agents?

SERP (serp) used the fewest tokens per task search-only, a median of 10,890 tokens at 0.4% F1. The F1 leader, Parallel basic (parallel-basic), used 303,467 tokens at 46.5%.

Why show F1 next to tokens?

A provider can be token-cheap by returning little; the agent then runs more searches or gives up early, and the company set is incomplete. Token efficiency only counts at comparable task quality, which is why the F1 column stays on this table.

Are these the search API's tokens or the model's?

The model's. Median task tokens is the total context the fixed agent consumed to finish a question: search results, page fetches where enabled, and its own reasoning. It is the part of the bill that scales with how much a search API returns.