<!-- twin of https://specstream.ai/migrate/gnews -->
# GNews compatible: change the address, keep the JSON

Compared on Nov 10, 2026. The page: https://specstream.ai/migrate/gnews

GNews sells a daily cap: Essential is €49.99 a month for 1,000 requests per day, and the API returns `403` until 00:00 UTC once it is used. SpecStream answers the same `/api/v4/search` in GNews's JSON, at $0.005 a call.

The switch is one line: `https://api.specstream.ai` in place of `https://gnews.io`, and a SpecStream key as `apikey`. The paths, 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-gnews&utm_source=alternatives-md&utm_campaign=migrate-gnews&returnTo=%2Fworkspace%2Fsearch%3Froute%3Dgnews) New accounts get $10 of credit, no card. It covers 2,000 searches.

## GNews to SpecStream, parameter by parameter and field by field

| | SpecStream | GNews |
|---|---|---|
| Address | `GET https://api.specstream.ai/api/v4/search` and `/api/v4/top-headlines` | `GET https://gnews.io/api/v4/search` and `/api/v4/top-headlines` |
| The key | A SpecStream key as `apikey` in the address, or in the `X-Api-Key` header | A GNews key as `apikey` in the address |
| Articles a call | `max` up to 100 on every account, with `page` for the next page | Up to 10 on Free, 25 on Essential, 50 on Business, 100 on Enterprise |
| Freshness | `from` and `to` set the window, and the newest articles come first | The free plan covers the last 30 days with a 12-hour delay |
| Each article | `title`, `description`, `url`, `publishedAt` and `source.name`. `content` and `image` come back as null | `id`, `title`, `description`, `content`, `url`, `image`, `publishedAt`, `lang` and `source` |
| Limits and errors | GNews's `{"errors": [...]}` form: `401` for a key that is not one. Up to 26,666 searches a minute; a busy call gets `429` with `Retry-After` and is not charged | `429` over 1 request a second on Free and 10 on paid plans. `403` once the day's quota is used, until 00:00 UTC |
| Price | $0.005 a call of up to 10 articles, $5 per 1,000, with no plan. Each started block of 10 more adds $0.006 | Essential €49.99 a month for 1,000 requests per day. Business €99.99 for 5,000 per day |
| Free to start | $10 of credit, no card, usable in production | 100 requests per day, up to 10 articles, for non-commercial projects |

## The GNews reference, on SpecStream

### The call, before and after

```
# Before
curl -G https://gnews.io/api/v4/search \
  -d apikey=$GNEWS_API_KEY -d max=10 --data-urlencode "q=Nvidia earnings"

# After
curl -G https://api.specstream.ai/api/v4/search \
  -d apikey=$SPECSTREAM_API_KEY -d max=10 --data-urlencode "q=Nvidia earnings"
```

With GNews's Python client, `gnews-io-python` 1.0.0, the change is the address and the key in one line: `client = GNews(api_key=SPECSTREAM_KEY, base_url="https://api.specstream.ai/api/v4")`.

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

Read and applied on `/api/v4/search`: `q`, `lang`, `max` (up to 100), `page`, `from`, `to` and `sortby=publishedAt`. On `/api/v4/top-headlines`: `category`, `q` and `lang`.

Refused: a key that is not one gets `401` in GNews's `errors` form. Every parameter was measured on production on Nov 10, 2026, and the full [pass table](https://specstream.ai/specstream/dialects/gnews.md) lists each one and its result.

### Every field that comes back

The reply has `totalArticles` and `articles[]`. Each article carries `title`, `description`, `url`, `publishedAt` in UTC and `source.name`, the publisher.

`content` and `image` are present and null, as GNews prints them with `nullable`, so a parser that reads them does not break. `id`, `lang`, `source.id`, `source.url` and `source.country` are not returned. One field is added, `specstream`, with the call's `price_usd`.

### One price a call, no daily cap

On GNews the plan sets how many requests you send a day and how many articles each returns. On SpecStream every call of up to 10 articles costs $0.005, each started block of 10 more adds $0.006, and `max=100` costs $0.059. There is no quota to reset at 00:00 UTC, 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](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=migrate-gnews) 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 reads the full article behind each `url` with the [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=migrate-gnews), up to 20 pages a call at $0.80 per 1,000 pages, and a page with no text is not charged. [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=migrate-gnews) 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.

## What else GNews users price

### SerpApi

Google News and 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 news search with no plan, and answers SerpApi's Google News call at `/serpapi-news`.

### 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`.

## 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/api/v4` where your code has `https://gnews.io/api/v4`, and send the SpecStream key as `apikey`. In Python:

```
import requests

URL = "https://api.specstream.ai/api/v4/search"  # was https://gnews.io/api/v4/search

reply = requests.get(URL, {"apikey": SPECSTREAM_KEY, "q": "Nvidia earnings", "lang": "en", "max": 10}, timeout=30)
reply.raise_for_status()
for article in reply.json()["articles"]:
    print(article["publishedAt"], article["source"]["name"], article["title"], article["url"])
```

3. In JavaScript:

```
const url = new URL("https://api.specstream.ai/api/v4/top-headlines");
url.search = new URLSearchParams({ apikey: process.env.SPECSTREAM_KEY, category: "business", lang: "en" });
const data = await (await fetch(url)).json();
for (const article of data.articles) console.log(article.publishedAt, article.title, article.url);
```

4. Read `429` as a call to send again after `Retry-After`. It is not charged.

## Frequently asked questions

### Is there a GNews compatible API?

Yes. SpecStream answers GNews's `GET /api/v4/search` and `/api/v4/top-headlines` at `https://api.specstream.ai` in GNews's JSON, as measured on production on Nov 10, 2026. A call of up to 10 articles costs $0.005.

### How do I migrate from GNews?

Change one address: `https://gnews.io` becomes `https://api.specstream.ai`, and a SpecStream key goes in `apikey`. `q`, `lang`, `max`, `page`, `from`, `to`, `sortby=publishedAt` and `category` keep their meaning.

### How much does GNews cost?

€49.99 a month for Essential with 1,000 requests per day, €99.99 for Business with 5,000 per day, and a free plan of 100 requests per day for non-commercial projects. SpecStream costs $5 per 1,000 calls with no plan.

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

Yes. `gnews-io-python` 1.0.0 works with `base_url="https://api.specstream.ai/api/v4"` and a SpecStream key, as tested on production on Nov 10, 2026. Search and top headlines run unchanged.

### What happens when I reach the GNews daily quota?

GNews returns `403` until the quota resets at 00:00 UTC. SpecStream has no daily quota: one account sends up to 26,666 searches a minute, from a balance.

### Which GNews fields does SpecStream not fill?

`content` and `image` come back as null, and `id`, `lang`, `source.id`, `source.url` and `source.country` are not returned. Each article keeps `title`, `description`, `url`, `publishedAt` and `source.name`.

## Sources

SpecStream wrote this page. Each GNews figure comes from GNews'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.

- [GNews pricing](https://gnews.io/pricing), read Nov 10, 2026
- [GNews search endpoint](https://docs.gnews.io/endpoints/search-endpoint), read Nov 10, 2026
- [GNews error handling](https://docs.gnews.io/error-handling), read Nov 10, 2026
- [GNews JSON response](https://docs.gnews.io/json-response), read Nov 10, 2026
- [SpecStream GNews pass table](https://specstream.ai/specstream/dialects/gnews.md), read Nov 10, 2026
- [SerpApi pricing](https://serpapi.com/pricing.md), read Nov 10, 2026
- [Serper](https://serper.dev/), 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
