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 API | APITube | |
|---|---|---|
| Articles per request | 3 free · 25 Basic · 50 Standard · 100 on the $79 Pro plan | 250 on every plan |
| Article text | snippet — the first ~60 characters | Full body and body_html |
| Enrichment | Categories, keywords, a relevance score | Entities with Wikidata links, sentiment (title/body/overall/per-entity), IPTC + topics + industries, readability, publisher bias |
| Category taxonomy | 10 fixed categories | IPTC MediaTopics — thousands of codes |
Your first request
# The News API
curl "https://api.thenewsapi.com/v1/news/all?api_token=YOUR_TOKEN&search=tesla&language=en&categories=business&limit=50"# 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 API | APITube | Note |
|---|---|---|
search | title or query | Headlines only — see below |
search_fields=title | title | Lossless |
categories | category.id | 10 categories → IPTC codes, max 3 |
exclude_categories | ignore.category.id | |
domains | source.domain | Max 3, exact domain |
exclude_domains | ignore.source.domain | |
source_ids | source.id | The ID spaces are unrelated — remap through the domain |
language | language.code | 34 of 37 codes work |
locale | source.country.code | 53 of 55 codes work |
published_after / published_before | published_at.start / .end | |
published_on | published_at.start + .end | A single day becomes a range |
sort=published_on | sort.by=published_at | |
limit | per_page | 250 max |
api_token | api_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:cadThe 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 any plan 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
- thenewsapi-apitube-migration-kit — all 57 parameters, the 10-category IPTC table verified live, all 55 locales and 37 languages checked individually, a drop-in shim for Node.js and Python, and an AI prompt for bulk conversion
- Parameters reference
- Common migration issues