SerpApi vs DataForSEO in 2026
One key answers both calls.
SerpApi sells monthly plans from $25 for 1,000 searches, and DataForSEO charges $2 per 1,000 results pages in Live Mode after a $50 minimum top-up. Each has its own request and JSON. SpecStream answers both calls with one key.
Change https://serpapi.com to https://api.specstream.ai/serpapi and https://api.dataforseo.com to https://api.specstream.ai/dataforseo. The SerpApi call and the DataForSEO task keep their parameters and their parsers.
A search of up to 10 results costs $0.005 on either path, with a median of 0.82 s. SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks (benchmarks).
New accounts get $10 of credit, no card. It covers 2,000 searches.
SpecStream, SerpApi and DataForSEO side by side
| SpecStream | SerpApi | DataForSEO | |
|---|---|---|---|
| The call your code sends | Both, on one key. GET https://api.specstream.ai/serpapi/search.json?engine=google with the key as api_key, and POST https://api.specstream.ai/dataforseo/v3/serp/google/organic/live/advanced with the key as the Basic auth password | GET https://serpapi.com/search?engine=google with a SerpApi key as api_key | POST https://api.dataforseo.com/v3/serp/google/organic/live/advanced with the API login and password |
| Price per 1,000 searches | $5 for up to 10 results, on both paths, with no monthly plan | $25 on Starter (1,000 searches for $25 a month), $15 on Developer (5,000 for $75), $10 on Production (15,000 for $150) | $2 per 1,000 results pages in Live Mode, $1.20 in Priority Queue and $0.60 in Standard Queue |
| Time to results | A median of 0.82 s at 1 search a second and 1.07 s at 20 a second, measured on production on November 9, 2026 | Ludicrous Speed costs 2x the base price, and Ludicrous Speed Max 4x | Up to 6 seconds in Live Mode, up to 1 minute in Priority Queue and 5 minutes on average in Standard Queue |
| Volume | No limit per key and no daily limit. A busy call answers in the API's own error form with Retry-After, and charges nothing | Guaranteed successful searches an hour: 200 on Starter, 1,000 on Developer, 3,000 on Production | Up to 10,000 API calls a minute, one task per Live call |
| Results per call | Up to 100 on either path. Each started block of 10 more adds $0.006, so 100 results cost $0.059 | The number of results returned does not change the credits used | depth up to 200, billed per results page of up to 10 results |
| Failed calls | A 429 on the SerpApi path, or DataForSEO's own 40202 on its path, comes with Retry-After and charges nothing | Cached, errored and failed searches are not counted | HTTP 200 except in its listed cases, with the error in status_code |
| Free to start | $10 of credit, no card, which covers 2,000 searches. Credit you buy never expires | 250 searches a month on the Free plan. A paid plan renews early on its own when its searches run out | A $1 credit on sign up. The minimum account top-up is $50, and the balance has no expiration date |
| Past the results page | The Extract API reads any page at $0.80 per 1,000 pages, and Deep Search returns every match on the live web as rows that meet each condition you wrote, at 5¢, 15¢ or $1 a row | Google results pages as JSON through engine=google | Results pages as JSON. An AI Overview adds $0.002 a call |
Why teams choosing between SerpApi and DataForSEO use SpecStream
Keep both calls and change two lines
Your SerpApi request and your DataForSEO task keep their parameters and their parsers. Each one changes its address, and both carry the same key.
# SerpApi: was https://serpapi.com/search.json
curl "https://api.specstream.ai/serpapi/search.json?engine=google&q=web+scraping+api&num=10&api_key=$SPECSTREAM_KEY"
# DataForSEO: was https://api.dataforseo.com/v3/serp/google/organic/live/advanced
curl -X POST https://api.specstream.ai/dataforseo/v3/serp/google/organic/live/advanced \
-u "login:$SPECSTREAM_KEY" -H "Content-Type: application/json" \
-d '[{"keyword": "web scraping api", "location_code": 2840, "language_code": "en", "depth": 10}]'A team that has not chosen yet writes to either format and moves nothing later. The parameter by parameter tables are in the SerpApi migration guide and the DataForSEO migration guide.
What each path reads and returns
On /serpapi/search.json and /serpapi/search, engine=google, q, num from 1 to 100, start and tbs date ranges work as on SerpApi, with each API's own language, country and safe search parameters. The reply has search_metadata, search_parameters, organic_results[] with position, title, link, displayed_link, snippet and date when the page has one, and serpapi_pagination.next. redirect_link, thumbnail, favicon, snippet_highlighted_words, sitelinks and source are not returned. In serpapi-python, set client.BASE_DOMAIN to https://api.specstream.ai/serpapi.
On /dataforseo/v3/serp/google/organic/live/regular and .../live/advanced, one task a call with keyword, location_code, language_code and depth, 10 by default and up to 200. The reply is DataForSEO's envelope with status_code, cost and tasks[].result[].items[], each organic item with rank_group, rank_absolute, position, domain, title, description, url and breadcrumb. The login is not read.
$5 per 1,000 searches, live, with no plan
SerpApi sells searches by the month: 15,000 on Production cost $150, and the plan renews early when they run out. DataForSEO prices the live call at $2 per 1,000 and asks $50 before the first paid call. On SpecStream every live search of up to 10 results is $0.005, 100 results are $0.059, and the first $10 of credit needs no card. A top-up never expires, and a busy call charges nothing.
The most accurate web search API in the world
The SpecStream Search API scores a 97.9 F-score on all 1,000 official SimpleQA Verified questions, with 978 correct. On WideSearch it scores 64.0 item F1 and 43.4 row F1 on all 200 official tasks, and the Extract API scores 0.908 F1 on WCXB. SerpApi's own post of Oct 16, 2026 reports 97.6% on 937 of the 960 questions it kept after setting 40 aside. The scores and the method are at specstream.ai/benchmarks.
About one second a search, with no limit per key
Both paths run the fast search. On November 9, 2026 production took 1 to 20 fast searches a second and answered 718 of 720: the median was 0.82 s at 1 search a second and 1.07 s at 20 a second, and the 95th percentile stayed between 1.09 and 1.73 s. That is a live result in about a second with no queue to wait in and no speed tier to buy.
Zero retention on any key
Set zero_retention when you create a key, or later. A search made with that key keeps no request text and no answer after the reply. The charge keeps the account, the key, the request ID, the price and the time. On SerpApi, ZeroTrace comes with the Cloud 1M plan at $3,750 a month.
curl -X POST https://api.specstream.ai/v1/account/keys \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "production", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 500000, "zero_retention": true}'Search, pages, crawls and rows on the same key
A results page gives links. The same key reads up to 20 pages a call with the Extract API at $0.80 per 1,000 pages, maps and crawls whole sites, and runs Deep Search, which returns every match on the live web as structured rows at 5¢, 15¢ or $1 a row. 10,000 rows with 5 facts each cost $500, and the most a run can cost is approved before it starts.
Other search results APIs
SearchApi
Google results as JSON by monthly plan: Developer is $40 a month for 10,000 searches, $4 per 1,000, with 100 free requests. SpecStream answers SearchApi's GET /api/v1/search?engine=google at https://api.specstream.ai/searchapi, in its JSON, with no monthly plan.
Serper
Google results as prepaid credits with no monthly subscription, from $1.00 per 1,000 on the 50k pack, with 2,500 free queries. SpecStream answers Serper's POST /search at https://api.specstream.ai/serper, in Serper's JSON, for $5 per 1,000 searches.
VALUE SERP
Google results at $2.50 per 1,000 pay as you go, or 25,000 searches for $50 a month. SpecStream answers VALUE SERP's GET /search at https://api.specstream.ai/valueserp with the key as api_key.
serpstack
Google results by monthly plan: Basic is $29.99 a month for 5,000 searches. SpecStream answers serpstack's GET /search at https://api.specstream.ai/serpstack/search, at $0.005 a search.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to run your SerpApi and DataForSEO calls on SpecStream
1. Create a key under Agents & API in the workspace. A new account gets $10 of credit, no card, which covers 2,000 searches.
2. Point each call at its SpecStream path. The key goes as api_key on the SerpApi path and as the Basic auth password on the DataForSEO path. In Python:
import requests
# SerpApi's call, was https://serpapi.com/search.json
serp = requests.get(
"https://api.specstream.ai/serpapi/search.json",
params={"engine": "google", "q": "web scraping api", "num": 10, "api_key": SPECSTREAM_KEY},
timeout=30,
).json()
for result in serp["organic_results"]:
print(result["position"], result["title"], result["link"])
# DataForSEO's task, was https://api.dataforseo.com/v3/serp/google/organic/live/advanced
task = [{"keyword": "web scraping api", "location_code": 2840, "language_code": "en", "depth": 10}]
seo = requests.post(
"https://api.specstream.ai/dataforseo/v3/serp/google/organic/live/advanced",
json=task,
auth=("login", SPECSTREAM_KEY),
timeout=30,
).json()
for item in seo["tasks"][0]["result"][0]["items"]:
print(item["rank_absolute"], item["title"], item["url"])3. In JavaScript:
const key = process.env.SPECSTREAM_KEY;
// SerpApi's call, was https://serpapi.com/search.json
const url = new URL("https://api.specstream.ai/serpapi/search.json");
url.search = new URLSearchParams({ engine: "google", q: "web scraping api", api_key: key });
const serp = await fetch(url).then((r) => r.json());
// DataForSEO's task, was https://api.dataforseo.com/v3/serp/google/organic/live/regular
const seo = await fetch("https://api.specstream.ai/dataforseo/v3/serp/google/organic/live/regular", {
method: "POST",
headers: { Authorization: `Basic ${btoa(`login:${key}`)}`, "Content-Type": "application/json" },
body: JSON.stringify([{ keyword: "web scraping api", location_code: 2840, language_code: "en" }]),
}).then((r) => r.json());
for (const result of serp.organic_results) console.log(result.title, result.link);
for (const item of seo.tasks[0].result[0].items) console.log(item.title, item.url);4. Leave the rest. Each call is billed as one search at $0.005 for up to 10 results. Read 429 on the SerpApi path and 40202 on the DataForSEO path as a call to send again after Retry-After; neither is charged.
When your product needs the whole dataset in place of a results page, write the request in plain words. SpecStream reads it back as the conditions every row must meet and the facts to bring back, quotes the most it can cost, and delivers the rows after you approve.
Frequently asked questions
Something we didn't answer? Talk to a human
Is SerpApi better than DataForSEO?
GET /search.json and DataForSEO's live organic task with one key, at $0.005 a search and a median of 0.82 s. It scores 97.9 F-score on all 1,000 SimpleQA Verified questions, and a team keeps whichever format it already wrote.SerpApi vs DataForSEO pricing: what does each cost?
Can I use both SerpApi and DataForSEO?
https://api.specstream.ai/serpapi and DataForSEO's at https://api.specstream.ai/dataforseo, each in its own JSON. One balance, one request log and one spending limit cover both.Which is faster?
How many searches can I run?
Does the SerpApi Python client work with SpecStream?
client.BASE_DOMAIN to https://api.specstream.ai/serpapi and pass the SpecStream key as api_key. SerpApi's npm client keeps its host in its code, so from Node call the address with fetch.Sources
SpecStream wrote this page. Each figure for SerpApi, DataForSEO and the other APIs comes from that company's own page.
- SerpApi pricingserpapi.com/pricing.md, read Nov 10, 2026
- SerpApi Google Search APIserpapi.com/search-api, read Nov 10, 2026
- SerpApi on SimpleQA Verifiedserpapi.com/blog/serpapi-achieves-97-6-accuracy-on-simpleqa-verified/, read Nov 10, 2026
- DataForSEO SERP APIdataforseo.com/apis/serp-api, read Nov 10, 2026
- DataForSEO pricingdataforseo.com/pricing, read Nov 10, 2026
- DataForSEO Google organic live advanceddocs.dataforseo.com/v3/serp/google/organic/live/advanced/, read Nov 10, 2026
- DataForSEO errorsdocs.dataforseo.com/v3/appendix/errors/, read Nov 10, 2026
- SearchApi pricingsearchapi.io/pricing, read Nov 10, 2026
- Serper homepage and pricingserper.dev/, read Nov 10, 2026
- VALUE SERP pricingtrajectdata.com/serp/value-serp-api/pricing/, read Nov 10, 2026
- serpstack pricingserpstack.com/pricing, read Nov 10, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026




