Skip to content

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 APIAPITube
Articles per request100250
Quota modelPoints: 1 per request plus 0.01 per result — a 100-article request costs 2 pointsFlat request count, regardless of per_page
SentimentOne score per articleThree — title, body, overall — plus per-entity
Category taxonomy13 fixed categoriesIPTC MediaTopics plus topic and industry axes
Entity typesORG, PER, LOCThose 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 ford is read as tesla 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:

bash
# 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 error

Always parenthesise every OR chain when converting. The compatibility shim does this automatically.

Your first request

bash
# 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"
bash
# 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 APIAPITubeNote
texttitle or queryHeadlines only, and see precedence above
text-match-indexes=titletitleLossless
entities=ORG:Teslaorganization.name=TeslaDirect
entities=PER:Elon Muskperson.name=Elon MuskDirect
entities=LOC:Irelandlocation.name=IrelandDirect
categoriescategory.id13 categories → IPTC codes, max 3
source-countrysource.country.codeUp to 3 here, one there
languagelanguage.code44 of 58 codes work
news-sourcessource.domain10 values become 3
authorsauthor.nameMax 3
min-sentiment / max-sentimentsentiment.overall.score.min / .maxSame −1…1 scale
earliest-publish-date / latest-publish-datepublished_at.start / .end
location-filter=lat,lng,radius/v1/news/local?lat=&lng=&radius=A separate endpoint
sort=publish-timesort.by=published_at
offsetoffsetWorks directly
numberper_page250 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