Migrating from Mediastack
Replace /v1/news with /v1/news/everything. Convert offset to page-based pagination and check search scope: APITube searches 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 |
| Article details | 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"Mediastack's free tier uses HTTP. APITube uses HTTPS for all requests.
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; 10 on Free, 50 on Starter, 200 on Basic |
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.
Response fields. Update your response handling for the additional fields returned by APITube.
What you gain
APITube responses include full article text, entities with Wikidata links, sentiment, categories, topics, industries, publisher details, readability, share counts and article IDs. You can export results in eight formats.
Next steps
- mediastack-apitube-migration-kit — full parameter tables derived from Mediastack's own OpenAPI spec, a compatibility library for Node.js and Python, and an AI prompt for bulk conversion
- Parameters reference
- Common migration issues