Serply compatible
Change the address.
Since November 10, 2026 SpecStream answers Serply's GET /v1/search in Serply's own JSON, with the query in the address or in the path. A search of up to 10 results costs $0.005, and a busy call costs nothing.
The switch is one line: https://api.specstream.ai/serply in place of https://api.serply.io, and a SpecStream key in the X-Api-Key header. The request and your parser stay.
The SpecStream Search API scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on WideSearch. A new account gets $10 of credit, no card.
New accounts get $10 of credit, no card. It covers 2,000 searches.
Serply to SpecStream, parameter by parameter and field by field
| SpecStream | Serply | |
|---|---|---|
| Address | GET https://api.specstream.ai/serply/v1/search/?q= or /serply/v1/search/q=... | GET https://api.serply.io/v1/search/?q= |
| The key | A SpecStream key in X-Api-Key, or in apikey as the serply package sends it | X-Api-Key header on every request |
| Parameters applied | q, num (up to 10), start, tbs, gl, hl, lr, cr, safe and the X-Proxy-Location header | q, num up to 10, start, gl, X-Proxy-Location and X-User-Agent |
| Reply | results[] with title, description, link, position, realPosition, result_type and metadata.display_url, plus ads_count, carousel_count, ts and query | The same results[], plus ai_overview, ads, answers, knowledge_graph, related_questions and other blocks |
| Errors | Serply's own {"detail": "..."}: 400 for an empty q, 401 for no key. A busy call gets 429 with Retry-After and is not charged | 429 too many requests, rate limit exceeded |
| Price | $0.005 a search of up to 10 results, $5 per 1,000 | Prepaid packs: Micro $5 for 2,500 credits, $2.00 per 1,000. Pro $375 for 500,000, $0.75 per 1,000 |
| Credit | Credit you buy never expires | Purchased credits never expire |
| Free to start | $10 of credit, no card, which covers 2,000 searches | 2,500 free credits for the first 30 days, no card |
| Pages behind the results | Read on the same key at $0.0008 a page with the Extract API | A search API |
The Serply reference, on SpecStream
The call, before and after
# Before
curl -H "X-Api-Key: $SERPLY_API_KEY" \
"https://api.serply.io/v1/search/?q=search+api&num=10"
# After
curl -H "X-Api-Key: $SPECSTREAM_API_KEY" \
"https://api.specstream.ai/serply/v1/search/?q=search+api&num=10"The reply is Serply's: {"results": [{"title": "...", "link": "https://...", "description": "...", "position": 1, "realPosition": 1, "result_type": "organic", "metadata": {"display_url": "..."}}, ...], "ads_count": 0, "ts": ..., "query": "q=search+api&num=10"}.
The serply package on PyPI writes https://api.serply.io/ into its client and sends the key as apikey with the query in the path, /v1/search/q=.... The route reads that header and that path form too.
What the route reads, and what it refuses
Applied: q in the query string or in the path, num up to 10 (a larger num gets 10, Serply's own ceiling), start as the offset, tbs such as qdr:w, and Google's gl, hl, lr, cr and safe. The X-Proxy-Location header sets the search's country.
Refused, in Serply's own {"detail": "..."} body: an empty q gets 400 and a call with no 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
results[] with title, description, link, position, realPosition, result_type, metadata.display_url and metadata.attributes, and at the top level ads_count, carousel_count, ts and query.
The route does not return ai_overview. ads, answers, image_results, shopping_ads, places, local_businesses, related_searches, carousel, company, total, knowledge_graph, related_questions, device_region and device_type come back empty, so a parser that reads them keeps working.
One price a search
On SpecStream a search of up to 10 results costs $0.005, which is $5 per 1,000, from a balance with no plan, and a busy call gets 429 with Retry-After and charges nothing. The same key reads the page behind any result at $0.0008, so a search and its pages are one bill. Credit you buy never expires.
Speed, measured on production
On November 9, 2026 the fast search every drop-in route uses had a median of 0.82 s at 1 search a second and 1.07 s at 20 a second, with the 95th percentile between 1.09 and 1.73 s, and answered 718 of 720 calls. There is no limit per key and no daily limit.
Scored on the official benchmarks
The SpecStream Search API scores 97.9 F-score on all 1,000 SimpleQA Verified questions, 978 of them correct, and 64.0 item F1 and 43.4 row F1 on all 200 WideSearch tasks. The Extract API scores 0.908 F1 on WCXB. Every score and its method is on the benchmarks page.
You decide what is kept, on each key
Create the key with zero_retention and a call 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}'Pages, search 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. 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.
What else Serply users price
Serper
Google results as JSON, in credit packs from $1.00 per 1,000 that are valid for 6 months. SpecStream answers Serper's call at https://api.specstream.ai/serper, and its credit never expires.
SerpApi
Search engine result pages as JSON, sold by monthly plan: Starter is $25 a month for 1,000 searches. On SpecStream $25 pays for 5,000 searches, and SpecStream answers SerpApi's call too.
Brave Search API
A search API on Brave's own index at $5 per 1,000 requests. SpecStream answers Brave's call at https://api.specstream.ai/res/v1/web/search and reads the pages behind the results on the same key.
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 address to https://api.specstream.ai/serply where your code has https://api.serply.io, and send the SpecStream key in X-Api-Key. In Python:
import requests
BASE = "https://api.specstream.ai/serply" # was https://api.serply.io
reply = requests.get(
f"{BASE}/v1/search/",
headers={"X-Api-Key": SPECSTREAM_KEY, "X-Proxy-Location": "US"},
params={"q": "search api", "num": 10},
timeout=30,
)
reply.raise_for_status()
for result in reply.json()["results"]:
print(result["position"], result["title"], result["link"])3. In JavaScript:
const url = new URL("https://api.specstream.ai/serply/v1/search/");
url.search = new URLSearchParams({ q: "search api", num: "5", tbs: "qdr:w" });
const reply = await fetch(url, { headers: { "X-Api-Key": process.env.SPECSTREAM_KEY } });
const { results } = await reply.json();
for (const result of results) console.log(result.title, result.link);4. Read 429 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 Serply compatible API?
GET /v1/search at https://api.specstream.ai/serply with Serply's results[] reply, as measured on production. A search costs $0.005.How do I migrate from Serply?
https://api.serply.io becomes https://api.specstream.ai/serply, and a SpecStream key goes in X-Api-Key. q, num, start, tbs, gl, hl, lr, cr, safe and X-Proxy-Location keep their meaning.How much does Serply cost?
Does the serply Python package work with SpecStream?
apikey header and its /v1/search/q=... path, so a call built the same way with requests runs on SpecStream, as in the steps on this page.Which Serply fields does SpecStream not return?
ai_overview. The other blocks, such as ads, answers, knowledge_graph and related_questions, come back empty, and every results[] field comes back filled.How many results does one Serply call return on SpecStream?
start=10 for the next page, as on Serply.Sources
SpecStream wrote this page. Each Serply figure comes from Serply'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.
- Serply pricingserply.io/pricing, read Nov 10, 2026
- Serply Google Search referenceserply.io/docs/resources/google-search, read Nov 10, 2026
- SpecStream Serply pass tablespecstream.ai/specstream/dialects/serply.md, read Nov 10, 2026
- Serperserper.dev/, read Nov 10, 2026
- SerpApi pricingserpapi.com/pricing, read Nov 10, 2026
- Brave Search APIbrave.com/search/api/, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




