Best Web Search APIs for AI Agents: 2026 Comparison & Benchmark
Best search API by accuracy: Exa (type=fast) at 99.3%. Fastest search: Parallel (mode=turbo) at 348ms mean search latency. Cheapest by cost per 1,000 correct answers: TinyFish at $0, using API list prices. Compare the best web search APIs for AI agents from 11 providers, including Exa, Firecrawl, Parallel, Tavily and Brave, by accuracy, speed and cost. Independent benchmark results with official API docs for grounding and RAG.
Compared on the same 300 search questions.
- Most accurate: Exa (type=fast): 99.3% accuracy. Search table.
- Fastest: Parallel (mode=turbo): 348ms mean latency. Fastest page.
- Cheapest: TinyFish: $0 per 1,000 correct answers. Cheapest page.
Web Search for AI: API Comparison Benchmarked
Extracted-answer accuracy on 300 questions. Same query, max 10 results, model and judge held constant.
| Rank | Vendor | Endpoint & configuration | Official docs | Accuracy | AR@1 | AR@5 | $ / 1k correct | Latency | Snippet tokens | Total $ | Cost per 1,000 queries |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Exaweb search | POST /searchtype=fast | Exa fast official docs | 99.3% | 95.0% | 99.3% | $7.05 | 652ms | 1,987 | $2.10 | $7 / 1ktype=fast · up to 10 results |
| 2 | Exaweb search | POST /searchtype=instant | Exa instant official docs | 97.7% | 80.0% | 97.3% | $7.17 | 398ms | 2,128 | $2.10 | $7 / 1ktype=instant · up to 10 results |
| 3 | Perplexityweb search | POST /searchsearch_context_size=low | Perplexity low official docs | 97.3% | 91.7% | 98.3% | $5.14 | 1.38s | 476 | $1.50 | $5 / 1kSearch API · POST /search |
| 4 | Linkupweb search | POST /v1/searchdepth=fast · outputType=searchResults | Linkup fast official docs | 96.7% | 79.0% | 94.7% | $5.17 | 1.57s | 3,022 | $1.50 | $5 / 1kdepth=fast · searchResults |
| 5 | SERPgoogle search | GET google-search74.p.rapidapi.comlimit=10 | SERP (RapidAPI) official docs | 96.0% | 78.0% | 95.0% | $3.13 | 751ms | 497 | $0.90 | $3 / 1kPro overage $0.003/request |
| 6 | Firecrawlweb search | POST /v2/search | Firecrawl official docs | 95.3% | 77.7% | 96.7% | $5.24 | 510ms | 678 | $1.50 | $5 / 1k2 credits / 10 results |
| 7 | Nimbleweb search | POST /v2/searchsearch_depth=lite · full_content=false · focus=general | Nimble official docs | 94.3% | 59.7% | 93.7% | $1.17 | 2.46s | 860 | $0.33 | $1.1 / 1ksearch_depth=lite · full_content=false |
| 8 | Brave Searchweb search | POST /res/v1/llm/contextcount=10 | Brave LLM context official docs | 94.0% | 81.0% | 94.7% | $5.32 | 601ms | 2,064 | $1.50 | $5 / 1kSearch plan · LLM Context |
| 9 | Parallelweb search | POST /v1/searchmode=basic | Parallel basic official docs | 93.3% | 55.0% | 92.0% | $5.36 | 1.68s | 2,330 | $1.50 | $5 / 1kmode=basic · 10 results |
| 10 | Brave Searchweb search | GET /res/v1/web/searchcount=10 · result_filter=web | Brave Search official docs | 93.3% | 79.3% | 91.7% | $5.36 | 630ms | 817 | $1.50 | $5 / 1k |
| 11 | Nimbleweb search | POST /v2/searchsearch_depth=standard · full_content=false · focus=general | Nimble official docs | 93.0% | 86.3% | 94.3% | $5.38 | 861ms | 2,730 | $1.50 | $5 / 1ksearch_depth=standard · full_content=false |
| 12 | Tavilyweb search | POST /searchsearch_depth=advanced | Tavily advanced official docs | 93.0% | 65.0% | 92.7% | $17.20 | 4.29s | 2,210 | $4.80 | $16 / 1k2 credits · $0.008 PAYG |
| 13 | TinyFishweb search | GET api.search.tinyfish.aifree · 30 req/min cap | TinyFish official docs | 92.0% | 74.3% | 90.7% | Free30 req/min cap | 2.62s | 441 | Free | $0free · 30 req/min, 500/hour |
| 14 | Linkupweb search | POST /v1/searchdepth=standard · outputType=searchResults | Linkup standard official docs | 92.0% | 67.3% | 90.3% | $5.43 | 2.55s | 2,983 | $1.50 | $5 / 1kdepth=standard · searchResults |
| 15 | Youweb search | POST /v1/searchextraction_mode=highlights · knowledge=core | You official docs | 92.0% | 67.3% | 89.7% | $5.43 | 889ms | 2,862 | $1.50 | $5 / 1khighlights · knowledge=core · same Web Search price assumption |
| 16 | Youweb search | POST /v1/searchextraction_mode=highlights | You official docs | 90.7% | 72.0% | 89.7% | $5.51 | 628ms | 2,837 | $1.50 | $5 / 1khighlights included in Web Search |
| 17 | Tavilyweb search | POST /searchsearch_depth=basic | Tavily basic official docs | 87.7% | 82.0% | 87.7% | $9.13 | 1.88s | 1,639 | $2.40 | $8 / 1k1 credit · $0.008 PAYG |
| 18 | Parallelweb search | POST /v1/searchmode=fast | Parallel fast official docs | 86.0% | 44.3% | 79.0% | $1.16 | 942ms | 1,839 | $0.30 | $1 / 1kmode=fast · 10 results |
| 19 | Parallelweb search | POST /v1/searchmode=turbo | Parallel turbo official docs | 71.3% | 45.3% | 66.0% | $1.40 | 348ms | 1,853 | $0.30 | $1 / 1kmode=turbo · 10 results |
$ / 1k correct is $ / 1k queries divided by extracted-answer accuracy. Ranked by accuracy, highest first. Cost per 1,000 queries is the published PAYG list price, linked to the vendor pricing page. Not promotional packs or volume discounts. TinyFish Search is free with a 30 requests/min cap — $0 is not unlimited throughput.
How to choose a search API for your AI agent
Match the API to your agent’s inputs and evidence needs. Use the official docs in the search table to check query options, returned content, authentication and rate limits. For public-web RAG, try representative queries and check the evidence used in the final answer.
- Search quality: compare extracted-answer accuracy and answer-bearing recall (AR@1 and AR@5) to assess the evidence returned.
- Speed: compare mean latency for one search request.
- Cost: compare list-price cost per 1,000 queries and cost per 1,000 correct answers. Check provider pricing for current plans and credits.
- Returned content: check the endpoint’s response format and the evidence your agent can use to ground its answer.
Additional comparisons for developer agents and multiple searches
The search table above is the main ranking for this page. The tables below provide supporting results for agents that answer documentation questions, run multiple searches or scrape pages.
Developer search comparison · LLM-agent comparison for multiple searches · Full web search benchmark
Supporting results: developer search
Grounded task completion on 100 held-out documentation tickets. Search and scrape and search-only are separate rankings.
| Rank | Vendor | Endpoint & configuration | Official docs | Task completion | Median task time | Median task cost | Avg search time | Median task tokens | API list price |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Exa deep | POST /search type=deepPOST /contents | Exa deep official docs | 83.0 ± 1.0 | 37s | $0.127$0.057 search+scrape$0.070 token cost | 3.97s | 23,660 | $0.012 / search$0.001 / scrape |
| 2 | Exa auto | POST /search type=autoPOST /contents | Exa auto official docs | 81.7 ± 1.1 | 23s | $0.107$0.032 search+scrape$0.074 token cost | 1.19s | 27,433 | $0.007 / search$0.001 / scrape |
| 3 | TinyFish | GET api.search.tinyfish.aiPOST api.fetch.tinyfish.ai format=markdown | TinyFish official docs | 79.0 ± 2.0 | 24s | $0.050$0.000 search+scrape$0.050 token cost | 1.32s | 12,844 | $0 / search$0 / scrape |
| 4 | Perplexity | POST /search search_context_size=highPOST /search search_context_size=high | Perplexity official docs | 77.7 ± 1.5 | 22s | $0.083$0.025 search+scrape$0.058 token cost | 991ms | 20,062 | $0.005 / search$0.005 / scrape |
| 5 | Parallel advanced | POST /v1/search mode=advancedPOST /v1/extract | Parallel advanced official docs | 77.0 ± 1.0 | 33s | $0.096$0.019 search+scrape$0.077 token cost | 3.11s | 27,092 | $0.005 / search$0.001 / scrape |
| 6 | Parallel basic | POST /v1/search mode=basicPOST /v1/extract | Parallel basic official docs | 76.0 ± 0.0 | 30s | $0.107$0.023 search+scrape$0.084 token cost | 1.59s | 32,809 | $0.005 / search$0.001 / scrape |
| 7 | Firecrawl | POST /v2/searchPOST /v2/scrape | Firecrawl official docs | 76.0 ± 1.0 | 34s | $0.082$0.028 search+scrape$0.055 token cost | 2.81s | 17,379 | $0.005 / search$0.0025 / scrape |
| 8 | Nimble | POST /v2/search search_depth=lite · full_content=false · focus=generalPOST /v2/extract formats=[markdown] | Nimble official docs | 60.3 ± 2.5 | 40s | $0.054$0.054 token cost | 1.93s | 16,828 | $0.0011 / search |
| 9 | Tavily advanced | POST /search search_depth=advancedPOST /extract extract_depth=advanced | Tavily advanced official docs | 60.0 ± 2.0 | 46s | $0.153$0.085 search+scrape$0.069 token cost | 3.41s | 26,269 | $0.016 / search$0.0032 / scrape |
| 10 | Tavily basic | POST /search search_depth=basicPOST /extract extract_depth=basic | Tavily basic official docs | 59.0 ± 1.7 | 32s | $0.113$0.043 search+scrape$0.070 token cost | 1.50s | 27,405 | $0.008 / search$0.0016 / scrape |
| 11 | You | POST /v1/search extraction_mode=highlightsPOST /v1/contents | You official docs | 55.0 ± 1.7 | 27s | $0.119$0.027 search+scrape$0.092 token cost | 638ms | 42,806 | $0.005 / search$0.001 / scrape |
| 12 | You | POST /v1/search extraction_mode=highlights · knowledge=corePOST /v1/contents | You official docs | 54.0 ± 2.0 | 28s | $0.117$0.026 search+scrape$0.091 token cost | 678ms | 37,453 | $0.005 / search$0.001 / scrape |
| 13 | Linkup standard | POST /v1/search depth=standardPOST /v1/fetch mode=standard | Linkup standard official docs | 48.3 ± 4.9 | 48s | $0.147$0.038 search+scrape$0.108 token cost | 2.00s | 57,791 | $0.005 / search$0.005 / scrape |
| 14 | Nimble | POST /v2/search search_depth=standard · full_content=false · focus=generalPOST /v2/extract formats=[markdown] | Nimble official docs | 45.0 ± 1.0 | 44s | $0.078$0.078 token cost | 905ms | 28,586 | $0.005 / search |
Task completion is mean ± SD of 3 runs; n = 100 tasks.
| Rank | Vendor | Endpoint & configuration | Official docs | Task completion | Median task time | Median task cost | Avg search time | Median task tokens | API list price |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Perplexity | POST /search search_context_size=low | Perplexity official docs | 77.3 ± 2.1 | 18s | $0.059$0.025 search$0.034 token cost | 957ms | 8,765 | $0.005 / search |
| 2 | Firecrawl | POST /v2/search | Firecrawl official docs | 70.3 ± 1.5 | 28s | $0.059$0.025 search$0.034 token cost | 2.87s | 7,456 | $0.005 / search |
| 3 | Parallel fast | POST /v1/search mode=fast | Parallel fast official docs | 66.7 ± 1.5 | 22s | $0.054$0.005 search$0.049 token cost | 953ms | 12,460 | $0.001 / search |
| 4 | Exa fast | POST /search type=fast | Exa fast official docs | 66.3 ± 1.5 | 20s | $0.103$0.035 search$0.068 token cost | 626ms | 22,344 | $0.007 / search |
| 5 | Parallel turbo | POST /v1/search mode=turbo | Parallel turbo official docs | 64.7 ± 2.1 | 19s | $0.059$0.005 search$0.054 token cost | 333ms | 14,130 | $0.001 / search |
| 6 | Exa instant | POST /search type=instant | Exa instant official docs | 61.3 ± 2.9 | 21s | $0.105$0.035 search$0.070 token cost | 447ms | 22,423 | $0.007 / search |
| 7 | TinyFish | GET api.search.tinyfish.ai | TinyFish official docs | 59.3 ± 1.5 | 28s | $0.035$0.000 search$0.035 token cost | 2.15s | 7,469 | $0 / search |
| 8 | Tavily basic | POST /search search_depth=basic | Tavily basic official docs | 51.0 ± 5.3 | 26s | $0.097$0.040 search$0.057 token cost | 1.72s | 16,299 | $0.008 / search |
| 9 | Nimble | POST /v2/search search_depth=lite · full_content=false · focus=general | Nimble official docs | 46.7 ± 3.8 | 33s | $0.043$0.005 search$0.037 token cost | 3.15s | 8,713 | $0.0011 / search |
| 10 | Linkup fast | POST /v1/search depth=fast | Linkup fast official docs | 43.3 ± 1.1 | 27s | $0.100$0.025 search$0.075 token cost | 1.39s | 24,057 | $0.005 / search |
| 11 | Nimble | POST /v2/search search_depth=standard · full_content=false · focus=general | Nimble official docs | 42.3 ± 2.5 | 25s | $0.079$0.025 search$0.054 token cost | 878ms | 14,859 | $0.005 / search |
| 12 | You | POST /v1/search extraction_mode=highlights | You official docs | 41.3 ± 3.1 | 24s | $0.097$0.025 search$0.072 token cost | 596ms | 20,333 | $0.005 / search |
| 13 | You | POST /v1/search extraction_mode=highlights · knowledge=core | You official docs | 38.3 ± 3.2 | 21s | $0.096$0.025 search$0.071 token cost | 677ms | 20,786 | $0.005 / search |
| 14 | Brave | POST /res/v1/llm/context | Brave official docs | 38.0 ± 2.6 | 20s | $0.082$0.025 search$0.057 token cost | 523ms | 14,103 | $0.005 / search |
Task completion is mean ± SD of 3 runs; n = 100 tasks.
Supporting results: multiple searches
F1 on 45 questions answered with multiple searches. Search-only and search and scrape have separate rankings.
Search-only
| Provider | Endpoint & configuration | Official docs | F1 | Precision | Recall | Exact set | Median time | Mean turns | Median task cost | API list price |
|---|---|---|---|---|---|---|---|---|---|---|
| Parallel basic | POST /v1/search mode=basicparallel-basic | Parallel basic official docs | 46.5 ± 1.9 | 88.7 ± 0.9 | 34.4 ± 2.0 | 3.7 ± 2.6 | 67.6 s | 7.4 | $1.120$0.070 search$1.050 token cost | $0.005 / search |
| Exa deep | POST /search type=deepexa-deep | Exa deep official docs | 45.4 ± 2.0 | 83.2 ± 3.0 | 33.7 ± 1.4 | 1.5 ± 1.3 | 89.5 s | 7.4 | $0.717$0.156 search$0.556 token cost | $0.012 / search |
| Parallel advanced | POST /v1/search mode=advancedparallel-advanced | Parallel advanced official docs | 44.2 ± 1.4 | 87.6 ± 3.4 | 32.0 ± 1.6 | 2.2 ± 0.0 | 83.4 s | 7.3 | $0.625$0.070 search$0.565 token cost | $0.005 / search |
| Exa instant | POST /search type=instantexa-instant | Exa instant official docs | 43.3 ± 1.0 | 82.6 ± 3.8 | 32.2 ± 0.5 | 3.0 ± 1.3 | 49.8 s | 7.3 | $0.652$0.091 search$0.559 token cost | $0.007 / search |
| Linkup fast | POST /v1/search depth=fastlinkup-fast | Linkup fast official docs | 41.1 ± 1.7 | 82.8 ± 1.0 | 30.3 ± 1.5 | 0.7 ± 1.3 | 64.2 s | 7.4 | $0.923$0.070 search$0.853 token cost | $0.005 / search |
| Tavily advanced | POST /search search_depth=advancedtavily-advanced | Tavily advanced official docs | 41.1 ± 2.3 | 83.7 ± 4.2 | 29.8 ± 1.7 | 2.2 ± 0.0 | 92.2 s | 7.4 | $1.029$0.224 search$0.808 token cost | $0.016 / search |
| Linkup standard | POST /v1/search depth=standardlinkup-standard | Linkup standard official docs | 40.6 ± 0.9 | 84.0 ± 7.9 | 29.7 ± 1.4 | 1.5 ± 2.6 | 72.3 s | 7.3 | $0.937$0.070 search$0.867 token cost | $0.005 / search |
| You | POST /v1/searchextraction_mode=highlights | You official docs | 38.6 ± 0.8 | 79.3 ± 4.9 | 28.3 ± 0.9 | 4.4 ± 0.0 | 48.2 s | 7.5 | $0.971$0.070 search$0.901 token cost | $0.005 / search |
| You | POST /v1/searchextraction_mode=highlights · knowledge=core | You official docs | 38.1 ± 0.6 | 80.9 ± 1.6 | 27.4 ± 0.9 | 3.0 ± 1.3 | 47.6 s | 7.5 | $0.895$0.070 search$0.827 token cost | $0.005 / search |
| Parallel fast | POST /v1/search mode=fastparallel-fast | Parallel fast official docs | 38.0 ± 2.0 | 79.9 ± 4.6 | 27.5 ± 1.4 | 1.5 ± 1.3 | 53.9 s | 7.6 | $0.460$0.014 search$0.447 token cost | $0.001 / search |
| Perplexity | POST /searchsearch_context_size=low | Perplexity official docs | 37.8 ± 2.1 | 79.3 ± 5.7 | 26.8 ± 1.4 | 2.2 ± 2.2 | 48.9 s | 7.7 | $0.334$0.070 search$0.264 token cost | $0.005 / search |
| Tavily basic | POST /search search_depth=basictavily-basic | Tavily basic official docs | 36.5 ± 3.2 | 82.5 ± 1.9 | 25.7 ± 2.7 | 1.5 ± 1.3 | 63.0 s | 7.7 | $0.615$0.112 search$0.504 token cost | $0.008 / search |
| Parallel turbo | POST /v1/search mode=turboparallel-turbo | Parallel turbo official docs | 34.7 ± 2.4 | 80.0 ± 5.2 | 24.8 ± 2.4 | 1.5 ± 1.3 | 46.4 s | 7.6 | $0.419$0.014 search$0.405 token cost | $0.001 / search |
| Nimble | POST /v2/searchsearch_depth=standard · full_content=false · focus=general | Nimble official docs | 30.7 ± 1.4 | 70.3 ± 3.3 | 21.3 ± 1.1 | 0.7 ± 1.3 | 53.0 s | 7.7 | $0.467$0.070 search$0.398 token cost | $0.005 / search |
| Firecrawl | POST /v2/searchfirecrawl | Firecrawl official docs | 30.4 ± 1.1 | 77.3 ± 4.4 | 20.7 ± 0.7 | 2.2 ± 0.0 | 75.0 s | 7.9 | $0.282$0.070 search$0.212 token cost | $0.005 / search |
| Brave Search | GET /res/v1/web/searchbrave | Brave Search official docs | 28.0 ± 1.7 | 66.9 ± 8.5 | 19.3 ± 0.5 | 0.7 ± 1.3 | 43.5 s | 8.0 | $0.268$0.070 search$0.200 token cost | $0.005 / search |
| TinyFish | GET api.search.tinyfish.aitinyfish | TinyFish official docs | 26.6 ± 1.3 | 64.7 ± 1.5 | 17.9 ± 0.8 | 1.5 ± 1.3 | 64.2 s | 7.9 | $0.212$0.000 search$0.212 token cost | $0 / search |
| Nimble | POST /v2/searchsearch_depth=lite · full_content=false · focus=general | Nimble official docs | 25.3 ± 1.1 | 62.8 ± 1.9 | 17.6 ± 1.2 | 1.5 ± 1.3 | 67.9 s | 7.9 | $0.234$0.015 search$0.220 token cost | $0.0011 / search |
| Seltz | POST /v1/search scope=companiesseltz-companies | Seltz official docs | 14.5 ± 0.9 | 40.0 ± 3.1 | 9.4 ± 0.7 | 0.0 ± 0.0 | 55.2 s | 7.3 | $1.751$0.070 search$1.681 token cost | $0.005 / search |
| SERP (RapidAPI) | GET google-search74.p.rapidapi.comserp | SERP (RapidAPI) official docs | 0.4 ± 0.6 | 0.7 ± 1.3 | 0.3 ± 0.4 | 0.0 ± 0.0 | 31.4 s | 7.8 | $0.103$0.036 search$0.065 token cost | $0.003 / search |
F1, precision, recall, and exact-set accuracy are percentages reported as mean ± sample SD across three independent runs; each run aggregates all 45 questions. SD is measured in percentage points. Median time is the median end-to-end time across all runs for each vendor. Median task cost is the median of LLM $ plus search API $ per agent run. API list price is the PAYG unit rate of the search endpoint the harness calls.
Search and scrape
| Provider | Endpoint & configuration | Official docs | F1 | Precision | Recall | Exact set | Median time | Mean turns | Median task cost | API list price |
|---|---|---|---|---|---|---|---|---|---|---|
| Exa deep | POST /search type=deepexa-deep | Exa deep official docs | 48.2 ± 2.1 | 89.4 ± 1.2 | 36.0 ± 2.2 | 2.2 ± 2.2 | 95.8 s | 7.5 | $0.683$0.156 search+scrape$0.526 token cost | $0.012 / search$0.001 / scrape |
| Perplexity | POST /searchsearch_context_size=high | Perplexity official docs | 46.6 ± 2.0 | 87.7 ± 5.9 | 34.7 ± 1.1 | 2.2 ± 2.2 | 53.9 s | 7.5 | $0.504$0.070 search+scrape$0.441 token cost | $0.005 / search |
| Exa instant | POST /search type=instantexa-instant | Exa instant official docs | 44.9 ± 0.9 | 85.9 ± 2.5 | 33.5 ± 0.9 | 5.2 ± 1.3 | 52.5 s | 7.5 | $0.653$0.091 search+scrape$0.557 token cost | $0.007 / search$0.001 / scrape |
| Parallel basic | POST /v1/search mode=basicparallel-basic | Parallel basic official docs | 42.3 ± 1.1 | 81.3 ± 2.8 | 31.3 ± 1.1 | 3.0 ± 1.3 | 68.6 s | 7.5 | $1.089$0.061 search+scrape$1.033 token cost | $0.005 / search$0.001 / scrape |
| Parallel advanced | POST /v1/search mode=advancedparallel-advanced | Parallel advanced official docs | 42.2 ± 1.1 | 87.6 ± 0.3 | 30.1 ± 1.1 | 2.2 ± 0.0 | 80.9 s | 7.4 | $0.599$0.061 search+scrape$0.538 token cost | $0.005 / search$0.001 / scrape |
| Linkup standard | POST /v1/search depth=standardlinkup-standard | Linkup standard official docs | 42.0 ± 1.8 | 90.7 ± 2.0 | 30.5 ± 2.0 | 3.0 ± 3.4 | 81.0 s | 7.5 | $0.911$0.070 search+scrape$0.848 token cost | $0.005 / search$0.001 / scrape |
| Tavily advanced | POST /search search_depth=advancedtavily-advanced | Tavily advanced official docs | 41.0 ± 1.3 | 89.4 ± 6.0 | 29.1 ± 0.7 | 2.2 ± 0.0 | 92.6 s | 7.3 | $0.898$0.195 search+scrape$0.685 token cost | $0.016 / search$0.0032 / scrape |
| Linkup fast | POST /v1/search depth=fastlinkup-fast | Linkup fast official docs | 39.9 ± 1.3 | 85.3 ± 3.6 | 28.6 ± 1.3 | 0.7 ± 1.3 | 68.0 s | 7.3 | $0.903$0.061 search+scrape$0.837 token cost | $0.005 / search$0.001 / scrape |
| Parallel fast | POST /v1/search mode=fastparallel-fast | Parallel fast official docs | 39.3 ± 3.3 | 82.3 ± 6.6 | 28.2 ± 2.0 | 2.2 ± 0.0 | 55.1 s | 7.6 | $0.441$0.014 search+scrape$0.427 token cost | $0.001 / search$0.001 / scrape |
| You | POST /v1/searchextraction_mode=highlights | You official docs | 38.5 ± 1.6 | 85.2 ± 2.7 | 26.9 ± 1.7 | 0.7 ± 1.3 | 45.6 s | 7.4 | $0.864$0.065 search+scrape$0.795 token cost | $0.005 / search$0.001 / scrape |
| You | POST /v1/searchextraction_mode=highlights · knowledge=core | You official docs | 38.5 ± 2.4 | 78.2 ± 2.5 | 28.3 ± 3.0 | 3.7 ± 1.3 | 48.5 s | 7.4 | $0.894$0.065 search+scrape$0.830 token cost | $0.005 / search$0.001 / scrape |
| Tavily basic | POST /search search_depth=basictavily-basic | Tavily basic official docs | 38.1 ± 1.4 | 81.2 ± 5.9 | 27.8 ± 0.7 | 2.2 ± 0.0 | 62.0 s | 7.8 | $0.610$0.112 search+scrape$0.507 token cost | $0.008 / search$0.0032 / scrape |
| Parallel turbo | POST /v1/search mode=turboparallel-turbo | Parallel turbo official docs | 36.0 ± 3.5 | 83.6 ± 4.0 | 25.0 ± 2.6 | 0.0 ± 0.0 | 48.1 s | 7.7 | $0.414$0.013 search+scrape$0.400 token cost | $0.001 / search$0.001 / scrape |
| Firecrawl | POST /v2/searchfirecrawl | Firecrawl official docs | 33.2 ± 2.1 | 83.3 ± 0.8 | 22.7 ± 1.8 | 1.5 ± 1.3 | 82.1 s | 7.9 | $0.295$0.063 search+scrape$0.230 token cost | $0.005 / search$0.0025 / scrape |
| Nimble | POST /v2/searchsearch_depth=standard · full_content=false · focus=general · extract formats=[markdown] | Nimble official docs | 31.3 ± 1.8 | 73.2 ± 1.9 | 21.7 ± 1.6 | 1.5 ± 1.3 | 59.2 s | 7.9 | $0.424$0.424 token cost | $0.005 / search |
| TinyFish | GET api.search.tinyfish.aitinyfish | TinyFish official docs | 30.2 ± 3.5 | 70.9 ± 11.3 | 20.9 ± 2.5 | 0.0 ± 0.0 | 63.4 s | 7.9 | $0.219$0.000 search+scrape$0.219 token cost | $0 / search$0 / scrape |
| Brave Search | GET /res/v1/web/searchbrave | Brave Search official docs | 29.4 ± 1.6 | 73.5 ± 5.8 | 20.4 ± 0.9 | 1.5 ± 1.3 | 45.1 s | 8.0 | $0.285$0.060 search+scrape$0.222 token cost | $0.005 / search |
| Nimble | POST /v2/searchsearch_depth=lite · full_content=false · focus=general · extract formats=[markdown] | Nimble official docs | 27.1 ± 1.5 | 68.5 ± 4.4 | 18.7 ± 0.9 | 2.2 ± 0.0 | 72.0 s | 8.0 | $0.237$0.237 token cost | $0.0011 / search |
| Seltz | POST /v1/search scope=companiesseltz-companies | Seltz official docs | 16.3 ± 1.5 | 49.5 ± 2.4 | 10.2 ± 1.2 | 0.0 ± 0.0 | 60.1 s | 7.5 | $1.741$0.070 search+scrape$1.671 token cost | $0.005 / search |
| SERP (RapidAPI) | GET google-search74.p.rapidapi.comserp | SERP (RapidAPI) official docs | 0.0 ± 0.0 | 0.0 ± 0.0 | 0.0 ± 0.0 | 0.0 ± 0.0 | 33.4 s | 7.8 | $0.102$0.039 search+scrape$0.066 token cost | $0.003 / search |
F1, precision, recall, and exact-set accuracy are percentages reported as mean ± sample SD across three independent runs; each run aggregates all 45 questions. SD is measured in percentage points. Median time is the median end-to-end time across all runs for each vendor. Median task cost is the median of LLM $ plus search/scrape API $ per agent run. API list price is the PAYG unit rate of the search (and scrape) endpoint the harness calls.
Exa vs Tavily vs Brave
Compare each pair on the same search patterns, with separate quality, speed and cost results.
Exa vs Tavily · Tavily vs Parallel · Brave Search vs Exa · Linkup vs Firecrawl · Parallel vs Exa · Linkup vs Tavily · Exa vs Perplexity · Brave Search vs Tavily · Exa vs Firecrawl · Brave Search vs Parallel · Perplexity vs Parallel · You vs Parallel · Linkup vs Parallel · Firecrawl vs Parallel · TinyFish vs Parallel · Exa alternatives
Best web search API for AI agents: FAQ
What is the best web search API for AI agents in 2026?
Exa (type=fast) leads this search comparison at 99.3% extracted-answer accuracy across 300 questions. This page ranks web search APIs by how well one search grounds an answer. Compare accuracy first, then latency, query cost and official docs to choose an API for your AI agent or RAG application.
Which web search API should I use for developer agents?
Perplexity leads search-only developer tasks at 77.3% task completion. Exa deep leads search and scrape at 83.0%. Use the mode your agent supports, then compare task time and cost for the tested configurations.
Which web search API works best for multiple searches?
Parallel basic leads search-only at 46.5% F1. Exa deep leads search and scrape at 48.2% F1. These results measure an agent combining evidence across searches. Compare quality, median task time and task cost in the same mode.
Should my AI agent use search-only or search and scrape?
Search-only uses the content returned by the search endpoint. Search and scrape lets the agent retrieve page content for additional evidence. Choose the mode that matches your integration and compare the separately measured results. Search is a useful starting point for grounding; multiple searches support questions that need evidence from several sources.
How do I choose a web search API for RAG?
For RAG over the public web, start with the search table: compare answer accuracy, evidence recall, latency and cost per query. Check the official docs for the content returned by each endpoint, then test retrieval and answer generation on your own queries. The additional comparisons below provide context for developer agents and workflows using multiple searches.
Exa vs Tavily vs Brave: which web search API is best for AI?
Use the search table to compare their tested configurations on answer accuracy, evidence recall, latency and query cost. Pairwise comparisons cover Exa vs Tavily, Tavily vs Parallel, Brave Search vs Exa, Linkup vs Firecrawl, Parallel vs Exa, Linkup vs Tavily, Exa vs Perplexity, Brave Search vs Tavily, Exa vs Firecrawl, Brave Search vs Parallel, Perplexity vs Parallel, You vs Parallel, Linkup vs Parallel, Firecrawl vs Parallel, TinyFish vs Parallel.
What is the cheapest web search API for AI agents?
For search, TinyFish has the lowest measured list-price cost per 1,000 correct answers at $0. Cost per 1,000 correct answers divides list-price query cost by accuracy. For agent workflows, compare median task cost, which combines LLM and search/scrape API spend. Check official provider pricing for current free tiers, credits and volume plans.
What is the fastest web search API for AI agents?
Parallel (mode=turbo) has the lowest mean search latency at 348ms in this benchmark. For developer agents, compare average search time and median task time. For multiple searches, compare median end-to-end task time alongside F1.
Where can I find official web search API documentation?
Every comparison table includes an Official docs column linking to the provider's search endpoint documentation. Use the Endpoint & configuration column to match the tested API and settings, then check the docs for authentication, query inputs, returned content, rate limits and current pricing.
What do these independent benchmark results measure?
Search measures extracted-answer accuracy on 300 company-news questions, with one query and up to 10 results. Developer search measures grounded task completion on 100 held-out documentation tickets. Multiple searches measure F1 on 45 company-discovery questions with several constraints. Within each comparison, questions, model and judge are held constant and the search API varies. Rankings come from measured results. Code is open source, dataset samples are public and the scoring set is held out.
[06] changelog+
Benchmarked Nimble lite and standard plus You highlights with and without knowledge=core on search-only and search + scrape; 100 tasks across three repeats per configuration and mode.










