<!-- twin of https://specstream.ai/migrate/serpapi-google-news -->
# SerpApi Google News compatible: change the address, keep the JSON

Compared on Nov 10, 2026. The page: https://specstream.ai/migrate/serpapi-google-news

SerpApi's Starter plan is $25 a month for 1,000 searches, 200 an hour. SpecStream answers the same `engine=google_news` call, and Google's News tab with `tbm=nws`, in SerpApi's JSON, at $0.005 a search with no plan.

The switch is one line: `https://api.specstream.ai/serpapi-news` in place of `https://serpapi.com`, and a SpecStream key as `api_key`. The parameters and your parser stay.

SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions. A new account gets $10 of credit, no card, which covers 2,000 news searches.

[Get an API key](https://specstream.ai/signup?src=alternatives-migrate-serpapi-google-news&utm_source=alternatives-md&utm_campaign=migrate-serpapi-google-news&returnTo=%2Fworkspace%2Fsearch%3Froute%3Dserpapi_news) New accounts get $10 of credit, no card. It covers 2,000 searches.

## SerpApi Google News to SpecStream, parameter by parameter and field by field

| | SpecStream | SerpApi |
|---|---|---|
| Address | `GET https://api.specstream.ai/serpapi-news/search.json` | `GET https://serpapi.com/search?engine=google_news` |
| The key | A SpecStream key as `api_key` in the address | A SerpApi key as `api_key` in the address |
| Engines | `engine=google_news`, and `engine=google` with `tbm=nws` for the News tab | One `/search` path for every engine |
| Each item | `position`, `title`, `source.name`, `link`, `date` and `iso_date`. On `tbm=nws`, `snippet` and `published_at` too | `news_results[]` with `position`, `title`, `source`, `link`, `thumbnail`, `date` and `iso_date` |
| Errors | SerpApi's `{"error": ...}`: `401` with no key, `400` for another engine. A busy call gets `429` with `Retry-After` and is not charged | `429` past the hourly throughput or when the account has run out of searches |
| Price | $0.005 a search of up to 10 results, $5 per 1,000, with no plan | Starter $25 a month for 1,000 searches, 200 an hour. Developer $75 a month for 5,000 |
| Free to start | $10 of credit, no card, which covers 2,000 news searches | Free plan: 250 searches a month |

## The SerpApi Google News reference, on SpecStream

### The call, before and after

```
# Before
curl "https://serpapi.com/search.json?engine=google_news&q=Nvidia+earnings&api_key=$SERPAPI_API_KEY"

# After
curl "https://api.specstream.ai/serpapi-news/search.json?engine=google_news&q=Nvidia+earnings&api_key=$SPECSTREAM_API_KEY"
```

With SerpApi's Python client, `serpapi` 1.2.0, the change is one line: `client = serpapi.Client(api_key=SPECSTREAM_KEY); client.BASE_DOMAIN = "https://api.specstream.ai/serpapi-news"`. `client.search()` and `next_page()` then run as before.

### What the route reads, and what it refuses

Read and applied with `engine=google_news`: `q`, `gl`, `hl`, `so=1` for the newest first, and `num`. With `engine=google` and `tbm=nws`: `q`, `num`, `start`, `tbs` with `qdr` and `sbd`, `hl`, and the client's `next_page()`.

Refused: another engine, such as `engine=bing`, gets `400`, and a call with no `api_key` gets `401`, both in SerpApi's `error` form. Every parameter was measured on production on Nov 10, 2026, and the full [pass table](https://specstream.ai/specstream/dialects/serpapi_news.md) lists each one and its result.

### Every field that comes back

Google News replies carry `search_metadata` with `id`, `status`, `created_at` and `total_time_taken`, `search_parameters` with `engine` and `q`, and `news_results[]` with `position`, `title`, `source.name`, `link`, `date` and `iso_date`. News tab replies add `search_information` with `query_displayed` and `total_results`, each result's `source`, `snippet` and `published_at`, and `serpapi_pagination` with `current` and `next`.

The route does not return `thumbnail`, `favicon`, `source.icon`, `source.authors`, `highlight`, `stories`, `top_news`, `menu_links` or `related_topics`. One field is added, `specstream`, with the call's `price_usd`.

### One price a search, no hourly cap

On SerpApi the plan sets the searches a month and the searches an hour. On SpecStream a Google News call of 10 results costs $0.005, each started block of 10 more on `num` adds $0.006, and there is no plan to renew. 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](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=migrate-serpapi-google-news) 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. One account can send up to 26,666 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 answers SerpApi's Google web search at `https://api.specstream.ai/serpapi`, and reads the full article behind each `link` with the [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=migrate-serpapi-google-news), up to 20 pages a call at $0.80 per 1,000 pages. A page with no text is not charged. [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=migrate-serpapi-google-news) 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](https://specstream.ai/alternatives/serpapi?utm_source=alternatives&utm_campaign=migrate-serpapi-google-news) page.

