Skip to content

Migrating from The News API ​

Replace /v1/news/all with /v1/news/everything and /v1/news/top with /v1/news/top-headlines. The search operators translate cleanly; the changes that need attention are search scope, two rejected languages, and the fact that stored UUIDs cannot be carried over.

Why teams switch ​

The News APIAPITube
Articles per request3 free · 25 Basic · 50 Standard · 100 on the $79 Pro plan250 — 10 on Free, 50 on the $29 Starter plan
Article textsnippet — the first ~60 charactersFull body and body_html
EnrichmentCategories, keywords, a relevance scoreEntities with Wikidata links, sentiment (title/body/overall/per-entity), IPTC + topics + industries, readability, publisher bias
Category taxonomy10 fixed categoriesIPTC MediaTopics — thousands of codes

Your first request ​

bash
# The News API
curl "https://api.thenewsapi.com/v1/news/all?api_token=YOUR_TOKEN&search=tesla&language=en&categories=business&limit=50"
bash
# APITube
curl "https://api.apitube.io/v1/news/everything?title=tesla&language.code=en&category.id=medtop:04000000&per_page=50" \
  -H "X-API-Key: YOUR_API_KEY"

Parameter mapping ​

The News APIAPITubeNote
searchtitle or queryHeadlines only — see below
search_fields=titletitleLossless
categoriescategory.id10 categories → IPTC codes, max 3
exclude_categoriesignore.category.id
domainssource.domainMax 3, exact domain
exclude_domainsignore.source.domain
source_idssource.idThe ID spaces are unrelated — remap through the domain
languagelanguage.code34 of 37 codes work
localesource.country.code53 of 55 codes work
published_after / published_beforepublished_at.start / .end
published_onpublished_at.start + .endA single day becomes a range
sort=published_onsort.by=published_at
limitper_page250 max; 10 on Free, 50 on Starter, 200 on Basic
api_tokenapi_key or X-API-Key header

Search operators ​

usd + gbp          →  title=usd,gbp                (comma is AND)
usd | gbp          →  query=title:(usd OR gbp)
-cad               →  ignore.title=cad
"Apple Inc"        →  title="Apple Inc"
forex + (usd|gbp) -cad
                   →  query=title:forex AND (title:usd OR title:gbp) NOT title:cad

The full table of all 57 parameters is in the migration kit.

What does not carry over ​

Russian and Ukrainian. language.code=ru and uk return 400, and source.country.code=ru / ua return 400. There is no substitute. If either is part of your coverage, this migration does not work.

Prefix wildcards. search=technolog* has no equivalent, and passing it through returns the entire index with a 200. Expand it by hand.

Stored UUIDs. The News API identifies articles by UUID; APITube uses integers. /v1/news/uuid/{uuid} becomes ?article.id=<integer>, but existing UUIDs cannot be translated — re-resolve by URL.

/v1/news/similar/{uuid}. No similar-article endpoint. story.id exists on every article but is not a working filter.

Per-category headline grouping. /v1/news/headlines returns one object keyed by category. APITube needs one request per category.

What you gain ​

250 articles per request on Basic and up (10 on Free, 50 on the $29 Starter) against 100 on the $79 tier, the full article body instead of a 60-character snippet, named entities, sentiment split three ways, three classification axes, publisher bias, readability, and export to eight formats.

Next steps ​