Skip to content

Migrating from World News API ​

Replace /search-news with /v1/news/everything. Entity and sentiment filters have equivalents. Add parentheses to converted queries because AND and OR precedence differs.

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 topics and industries
Entity typesORG, PER, LOCThose three plus brand, event, sport, disease, disaster

Include paging requests when estimating your quota usage.

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 evaluates AND before OR. Add parentheses to keep the meaning of a World News API query:

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 library 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, 200 on Basic

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.

Location search. World News API combines location-filter with other filters on /search-news. On APITube, use the separate /v1/news/local endpoint. Check its supported filters before converting your 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 ​

APITube includes title/body/overall sentiment, sentiment about individual entities and five additional entity types. It also returns IPTC MediaTopics, topics, industries, publisher political bias and rank, readability scores and a clickbait flag. You can export results in eight formats.

Requests have no per-result charge. Page sizes are 10 on Free, 50 on Starter, 200 on Basic and up to 250 on higher plans.

Next steps ​