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; 10 on Free, 50 on Starter

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 on Basic and up (10 on Free, 50 on Starter) with no per-result charge, and export to eight formats.

Next steps