Skip to the page

Serper migration

Change the base address and keep Serper's JSON.

Since November 9, 2026 SpecStream answers Serper's search call at https://api.specstream.ai/serper/search, in Serper's JSON. Serper sells Google results in credit packs valid for 6 months; SpecStream searches the whole live web at $5 per 1,000 searches, and credit never expires.

Change https://google.serper.dev to https://api.specstream.ai/serper and put a SpecStream key in X-API-KEY. Your body, q, num and page, stays as it is.

It is the most accurate web search API in the world: 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks, on the benchmarks page.

New accounts get $10 of credit, no card. It covers 2,000 searches.

Serper to SpecStream, parameter by parameter and field by field

SpecStream (`/serper/search`)Serper
Addresshttps://api.specstream.ai/serper/search, by POST with a JSON body, by POST with the fields in the query string, or by GEThttps://google.serper.dev/search
KeyYour SpecStream key in X-API-KEY, in apiKey= in the address, as a Bearer token or as the HTTP Basic password. No key gets a 401Your Serper key in the X-API-KEY header
`q`Read as the search, with the operators written inside it, such as site:The query. Each call queries Google for the latest results, and nothing is cached
`num`Read, 1 to 100, default 10. Up to 10 results cost $0.005 and run the fast search; 100 cost $0.059A field of the search request, beside q, gl, hl, page, tbs, location and autocorrect
`page`Read, from 1, in pages of num. A page past the last result the search returns gets a 400A field of the search request: the page of results
`tbs`Read as a date filter: qdr: with h, d, w, m or y and a count, or cdr:1,cd_min:M/D/YYYY,cd_max:M/D/YYYY. qdr:h reads as the past dayGoogle's time filter
`gl`, `hl`, `location`, `autocorrect`Accepted with no error and repeated in searchParameters. They do not shape the searchSet the search location by country and language
Search typesWeb search at /serper/search. The images, news, maps, places, videos, shopping, scholar, patents and autocomplete paths are not servedImages, News, Maps, Places, Videos, Shopping, Scholar, Patents and Autocomplete
The replysearchParameters with q, the fields you sent, type, num and page; answerBox with answer, link and title on page 1 when the search has an answer; organic[]; credits: 1; specstream with the request ID and the price. knowledgeGraph, peopleAlsoAsk and relatedSearches are not returnedorganic, knowledgeGraph, peopleAlsoAsk and relatedSearches
Each organic resulttitle, link, snippet and position, plus date when the result carries onetitle, link, snippet and position
Price$5 per 1,000 searches of up to 10 results, paid from a balance. Credit you buy never expires, and a call stopped by a 429 charges nothingCredit packs from 50k credits at $1.00 per 1,000 to 12.5M credits at $0.30 per 1,000. Credits are valid for 6 months
RateUp to 8,800 searches a minute on one account50 queries per second on the smallest pack, 300 on the Ultimate pack

What changes and what stays when you move from Serper

Other options when you leave Serper

How SpecStream scores

The same numbers as the benchmarks page, from the official tasks and scorers.

How to move from Serper

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 base address to https://api.specstream.ai/serper where your code has https://google.serper.dev, and send the SpecStream key in X-API-KEY. In Python:

import os
import requests

BASE = "https://api.specstream.ai/serper"  # was https://google.serper.dev

reply = requests.post(
    f"{BASE}/search",
    json={"q": "open source vector databases", "num": 10, "page": 1},
    headers={"X-API-KEY": os.environ["SPECSTREAM_API_KEY"]},
).json()

for result in reply["organic"]:
    print(result["position"], result["title"], result["link"], result["snippet"])

In JavaScript:

const BASE = "https://api.specstream.ai/serper"; // was https://google.serper.dev

const reply = await fetch(`${BASE}/search`, {
  method: "POST",
  headers: { "X-API-KEY": process.env.SPECSTREAM_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({ q: "open source vector databases", num: 10, page: 1 }),
}).then((response) => response.json());

for (const result of reply.organic) {
  console.log(result.position, result.title, result.link, result.snippet);
}

3. Keep num, page and tbs as they are. Treat knowledgeGraph, peopleAlsoAsk and relatedSearches as optional in your parser.

4. Read the price of each call from specstream.price_usd; credits stays 1 so that code which counts it keeps working.

Frequently asked questions

Something we didn't answer? Talk to a human

What is the best Serper alternative?
SpecStream, at $5 per 1,000 searches from the whole live web. It answers Serper's own call at https://api.specstream.ai/serper/search in Serper's JSON and scores 97.9 F-score on all 1,000 SimpleQA Verified questions.
How do I switch from the Serper API?
Change one base address and one key. Replace https://google.serper.dev with https://api.specstream.ai/serper and send a SpecStream key in X-API-KEY. The body and organic[] stay as they are.
Is there a free Serper alternative?
New SpecStream accounts get $10 of credit with no card, which covers 2,000 searches. After that a search costs $0.005, and credit you buy never expires.
How much does Serper cost?
From $1.00 per 1,000 credits in a 50k pack to $0.30 per 1,000 in a 12.5M pack, with credits valid for 6 months and 2,500 free queries to start. SpecStream costs $5 per 1,000 searches, with no expiry.
Which Serper parameters does SpecStream read?
Four: q, num (1 to 100), page and tbs. gl, hl, location and autocorrect are accepted, repeated in searchParameters and do not change the search.
Does the reply include `answerBox` and `knowledgeGraph`?
answerBox comes back on page 1 when the search has an answer, with answer, link and title. knowledgeGraph, peopleAlsoAsk and relatedSearches are not returned.
Can one call return 100 results?
Yes. Send num: 100 and one call returns up to 100 results for $0.059. Up to 10 results cost $0.005.

Sources

SpecStream wrote this page. The route's behavior is read from its code; each rival figure comes from that company's own page.

  1. Serperserper.dev/, read Nov 9, 2026
  2. Brave Search APIbrave.com/search/api/, read Nov 9, 2026
  3. SerpApi pricingserpapi.com/pricing, read Nov 9, 2026
  4. Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 9, 2026
  5. Exa pricingexa.ai/docs/admin/pricing.md, read Nov 9, 2026
  6. Firecrawl pricingfirecrawl.dev/pricing, read Nov 9, 2026
  7. SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
  8. SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
  9. SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026