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

Most token-efficient web search API for research agents

What the benchmark found. SERP (RapidAPI) (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
SERP (RapidAPI)GET 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
PerplexityPOST /searchsearch_context_size=low1.1879.3 ± 5.766,928
ParallelPOST /v1/search mode=turboparallel-turbo0.7280.0 ± 5.2110,844
YouPOST /v1/searchyou0.6575.7 ± 3.1116,109
ParallelPOST /v1/search mode=fastparallel-fast0.6779.9 ± 4.6119,953
ExaPOST /search type=instantexa-instant0.5482.6 ± 3.8152,622
ExaPOST /search type=deepexa-deep0.5483.2 ± 3.0153,061
ParallelPOST /v1/search mode=advancedparallel-advanced0.5587.6 ± 3.4159,733
TavilyPOST /search search_depth=advancedtavily-advanced0.3583.7 ± 4.2237,706
LinkupPOST /v1/search depth=standardlinkup-standard0.3484.0 ± 7.9249,382
LinkupPOST /v1/search depth=fastlinkup-fast0.3282.8 ± 1.0259,642
ParallelPOST /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
SERP (RapidAPI)GET 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
ParallelPOST /v1/search mode=turboparallel-turbo0.7783.6 ± 4.0108,358
YouPOST /v1/searchyou0.6778.8 ± 0.6117,286
ParallelPOST /v1/search mode=fastparallel-fast0.6982.3 ± 6.6119,278
PerplexityPOST /searchsearch_context_size=high0.7287.7 ± 5.9121,239
ExaPOST /search type=deepexa-deep0.6189.4 ± 1.2147,079
ParallelPOST /v1/search mode=advancedparallel-advanced0.5887.6 ± 0.3152,116
ExaPOST /search type=instantexa-instant0.5585.9 ± 2.5156,796
TavilyPOST /search search_depth=advancedtavily-advanced0.4389.4 ± 6.0208,974
LinkupPOST /v1/search depth=fastlinkup-fast0.3585.3 ± 3.6246,395
LinkupPOST /v1/search depth=standardlinkup-standard0.3690.7 ± 2.0254,078
ParallelPOST /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 (RapidAPI) (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.