GNews compatible
Change the address, keep the JSON.
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.
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 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 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, up to 20 pages a call 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.
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 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 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
Something we didn't answer? Talk to a human
Is there a GNews compatible API?
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?
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?
Does the GNews Python client work with SpecStream?
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?
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 pricinggnews.io/pricing, read Nov 10, 2026
- GNews search endpointdocs.gnews.io/endpoints/search-endpoint, read Nov 10, 2026
- GNews error handlingdocs.gnews.io/error-handling, read Nov 10, 2026
- GNews JSON responsedocs.gnews.io/json-response, read Nov 10, 2026
- SpecStream GNews pass tablespecstream.ai/specstream/dialects/gnews.md, read Nov 10, 2026
- SerpApi pricingserpapi.com/pricing.md, read Nov 10, 2026
- Serperserper.dev/, 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




