Migrating from Mediastack
Replace /v1/news with /v1/news/everything. Mediastack's parameter set is small, so the mapping is short. The two changes that matter are that offset pagination becomes page-based and that search covers headlines.
Why teams switch
| Mediastack | APITube | |
|---|---|---|
| Article text | description only — an excerpt. No full-text field on any plan | Full body and body_html |
| Free tier | 100 calls per month (~3/day), delayed data, no historical access, no commercial use | Higher limits, no commercial restriction |
| Enrichment | None — no sentiment, no entities, no topics, no source ranking | Sentiment, entities with Wikidata IDs, IPTC categories, publisher authority and bias |
| Article identity | No article ID in the response | Stable integer id plus a lookup endpoint |
| Results per request | 100 | 250 |
Your first request
# Mediastack
curl "http://api.mediastack.com/v1/news?access_key=YOUR_KEY&keywords=tesla&languages=en&countries=us&limit=100"# APITube
curl "https://api.apitube.io/v1/news/everything?title=tesla&language.code=en&source.country.code=us&per_page=100" \
-H "X-API-Key: YOUR_API_KEY"Note the scheme: Mediastack's free tier is HTTP-only. APITube is HTTPS everywhere.
Parameter mapping
| Mediastack | APITube | Note |
|---|---|---|
keywords | title | Headlines only — see below |
languages | language.code | Max 3 values |
countries | source.country.code | Max 3 values |
categories | category.id | Their 7 categories become IPTC codes |
sources | source.domain | Max 3, exact domain |
date | published_at.start / .end | A range becomes two parameters |
sort=published_desc | sort.by=published_at&sort.order=desc | |
sort=popularity | sort.by=source.rank.opr | Approximate — publisher authority |
limit | per_page | 250 max |
offset | offset | Works directly |
access_key | api_key or X-API-Key header |
Mediastack's negation syntax (-cnn inside sources) becomes ignore.source.domain. The full table is in the migration kit.
What does not carry over
Search scope. keywords covers the title and description; title= covers headlines only.
date as a range string. Mediastack accepts 2026-07-01,2026-07-27 in one parameter. Split it into published_at.start and published_at.end.
Nothing else, really. Mediastack's parameter set is small enough that the migration is mostly mechanical — the work is on the response side, where you gain fields rather than lose them.
What you gain
This is the largest jump of any migration in this section. Every article gains: full body text, named entities with Wikidata links, sentiment on title/body/overall, IPTC categories plus topic and industry axes, publisher political bias and authority rank, readability scores, share counts, a stable article ID, and export to eight formats.
Next steps
- mediastack-apitube-migration-kit — full parameter tables derived from Mediastack's own OpenAPI spec, a drop-in shim for Node.js and Python, and an AI prompt for bulk conversion
- Parameters reference
- Common migration issues