Skip to content

Migrating from GNews

Replace /api/v4/search with /v1/news/everything and /api/v4/top-headlines with /v1/news/top-headlines. The parameter names differ but the concepts line up; the one behavioural change is that search covers headlines rather than full text.

Why teams switch

GNews.ioAPITube
Articles per request10 on Free, 25 on Essential (€49.99/mo), 50 on Business (€99.99/mo), 100 on Enterprise (€249.99/mo)250 on every plan
Pagination depthHard stop at 1,000 articlesNo depth limit on paid plans
Freshness on Free12-hour delay, non-commercial use onlyNo delay, plus SSE and WebSocket streaming
Archive on Free30 daysYears, on every plan
EnrichmentNoneEntities, sentiment, IPTC categories, readability, publisher bias

Going from 10 to 100 articles per request costs €249.99/month on GNews. Here per_page=250 works on the entry plan.

Your first request

bash
# GNews
curl "https://gnews.io/api/v4/search?q=tesla&lang=en&country=us&max=10&apikey=YOUR_KEY"
bash
# APITube
curl "https://api.apitube.io/v1/news/everything?title=tesla&language.code=en&source.country.code=us&per_page=10" \
  -H "X-API-Key: YOUR_API_KEY"

Parameter mapping

GNewsAPITubeNote
qtitleHeadlines only — see below
in=titletitleDirect equivalent, and lossless
in=description,contentNo body-text search
langlanguage.codeSame ISO 639-1 codes
countrysource.country.code
categorycategory.idTheir 9 categories become IPTC MediaTopic codes
inScope selector has no equivalent
nullableUse has_image=1, has_author=1 instead
from / topublished_at.start / .end
sortby=publishedAtsort.by=published_at
sortby=relevanceSee limitations
maxper_page250 max
pagepageNo 1,000-article ceiling
expand=contentFull body is always returned
apikeyapi_key or X-API-Key header

The full table is in the migration kit.

What does not carry over

Search scope. GNews q covers title, description, and content by default. title= covers headlines. If your query set in=title, the conversion is lossless. Otherwise use an entity filter:

bash
organization.name=Tesla     # NER over the full article text

sortby=relevance. Combined with a search term, sort.by=relevance currently returns 500 on APITube. Use sort.by=published_at.

expand=content. Not needed — the full body comes back on every article without a parameter.

What you gain

Beyond the article limit: entities with Wikidata links, sentiment on title and body separately, three classification axes, publisher authority and political bias, readability scores, and export to CSV, XLSX, Parquet, JSONL, RSS, and XML from any query.

Next steps