Web Search APIs, Then vs Now

Search APIs used to return ten links. The best ones now read the pages, and four clear 95% on SimpleQA. browserfoundry deep search scores 95.30% with no model in the loop, at $3 per 1,000 requests: the lowest price of the four. Every score, price and record, sourced.

Short answer: two years ago a web search API handed your model ten links and two-line snippets, and the reading was your problem. Today the best ones read the pages for you, and on OpenAI's SimpleQA benchmark four APIs now clear 95%: Exa, Parallel, browserfoundry and You.com, within 0.3 points of each other. browserfoundry deep search scores 95.30% with no model in the loop (the answer has to be in the data the API returns) at $3 per 1,000 requests, the lowest price of the four. Every number below links to its source, and our script and all 1,141 records are public on GitHub.

What changed: web search APIs then vs now

Then (2023–2024) Now (2026)
What you get back Ten links and short snippets Ranked pages with the relevant passages or full text
Who reads the pages You: fetch, clean and parse each URL The API reads them before responding
Where it came from Bing Web Search API, Google Custom Search, SERP scrapers Independent indexes and live-web pipelines built for agents
Status Bing API retired Aug 11, 2025; Google Custom Search closed to new customers, ends Jan 1, 2027 Search APIs built for agents, priced from a few dollars per 1,000
SimpleQA with search Snippets alone contain the answer about 72% of the time (our measurement below) Top APIs at 95%

The jump from 72% to 95% isn't a better ranking algorithm. It's reading. On our own run, search snippets alone held the answer for 72.4% of questions. Reading every candidate page end to end took that to 87.7%, before any judging. That reading step is the difference between the two eras.

Who scores what on SimpleQA?

SimpleQA is OpenAI's benchmark of 4,326 short factual questions, each written to trip up language models and each with one verified answer. It has become the standard accuracy test for search APIs. Here is each provider's best published score next to what that configuration costs:

