SerpApi compatible
Change the address, at $5 per 1,000.
SerpApi's Starter plan is $25 a month for 1,000 searches, $25 per 1,000. SpecStream answers the same GET /search.json?engine=google in SerpApi's JSON for $0.005 a search, with no monthly plan.
The switch is one line: https://api.specstream.ai/serpapi in place of https://serpapi.com, and a SpecStream key as api_key. In serpapi-python that is client.BASE_DOMAIN.
SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks, at $5 per 1,000 searches of up to 10 results.
New accounts get $10 of credit, no card. It covers 2,000 searches.
SerpApi to SpecStream, parameter by parameter and field by field
| SpecStream | SerpApi | |
|---|---|---|
| Address | GET https://api.specstream.ai/serpapi/search.json?engine=google, and /serpapi/search | GET https://serpapi.com/search?engine=google |
| The key | A SpecStream key as api_key in the address | A SerpApi key as api_key in the address |
| Results and pages | num 1 to 100, 10 when you send none, and start for the offset. serpapi_pagination.next carries the next page | The number of results returned does not change the credits used |
| Dates | tbs with qdr:w style ranges or cdr:1,cd_min:...,cd_max:... dates | tbs for advanced search parameters, dates among them |
| Each result | position, title, link, displayed_link, snippet, and date when the page has one. Not returned: redirect_link, thumbnail, favicon, snippet_highlighted_words, sitelinks and source | position, title, link, redirect_link, displayed_link, thumbnail, favicon, snippet and more |
| Errors | SerpApi's {"error": ...}: 401 with no key, 400 for tbm or another engine, 429 when the balance is empty. A busy call gets 429 with Retry-After and is not charged | Cached, errored and failed searches are not counted |
| Price per 1,000 searches | $5 for up to 10 results. 100 results cost $0.059 a call | $25 on Starter, $15 on Developer ($75 for 5,000), $10 on Production ($150 for 15,000) |
| Throughput | Up to 8,800 searches a minute on one account | 200 searches an hour on Starter, 1,000 on Developer, 3,000 on Production |
| Free to start | $10 of credit, no card, which covers 2,000 searches | 250 searches a month on the Free plan |
The SerpApi reference, on SpecStream
The call, before and after
# Before
curl "https://serpapi.com/search.json?engine=google&q=Larkspur+Colorado+mayor&api_key=$SERPAPI_API_KEY"
# After
curl "https://api.specstream.ai/serpapi/search.json?engine=google&q=Larkspur+Colorado+mayor&api_key=$SPECSTREAM_API_KEY"With SerpApi's Python client, serpapi 1.2.0, the change is one line after the client is made. search and next_page() work as before.
import serpapi
client = serpapi.Client(api_key=SPECSTREAM_KEY); client.BASE_DOMAIN = "https://api.specstream.ai/serpapi"
results = client.search({"engine": "google", "q": "Larkspur Colorado mayor"})
for result in results["organic_results"]:
print(result["position"], result["title"], result["link"])Apps and SDKs that take the address as a setting
Each line was run on production on November 10, 2026 through that client's own request and reply code. Put your SpecStream key wherever the client takes its key.
The older google-search-results Python package (2.4.2): set GoogleSearch.BACKEND = "https://api.specstream.ai/serpapi" before the first search.
What the route reads, and what it refuses
Read and applied: q, engine google, num (1 to 100), start, tbs with qdr: or cdr: dates, api_key, and the client's next_page(), which follows serpapi_pagination.next.
Refused with 400: tbm (news, images and the other tabs) and any engine other than google. A call with no key gets 401. Every parameter was measured on production on Nov 10, 2026 with serpapi 1.2.0, and the full pass table lists each one and its result.
Every field that comes back
The reply has search_metadata with id, status, created_at, processed_at and total_time_taken, search_parameters with engine and q, search_information with organic_results_state, query_displayed, total_results and time_taken_displayed, organic_results[], and serpapi_pagination with current, next_link and next.
The route does not return answer_box, knowledge_graph, related_questions, local_results, top_stories, related_searches, search_metadata.json_endpoint, google_url or raw_html_file, or a result's redirect_link, thumbnail, favicon, snippet_highlighted_words, sitelinks and source. One field is added, specstream, with the call's price_usd.
$5 per 1,000 searches, with no monthly plan
On SerpApi, 1,000 searches a month cost $25 on Starter and 5,000 cost $75 on Developer, each with an hourly limit. On SpecStream every call of up to 10 results costs $0.005, each started block of 10 more adds $0.006, and credit you buy never expires. A busy call gets 429 with Retry-After and charges nothing.
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.
A call of up to 10 results on the first page 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. One account can send up to 8,800 searches a minute.
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 most a run can cost is approved before it starts. The full comparison is on the SerpApi alternative page.
What else SerpApi users price
SearchApi.io
Google results on monthly plans from $40 for 10,000 searches, $4 per 1,000, with 100 free requests. SpecStream needs no plan and answers the SerpApi call your code already sends.
Serper
Google results in credit packs from $1.00 per 1,000 for 50,000 credits, with no monthly subscription, in Serper's own reply. SpecStream keeps SerpApi's request and reply, and scores 97.9 F-score on SimpleQA Verified.
VALUE SERP
Google results at $2.50 per 1,000 on pay as you go, or 25,000 searches for $50 a month. SpecStream charges $0.005 a search with no plan, and its credit never expires.
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. With serpapi-python, set client.BASE_DOMAIN to https://api.specstream.ai/serpapi and pass the SpecStream key as api_key. Without the client, in Python:
import requests
URL = "https://api.specstream.ai/serpapi/search.json" # was https://serpapi.com/search.json
reply = requests.get(
URL,
params={"engine": "google", "q": "Larkspur Colorado mayor", "num": 10, "api_key": SPECSTREAM_KEY},
timeout=30,
)
reply.raise_for_status()
for result in reply.json()["organic_results"]:
print(result["position"], result["title"], result["link"])3. In JavaScript, SerpApi's npm client keeps its host in its code, so call the address with fetch:
const url = new URL("https://api.specstream.ai/serpapi/search.json");
url.search = new URLSearchParams({ engine: "google", q: "Larkspur Colorado mayor", api_key: process.env.SPECSTREAM_KEY });
const data = await (await fetch(url)).json();
for (const result of data.organic_results) console.log(result.title, result.link);4. Read 429 with Retry-After as a call to send again later; it is not charged.
Frequently asked questions
Something we didn't answer? Talk to a human
Is there a SerpApi compatible API?
GET /search.json?engine=google at https://api.specstream.ai/serpapi in SerpApi's JSON, as measured on production on Nov 10, 2026 with serpapi-python 1.2.0. A search of up to 10 results costs $0.005.How do I migrate from SerpApi?
https://serpapi.com becomes https://api.specstream.ai/serpapi, and a SpecStream key goes in api_key. q, num, start and tbs keep their meaning, and the reply has the same organic_results.How much does SerpApi cost?
Which apps and SDKs take the SpecStream address for SerpApi?
google-search-results Python package (2.4.2): set GoogleSearch.BACKEND = "https://api.specstream.ai/serpapi" before the first search.Can I change the address in the SerpApi Python client?
client.BASE_DOMAIN = "https://api.specstream.ai/serpapi" on a serpapi.Client made with your SpecStream key. SerpApi's JavaScript client keeps its host in its code, so use fetch there.Is there a cheaper SerpApi alternative?
Which SerpApi fields does SpecStream not return?
thumbnail, favicon, redirect_link, sitelinks or source. Each result keeps position, title, link, displayed_link, snippet and date.Sources
SpecStream wrote this page. Each SerpApi figure comes from SerpApi'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.
- SerpApi pricingserpapi.com/pricing.md, read Nov 10, 2026
- SerpApi Google Search APIserpapi.com/search-api, read Nov 10, 2026
- SpecStream SerpApi pass tablespecstream.ai/specstream/dialects/serpapi.md, read Nov 10, 2026
- SearchApi.io pricingsearchapi.io/pricing, read Nov 10, 2026
- Serperserper.dev/, read Nov 10, 2026
- VALUE SERP pricingtrajectdata.com/serp/value-serp-api/pricing/, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