## What else SerpApi Google News users price

### Serper

Google results in credit packs from $1.00 per 1,000 for 50,000 credits, valid for 6 months, with 2,500 free queries. SpecStream credit never expires, and the same key answers Serper's `/news` call at `/serper/news`.

### GNews

A news API sold as a daily cap: Essential is €49.99 a month for 1,000 requests per day and up to 25 articles a request. SpecStream answers GNews's own `/api/v4/search` call at $0.005, with no daily cap to reset.

## 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 news searches.

2. Set the address to `https://api.specstream.ai/serpapi-news/search.json` where your code has `https://serpapi.com/search.json`, and send the SpecStream key as `api_key`. In Python:

```
import requests

URL = "https://api.specstream.ai/serpapi-news/search.json"  # was https://serpapi.com/search.json

reply = requests.get(URL, {"engine": "google_news", "q": "Nvidia earnings", "gl": "us", "hl": "en", "so": 1, "api_key": SPECSTREAM_KEY}, timeout=30)
reply.raise_for_status()
for item in reply.json()["news_results"]:
    print(item["position"], item["iso_date"], item["source"]["name"], item["title"], item["link"])
```

3. In JavaScript:

```
const url = new URL("https://api.specstream.ai/serpapi-news/search.json");
url.search = new URLSearchParams({ engine: "google", tbm: "nws", q: "Nvidia earnings", api_key: process.env.SPECSTREAM_KEY });
const data = await (await fetch(url)).json();
for (const item of data.news_results) console.log(item.date, item.title, item.link);
```

4. Follow `serpapi_pagination.next` for the next page of the News tab, and read `429` as a call to send again after `Retry-After`. It is not charged.

## Frequently asked questions

### Is there a SerpApi Google News compatible API?

Yes. SpecStream answers `engine=google_news` and `engine=google` with `tbm=nws` at `https://api.specstream.ai/serpapi-news` in SerpApi's JSON, as measured on production on Nov 10, 2026. A search of up to 10 results costs $0.005.

### How do I migrate from SerpApi Google News?

Change one address: `https://serpapi.com` becomes `https://api.specstream.ai/serpapi-news`, and a SpecStream key goes in `api_key`. `q`, `gl`, `hl`, `so`, `num`, `start` and `tbs` keep their meaning.

### How much does SerpApi cost?

$25 a month for Starter with 1,000 searches and 200 an hour, $75 a month for Developer with 5,000, and a free plan of 250 searches a month. SpecStream costs $5 per 1,000 news searches with no plan.

### Does the SerpApi Python client work with SpecStream?

Yes. `serpapi` 1.2.0 works with `client.BASE_DOMAIN` set to `https://api.specstream.ai/serpapi-news` and a SpecStream key, as tested on production on Nov 10, 2026, `next_page()` included.

### Can I sort Google News results by date?

Yes. `so=1` on Google News and `tbs=sbd:1` on the News tab put the newest first, both measured on production on Nov 10, 2026.

### Which SerpApi news fields does SpecStream not return?

Images and story groups: `thumbnail`, `favicon`, `source.icon`, `source.authors`, `highlight`, `stories`, `top_news`, `menu_links` and `related_topics`. Each result keeps `position`, `title`, `source`, `link` and its 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 pricing](https://serpapi.com/pricing.md), read Nov 10, 2026
- [SerpApi Google News API](https://serpapi.com/google-news-api), read Nov 10, 2026
- [SerpApi news results](https://serpapi.com/news-results), read Nov 10, 2026
- [SerpApi status and error codes](https://serpapi.com/api-status-and-error-codes), read Nov 10, 2026
- [SpecStream SerpApi Google News pass table](https://specstream.ai/specstream/dialects/serpapi_news.md), read Nov 10, 2026
- [Serper](https://serper.dev/), read Nov 10, 2026
- [GNews pricing](https://gnews.io/pricing), read Nov 10, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 10, 2026
- [SpecStream pricing](https://specstream.ai/pricing), read Nov 10, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 10, 2026