SimpleQA score and price per 1,000 requests, every provider
SimpleQA (%)price per 1,000 requests708090100$0$5$10$15Exa (full page)Exa (full page): 95.47 on SimpleQA · $17.00 per 1,000 ($7 search + 10 pages of contents at $1 per 1,000 pages) · Answer + judge, full-page contents (You.com, Sep 2026)95.47Exa (full page): 95.47 on SimpleQA · $17.00 per 1,000 ($7 search + 10 pages of contents at $1 per 1,000 pages) · Answer + judge, full-page contents (You.com, Sep 2026)$17.00Parallel (advanced)Parallel (advanced): 95.33 on SimpleQA · $5.00 per 1,000 (Search API, 10 results, advanced mode) · Answer + judge, advanced mode (You.com, Sep 2026)95.33Parallel (advanced): 95.33 on SimpleQA · $5.00 per 1,000 (Search API, 10 results, advanced mode) · Answer + judge, advanced mode (You.com, Sep 2026)$5.00browserfoundry deep searchbrowserfoundry deep search: 95.30 on SimpleQA · $3.00 per 1,000 (Full pipeline: live resolution, full-page reads, re-rank) · Retrieval only, no reader model or judge. n=1,000, seed 4295.30browserfoundry deep search: 95.30 on SimpleQA · $3.00 per 1,000 (Full pipeline: live resolution, full-page reads, re-rank) · Retrieval only, no reader model or judge. n=1,000, seed 42$3.00You.com (Highlights)You.com (Highlights): 95.17 on SimpleQA · $5.00 per 1,000 (Web Search API, Highlights included) · Answer + judge, Highlights extraction (self-published, Sep 2026)95.17You.com (Highlights): 95.17 on SimpleQA · $5.00 per 1,000 (Web Search API, Highlights included) · Answer + judge, Highlights extraction (self-published, Sep 2026)$5.00Brave AI GroundingBrave AI Grounding: 94.1 F1 on SimpleQA · $4.00 per 1,000 (Answers API, plus $5 per million tokens in and out) · F1 score, multi-search grounding (self-published)94.1Brave AI Grounding: 94.1 F1 on SimpleQA · $4.00 per 1,000 (Answers API, plus $5 per million tokens in and out) · F1 score, multi-search grounding (self-published)$4.00Linkup FastLinkup Fast: 94 F1 on SimpleQA · $5.00 per 1,000 (Search, fast depth) · F1 score, sub-second search APIs (self-published)94Linkup Fast: 94 F1 on SimpleQA · $5.00 per 1,000 (Search, fast depth) · F1 score, sub-second search APIs (self-published)$5.00TavilyTavily: 93.3 on SimpleQA · $8.00 per 1,000 (Basic search, pay as you go) · GPT-4.1 answers, official classifier (self-published)93.3Tavily: 93.3 on SimpleQA · $8.00 per 1,000 (Basic search, pay as you go) · GPT-4.1 answers, official classifier (self-published)$8.00Perplexity SearchPerplexity Search: 85.92 on SimpleQA · $5.00 per 1,000 (Search API) · GPT-4.1 answers, official classifier (Tavily's harness)85.92Perplexity Search: 85.92 on SimpleQA · $5.00 per 1,000 (Search API) · GPT-4.1 answers, official classifier (Tavily's harness)$5.00Google (via Serper)Google (via Serper): 82.15 on SimpleQA · $1.00 per 1,000 (Serper, 50,000-search pack; Google has no official web search API) · SERP results, GPT-4.1 answers (Tavily's harness)82.15Google (via Serper): 82.15 on SimpleQA · $1.00 per 1,000 (Serper, 50,000-search pack; Google has no official web search API) · SERP results, GPT-4.1 answers (Tavily's harness)$1.00
Each provider's best published SimpleQA run (left) and the list price per 1,000 requests of the configuration behind it (right). The top four are within 0.3 points of each other, inside run-to-run noise; of those four, browserfoundry costs the least. browserfoundry's score is retrieval-only with no reader model or judge; the rest are answering pipelines, so model tokens come on top of their price. Brave and Linkup publish F1. Prices from each vendor's pricing page, Oct 7, 2026.
Data
ProviderSimpleQAPrice per 1,000What that price buysHarnessScore source
Exa (full page)95.47$17.00$7 search + 10 pages of contents at $1 per 1,000 pagesAnswer + judge, full-page contents (You.com, Sep 2026)you.com/resources/highlights-parameter-web-search-api
Parallel (advanced)95.33$5.00Search API, 10 results, advanced modeAnswer + judge, advanced mode (You.com, Sep 2026)you.com/resources/highlights-parameter-web-search-api
browserfoundry deep search95.30$3.00Full pipeline: live resolution, full-page reads, re-rankRetrieval only, no reader model or judge. n=1,000, seed 42github.com/Keirolabs-API/deep-endpoint-benchmark-results
You.com (Highlights)95.17$5.00Web Search API, Highlights includedAnswer + judge, Highlights extraction (self-published, Sep 2026)you.com/resources/highlights-parameter-web-search-api
Brave AI Grounding94.1 F1$4.00Answers API, plus $5 per million tokens in and outF1 score, multi-search grounding (self-published)brave.com/blog/ai-grounding
Linkup Fast94 F1$5.00Search, fast depthF1 score, sub-second search APIs (self-published)linkup.so/benchmarks
Tavily93.3$8.00Basic search, pay as you goGPT-4.1 answers, official classifier (self-published)tavily.com blog
Perplexity Search85.92$5.00Search APIGPT-4.1 answers, official classifier (Tavily's harness)github.com/tavily-ai/tavily-search-evals
Google (via Serper)82.15$1.00Serper, 50,000-search pack; Google has no official web search APISERP results, GPT-4.1 answers (Tavily's harness)github.com/tavily-ai/tavily-search-evals

Three things to read this chart correctly:

  1. The top four are tied. 95.47, 95.33, 95.30 and 95.17 sit within 0.3 points of each other, which is inside the run-to-run variance of this benchmark. Anyone telling you one of them is "the most accurate" off this data is overselling.
  2. The tests differ. Every competitor score is an answering pipeline: an LLM reads the provider's results, writes an answer, and a judge model grades it. Ours is retrieval only: we check whether the gold answer appears in what the API returned, with no reader model to rephrase, infer or already know the answer. Brave and Linkup publish F1 rather than accuracy.
  3. These are each vendor's best runs. Most are self-published or run by a competitor, and each source is in the data table under the chart. We've used the highest number we could find for each provider, not the lowest.

What does 95% cost?

Accuracy is a tie at the top, so the deciding question is price. Here are the four APIs above 95%, with the list price per 1,000 requests for the exact configuration behind each score:

Provider SimpleQA Price per 1,000 requests What you still pay for on top
browserfoundry deep search 95.30% $3.00 Nothing: full-page reads and re-ranking are included, and no model is needed to score this
Parallel (advanced) 95.33% $5.00 A reader model's tokens
You.com (Highlights) 95.17% $5.00 A reader model's tokens
Exa (full page) 95.47% about $17.00 ($7 search + 10 pages of contents) A reader model's tokens

At $3, browserfoundry costs 40% less than Parallel or You.com and about 80% less than Exa's full-page setup for the same tier of accuracy, before counting the language-model tokens their pipelines need to turn results into answers. Prices are from each vendor's pricing page on October 7, 2026; check them for your own volume.

How did we measure 95.30%?

The runner is one zero-dependency Node file, testbench.js in the public benchmark repo. It does four things.

1. Draws a deterministic sample. It downloads OpenAI's public SimpleQA CSV and takes a seeded Fisher–Yates sample of 1,000 questions. The same seed always gives the same questions:

// mulberry32 PRNG + Fisher–Yates: deterministic per seed
function sampleRows(rows, n, seed) {
  const rand = mulberry32(seed);
  const idx = rows.map((_, i) => i);
  for (let i = idx.length - 1; i > 0; i--) {
    const j = Math.floor(rand() * (i + 1));
    [idx[i], idx[j]] = [idx[j], idx[i]];
  }
  return idx.slice(0, n).map((i) => rows[i]);
}

2. Calls deep search once per question, asking for 10 results, and keeps the full response.

3. Checks for the gold answer mechanically. Both sides are normalized (lowercased, articles and punctuation stripped), then it's a substring test over every snippet and every page:

function normalize2(s) {
  return String(s || "")
    .toLowerCase()
    .replace(/\b(a|an|the)\b/g, " ")
    .replace(/[^a-z0-9 ]/g, " ")
    .replace(/\s+/g, " ")
    .trim();
}
const goldIn = (text, gold) =>
  !!text && normalize2(gold) !== "" && normalize2(text).includes(normalize2(gold));

4. Writes every record to results.json: question, gold answer, verdict and the complete returned payload, 1,141 records in all. Any call we judged, you can open and check.

To rerun it:

git clone https://github.com/Keirolabs-API/deep-endpoint-benchmark-results
cd deep-endpoint-benchmark-results
export SEARCH_API_KEY=your_api_key         # from your browserfoundry dashboard
SAMPLE_SIZE=1000 SAMPLE_SEED=42 node testbench.js

What counts as a hit?

The raw substring check scored 87.9%. A plain substring test is too strict for facts, though: "July 4, 1976" and "4 July 1976" are the same answer, and so are "TX" and "Texas". Every raw miss was audited by hand under fixed rules, and the audit was deliberately stingy:

Counted as a hit Not counted
Date-order and comma variants Derived answers: a duration or conversion the pages let you calculate but never state
Abbreviations (km / kilometers, TX / Texas) Half a compound: only part of a multi-part answer present
Transliterations (Jung / Jang) Contested golds: where sources contradict SimpleQA's answer, we side with the sources and take the miss
Numerals vs words, ordinal suffixes Anything that needs a model to infer it
Split compounds where every part appears verbatim on one page

74 raw misses passed the audit and 43 stayed misses: 87.9% becomes 95.3%. Every rescued record is in results.json for anyone who wants to check our calls.

Where do the points come from?

Where the 95.3 points come from
0%25%50%75%100%Search snippets onlySearch snippets only: 72.4%72.4%+ pages read in full+ pages read in full: +15.3 → 87.7%+15.3 → 87.7%+ variant-form judging+ variant-form judging: +7.6 → 95.3%+7.6 → 95.3%Judged accuracyJudged accuracy: 95.3%95.3%
The same questions measured at three stages. Search snippets alone contain the answer 72.4% of the time. Reading every candidate page end to end adds 15.3 points, the step link-only APIs leave to you. Hand-auditing the raw misses for legitimate variant forms (date order, abbreviations, transliterations) adds 7.6. Stages 1-2 were measured on the merged 1,141-record run; the judged step on the seeded 1,000-question sample.
Data
StageAccuracyAdded
Search snippets only72.4%—
+ pages read in full87.7%+15.3
+ variant-form judging95.3%+7.6

Snippets alone hold the answer 72.4% of the time, which is roughly the "then" column above. Reading every candidate page in full adds 15.3 points, and 175 questions were answered only by full page text. That's what deep search does:

  1. Compile. Turn the question into the specific fact it's asking for: an entity, an attribute, and the shape of the answer (a date, a number, a name).
  2. Resolve. Find about 10 pages on the live web that could carry that fact.
  3. Prove. Read every candidate in full and score each by how directly it states the answer: 7.9 pages per question on average.
  4. Assemble. Return the pages ranked by evidence, with snippets and full text.

All that reading gives deep search a median response time of 14.7 seconds. It's built for research agents, verification steps and citation-grounded answers. For interactive use, /search/fast returns in about a second.

Is the score consistent?

Consistency across 20 seeded chunks of 50
80%85%90%95%100%median 96%Chunk at offset 100: 46/50 judged (92%), 39/50 rawChunk at offset 150: 49/50 judged (98%), 46/50 rawChunk at offset 200: 47/50 judged (94%), 43/50 rawChunk at offset 250: 48/50 judged (96%), 44/50 rawChunk at offset 300: 48/50 judged (96%), 43/50 rawChunk at offset 350: 48/50 judged (96%), 44/50 rawChunk at offset 400: 49/50 judged (98%), 44/50 rawChunk at offset 450: 49/50 judged (98%), 42/50 rawChunk at offset 500: 46/50 judged (92%), 44/50 rawChunk at offset 550: 43/50 judged (86%), 42/50 rawChunk at offset 600: 47/50 judged (94%), 44/50 rawChunk at offset 650: 48/50 judged (96%), 42/50 rawChunk at offset 700: 47/50 judged (94%), 44/50 rawChunk at offset 750: 47/50 judged (94%), 44/50 rawChunk at offset 800: 50/50 judged (100%), 49/50 rawChunk at offset 850: 49/50 judged (98%), 43/50 rawChunk at offset 900: 45/50 judged (90%), 41/50 rawChunk at offset 950: 49/50 judged (98%), 45/50 rawChunk at offset 1000: 48/50 judged (96%), 48/50 rawChunk at offset 1100: 50/50 judged (100%), 48/50 raw1002003004005006007008009001000chunk (question offset)judged
The 1,000 questions ran as 20 chunks of 50. Judged accuracy ranges from 86% to 100%, median 96%, with two perfect chunks: the score isn't carried by an easy slice. One further chunk ran during an API credit outage and is excluded; its records stay in results.json for audit.
Data
Chunk offsetRawJudgedJudged %
10039/5046/5092%
15046/5049/5098%
20043/5047/5094%
25044/5048/5096%
30043/5048/5096%
35044/5048/5096%
40044/5049/5098%
45042/5049/5098%
50044/5046/5092%
55042/5043/5086%
60044/5047/5094%
65042/5048/5096%
70044/5047/5094%
75044/5047/5094%
80049/5050/50100%
85043/5049/5098%
90041/5045/5090%
95045/5049/5098%
100048/5048/5096%
110048/5050/50100%

The 1,000 questions ran as 20 seeded chunks of 50. Judged accuracy ranged from 86% to 100%, median 96%, with two perfect chunks, so the score isn't carried by an easy slice. One additional chunk ran during a credit outage on our side and is excluded; its records stay in results.json.

What do the 43 misses look like?

Kind of miss What happened
Derived answers The pages give the inputs but never state the answer itself. A retrieval check doesn't do arithmetic.
Paywalled numbers The fact exists behind a login: book chapters, subscription databases.
Deep-lookup facts Episode credits, award lists, docket dates: long-tail facts no index ranks first.
Contested golds The sources disagree with SimpleQA's answer. We kept the sources and took the miss.

What are the limits of this result?

  • It's our harness, run by us. The code and every payload are public, but it isn't an independent evaluation. Anyone can rerun it with a free key, and we'd welcome a third party doing so.
  • It isn't the same test as the others. Retrieval-only and answer-then-judge measure different things. A reader model can lose points the retrieval had, or gain points from what it already knows.
  • The variant-form audit was done by hand, under published rules; a stricter reader could reclassify some of the 74 rescues.
  • SimpleQA is short factual lookups. It says nothing about multi-hop research or freshness.

Sources

FAQ

Which web search APIs score highest on SimpleQA?

Four clear 95% on their best published runs: Exa full page 95.47%, Parallel advanced 95.33%, browserfoundry deep search 95.30% and You.com Highlights 95.17%. They're within 0.3 points of each other, which is inside run-to-run variance, so treat them as tied.

What is the cheapest web search API scoring above 95% on SimpleQA?

browserfoundry deep search, at $3 per 1,000 requests with full-page reading included. Parallel advanced and You.com Highlights list at $5 per 1,000 and Exa's full-page setup at about $17, before the model tokens their answering pipelines need.

How is browserfoundry's 95.30% measured?

Retrieval only: on a seeded 1,000-question SimpleQA sample, the gold answer must appear in the snippets or page text the API returns. There's no reader model and no judge. The raw substring score was 87.9%; a hand audit for variant forms rescued 74 misses.

How have web search APIs changed?

They used to return ten links and short snippets, and you fetched and read the pages yourself. On SimpleQA, snippets alone hold the answer about 72% of the time. Today's best APIs read the pages before responding, which is how the top tier reaches 95%.

Can I reproduce browserfoundry's SimpleQA result?

Yes. testbench.js in the public benchmark repo on GitHub is a zero-dependency Node script. Set SEARCH_API_KEY and run SAMPLE_SIZE=1000 SAMPLE_SEED=42 node testbench.js. results.json holds all 1,141 records with full payloads.

Keep reading
Engineering

How browserfoundry Serves 1M+ Web Searches a Week at a 600 ms p99

Extraction

URL to Markdown for LLMs: 7 Ways to Do It, Compared

Search APIs

What Web Search Costs in the OpenAI, Claude, Gemini and Perplexity APIs