Migrating from NewsAPI.org
Replace /v2/everything with /v1/news/everything and /v2/top-headlines with /v1/news/top-headlines. Most parameters have a direct equivalent; the two changes that need attention are that search covers headlines rather than full text, and that sources becomes source.domain.
Why teams switch
| NewsAPI.org | APITube | |
|---|---|---|
| Article text | content truncated to 200 characters — their FAQ states full content is unavailable on any plan | Full body and body_html |
| Freshness on Free | 24-hour delay; the Developer plan is licensed for development only, never production | No artificial delay, plus SSE and WebSocket streaming |
country on top-headlines | Accepts us only — the other 53 country codes were removed from the parameter | source.country.code covers 178 countries on every endpoint |
| Articles per request | 100 | 250 |
| Enrichment | None | Entities, sentiment, IPTC categories, readability, publisher bias |
Your first request
# NewsAPI.org
curl "https://newsapi.org/v2/everything?q=tesla&language=en&pageSize=100&sortBy=publishedAt&apiKey=YOUR_KEY"# APITube
curl "https://api.apitube.io/v1/news/everything?title=tesla&language.code=en&per_page=100&sort.by=published_at&sort.order=desc" \
-H "X-API-Key: YOUR_API_KEY"Parameter mapping
| NewsAPI.org | APITube | Note |
|---|---|---|
q | title | Headlines only — see below |
qInTitle | title | Direct equivalent, and lossless |
sources | source.domain | Their source IDs (bbc-news) become domains (bbc.co.uk). Max 3 |
domains | source.domain | Max 3 |
excludeDomains | ignore.source.domain | |
language | language.code | Same ISO 639-1 codes |
country | source.country.code | Works on every endpoint here, not just source lookup |
category | category.id | Their 7 categories become IPTC MediaTopic codes |
from / to | published_at.start / .end | |
sortBy=publishedAt | sort.by=published_at | |
sortBy=popularity | sort.by=source.rank.opr | Approximate — publisher authority, not article popularity |
sortBy=relevancy | — | See limitations |
pageSize | per_page | 250 max, up from 100 |
page | page | |
apiKey | api_key or X-API-Key header |
The full table of all 15 parameters is in the migration kit.
What does not carry over
Search scope. q matches the title, description, and content; title= matches headlines. If your query used qInTitle, the conversion is lossless — check that first. Otherwise, filter on the entity instead:
organization.name=Tesla # NER over the full article textsortBy=relevancy. Combined with a search term, sort.by=relevance currently returns 500 on APITube. Use sort.by=published_at and flag it for later.
Source IDs. bbc-news, the-verge, and the rest are NewsAPI.org's own identifiers. Resolve them to domains through their /v2/sources endpoint before migrating, then filter with source.domain.
/v2/top-headlines/sources. No dedicated endpoint here. /v1/news/trends?field=source.id returns domains ranked by article volume.
What you gain
Every article carries entities with Wikidata links, sentiment split into title/body/overall, IPTC categories plus topic and industry axes, readability scores, publisher bias and authority rank, and the full body text. See Response structure.
Next steps
- newsapi-org-apitube-migration-kit — full parameter tables, a drop-in compatibility shim for Node.js and Python that keeps the NewsAPI.org response shape, and an AI prompt that rewrites your saved queries
- Parameters reference — every filter APITube supports
- Common migration issues — the 3-value cap, silent parameter drops, wildcards