DataForSEO SERP API compatible
Change the address, keep the JSON.
DataForSEO's SERP API costs $2 per 1,000 SERPs in Live Mode, and the minimum account top-up is $50. SpecStream answers the same live organic task in DataForSEO's JSON, with $10 of credit to start, no card.
The switch is one line: https://api.specstream.ai/dataforseo in place of https://api.dataforseo.com, and a SpecStream key as the Basic auth password. The task array and the parser stay.
SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions, with a median of 0.82 s a search. A task of up to 10 results costs $0.005.
New accounts get $10 of credit, no card. It covers 2,000 searches.
DataForSEO SERP API to SpecStream, parameter by parameter and field by field
| SpecStream | DataForSEO SERP API | |
|---|---|---|
| Address | POST https://api.specstream.ai/dataforseo/v3/serp/google/organic/live/regular and .../live/advanced | POST https://api.dataforseo.com/v3/serp/google/organic/live/advanced and /regular |
| The key | HTTP Basic with the SpecStream key as the password; the login is not read | HTTP Basic with the API login and password |
| One call | One task a call. Two tasks get DataForSEO's own 40000 | Up to 10000 API calls per minute, each live call with only one task |
| `depth` | 10 by default, up to 200. depth 300 gets the task's 40501 | Default value 10, max value 200, billed per SERP of up to 10 results |
| Each result | The full envelope with cost, and organic items[] with rank_group, rank_absolute, position, domain, title, description, url and breadcrumb | status_code 20000 envelope with tasks[].result[].items[] |
| Errors | 401 for a wrong key, codes in status_code as DataForSEO sends them. A busy call gets DataForSEO's own 40202 with Retry-After and is not charged | HTTP 200 except for 401, 402, 404 and 500; the error is in status_code |
| Price | $0.005 a task of up to 10 results, each started block of 10 more adds $0.006. depth 30 is $0.017, as cost says | $2 per 1,000 SERPs in Live Mode, $1.2 in Priority Queue, $0.6 in Standard Queue |
| Free to start | $10 of credit, no card, which covers 2,000 searches. No minimum payment | A $1 credit on signing up. The minimum account top-up is $50 |
The DataForSEO SERP API reference, on SpecStream
The call, before and after
# Before
curl https://api.dataforseo.com/v3/serp/google/organic/live/regular \
-u "$DATAFORSEO_LOGIN:$DATAFORSEO_PASSWORD" -H "Content-Type: application/json" \
-d '[{"keyword": "web scraping api", "location_code": 2840, "language_code": "en"}]'
# After
curl https://api.specstream.ai/dataforseo/v3/serp/google/organic/live/regular \
-u "login:$SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '[{"keyword": "web scraping api", "location_code": 2840, "language_code": "en"}]'With DataForSEO's Python client, dataforseo-client 2.1.11, the change is the configuration: Configuration(username="any", password=SPECSTREAM_KEY, host="https://api.specstream.ai/dataforseo"). Your SERP calls then run as before.
What the route reads, and what it refuses
Read and applied: keyword, location_code or location_name, language_code or language_name, depth up to 200, target, tag, se_domain, on both the regular and the advanced form.
Refused, in DataForSEO's own codes: two tasks in one call get 40000, depth over 200 gets the task's 40501, and a wrong key gets 401. Every parameter was measured on production on Nov 10, 2026, and the full pass table lists each one and its result.
Every field that comes back
The reply has version, status_code, status_message, time, cost, tasks_count, tasks_error and tasks[], each task with id, status_code, cost, result_count, path, data and result[]. Each result carries keyword, type, se_domain, location_code, language_code, check_url, datetime, item_types, se_results_count, pages_count, items_count and items[].
Every organic item carries type, rank_group, rank_absolute, page, position, domain, title, description, url, breadcrumb, website_name and the is_* flags. These are present and empty: spell, refinement_chips, and an item's xpath, pre_snippet, extended_snippet, images, rating, price, highlighted, links, faq, extended_people_also_search, about_this_result, related_search_url, timestamp and rectangle.
Pay per task, with no minimum
On DataForSEO the first top-up is at least $50. On SpecStream a new account starts with $10 of credit and no card, each task of up to 10 results costs $0.005, each started block of 10 more adds $0.006, and the cost field shows the price of each call. A busy call gets DataForSEO's own 40202 with Retry-After and charges nothing. Credit you buy never expires.
The most accurate web search API, in about one second
On SimpleQA Verified the SpecStream Search API scores 97.9 F-score on all 1,000 official questions, 978 of them correct. On WideSearch it scores 64.0 item F1 and 43.4 row F1 on all 200 official tasks. The Extract API scores 0.908 F1 on WCXB. Every score and its method is on the benchmarks page.
Every drop-in route runs the fast search. Measured on production on November 9, 2026, its median was 0.82 s at 1 search a second and 1.07 s at 20 a second, the 95th percentile stayed between 1.09 and 1.73 s, and it answered 718 of 720. There is no limit per key and no daily limit.
You decide what is kept, on each key
Create the key with zero_retention and a search made with it keeps no request text and no answer after the reply. spend_cap_cents is the most the key can spend.
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 and rows on one key
The same key reads up to 20 pages or documents a call with the Extract API at $0.80 per 1,000 pages, and a page with no text is not charged. Deep Search returns every match for a request in plain words as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value. The full comparison is on the DataForSEO alternative page.
What else DataForSEO users price
SerpApi
Google results on monthly plans: Starter is $25 for 1,000 searches with 200 an hour, Developer $75 for 5,000. SpecStream charges $0.005 a search with no plan, and answers SerpApi's call at https://api.specstream.ai/serpapi too.
Serper
Google results in credit packs from $1.00 per 1,000 for 50,000 credits, with 2,500 free queries. SpecStream answers Serper's call at https://api.specstream.ai/serper, and its credit never expires.
VALUE SERP
Google results at $2.50 per 1,000 on pay as you go, or 25,000 searches for $50 a month. SpecStream answers VALUE SERP's call at https://api.specstream.ai/valueserp, AI Overview included at the price of one search.
serpstack
Google results on monthly plans: Basic is $29.99 for 5,000 searches, and each search over the plan costs $0.023992. SpecStream answers serpstack's call at https://api.specstream.ai/serpstack at $0.005 a search.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to migrate, step by step
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. Set the host to https://api.specstream.ai/dataforseo where your code has https://api.dataforseo.com, and send the SpecStream key as the Basic auth password. In Python:
import requests
URL = "https://api.specstream.ai/dataforseo/v3/serp/google/organic/live/advanced" # was https://api.dataforseo.com/...
task = [{"keyword": "web scraping api", "location_code": 2840, "language_code": "en", "depth": 10}]
reply = requests.post(URL, json=task, auth=("login", SPECSTREAM_KEY), timeout=30)
reply.raise_for_status()
for item in reply.json()["tasks"][0]["result"][0]["items"]:
print(item["rank_absolute"], item["title"], item["url"])3. In JavaScript:
const reply = await fetch("https://api.specstream.ai/dataforseo/v3/serp/google/organic/live/regular", {
method: "POST",
headers: { Authorization: `Basic ${btoa(`login:${process.env.SPECSTREAM_KEY}`)}`, "Content-Type": "application/json" },
body: JSON.stringify([{ keyword: "web scraping api", location_code: 2840, language_code: "en" }]),
});
const data = await reply.json();
for (const item of data.tasks[0].result[0].items) console.log(item.rank_absolute, item.title, item.url);4. Read status_code 20000 as success, as before, and read 40202 as a call to send again after Retry-After. It is not charged.
Frequently asked questions
Something we didn't answer? Talk to a human
Is there a DataForSEO SERP API compatible API?
https://api.specstream.ai/dataforseo in DataForSEO's JSON, as measured on production on Nov 10, 2026. A task of up to 10 results costs $0.005.How do I migrate from DataForSEO?
https://api.dataforseo.com becomes https://api.specstream.ai/dataforseo, and the SpecStream key goes in as the Basic auth password. keyword, the location and language fields, depth, target, tag and se_domain keep their meaning.How much does the DataForSEO SERP API cost?
Does the DataForSEO Python client work with SpecStream?
dataforseo-client 2.1.11 works with host="https://api.specstream.ai/dataforseo" and the SpecStream key as the password, as tested on production on Nov 10, 2026.Can I send more than one task in a call?
40000, and there is no limit per key.Which DataForSEO fields does SpecStream leave empty?
spell, refinement_chips, an item's extended_snippet, rating, price, links, faq and rectangle. Every organic item keeps its rank, domain, title, description, url and breadcrumb.Sources
SpecStream wrote this page. Each DataForSEO figure comes from DataForSEO's own pages, and each other provider's figure from that company's own page. The route's behavior comes from its code and the pass table measured on production.
- DataForSEO SERP API pricingdataforseo.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
- SpecStream DataForSEO pass tablespecstream.ai/specstream/dialects/dataforseo.md, read Nov 10, 2026
- SerpApi pricingserpapi.com/pricing.md, read Nov 10, 2026
- Serperserper.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 benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




