Migrating from World News API
Replace /search-news with /v1/news/everything. Entity filters and sentiment ranges map one-to-one, which makes this one of the cleaner migrations. The trap is operator precedence: it inverts, and a directly copied query returns different articles with no error.
Why teams switch
| World News API | APITube | |
|---|---|---|
| Articles per request | 100 | 250 |
| Quota model | Points: 1 per request plus 0.01 per result — a 100-article request costs 2 points | Flat request count, regardless of per_page |
| Sentiment | One score per article | Three — title, body, overall — plus per-entity |
| Category taxonomy | 13 fixed categories | IPTC MediaTopics plus topic and industry axes |
| Entity types | ORG, PER, LOC | Those three plus brand, event, sport, disease, disaster |
The points model matters more than it looks: a paging loop burns quota twice as fast as the request count suggests.
Read this before converting a single query
World News API binds OR more tightly than the implicit AND. From their own documentation:
tesla model OR fordis read astesla AND (model OR ford), NOT as(tesla AND model) OR ford
APITube does the opposite — AND binds tighter, the conventional rule. So the same string means two different things, and the converted query still returns results:
# What World News API meant
query=title:tesla AND (title:model OR title:ford) # 4,067 articles
# What a direct copy would mean on APITube
query=title:tesla AND title:model OR title:ford # different set, no errorAlways parenthesise every OR chain when converting. The compatibility shim does this automatically.
Your first request
# World News API
curl "https://api.worldnewsapi.com/search-news?text=tesla&language=en&source-country=us&number=100&sort=publish-time&api-key=YOUR_KEY"# APITube
curl "https://api.apitube.io/v1/news/everything?title=tesla&language.code=en&source.country.code=us&per_page=100&sort.by=published_at&sort.order=desc" \
-H "X-API-Key: YOUR_API_KEY"Parameter mapping
| World News API | APITube | Note |
|---|---|---|
text | title or query | Headlines only, and see precedence above |
text-match-indexes=title | title | Lossless |
entities=ORG:Tesla | organization.name=Tesla | Direct |
entities=PER:Elon Musk | person.name=Elon Musk | Direct |
entities=LOC:Ireland | location.name=Ireland | Direct |
categories | category.id | 13 categories → IPTC codes, max 3 |
source-country | source.country.code | Up to 3 here, one there |
language | language.code | 44 of 58 codes work |
news-sources | source.domain | 10 values become 3 |
authors | author.name | Max 3 |
min-sentiment / max-sentiment | sentiment.overall.score.min / .max | Same −1…1 scale |
earliest-publish-date / latest-publish-date | published_at.start / .end | |
location-filter=lat,lng,radius | /v1/news/local?lat=&lng=&radius= | A separate endpoint |
sort=publish-time | sort.by=published_at | |
offset | offset | Works directly |
number | per_page | 250 max |
The full table of all 18 parameters is in the migration kit.
What does not carry over
14 of 58 language codes, including Russian and Ukrainian. Only nb has a substitute (no). The others — aa, am, my, lo, mr, mi, ne, si, so, tg, uz — are absent. Check your traffic before converting.
Body-text search. text-match-indexes defaults to title + content. The entity filter is the replacement, and it maps directly.
Geo as a search filter. location-filter works inside /search-news, so it composes with every other filter. APITube's geo lives on /v1/news/local, a separate endpoint — you cannot combine it with the full filter set in one request.
/extract-news and /extract-news-links. APITube serves its own index; it does not fetch and parse arbitrary URLs on demand.
Entity synonym normalisation. LOC:USA and LOC:United States of America are the same concept there. Here names resolve against an index — organization.name=Apple Inc returns 400, Apple works.
What you gain
Sentiment split three ways plus per-entity scoring, five more entity types, IPTC MediaTopics plus topic and industry axes, publisher political bias and authority rank, readability scores, a clickbait signal, 250 articles per request with no per-result charge, and export to eight formats.
Next steps
- worldnewsapi-apitube-migration-kit — all 18 parameters, the precedence-aware query converter, all 58 language codes checked individually, a drop-in shim for Node.js and Python, and an AI prompt for bulk conversion
- Parameters reference
- Local news endpoint — the
location-filterreplacement - Common migration issues