Skip to content

Migrating to APITube

Switching news APIs usually breaks in the same three places: a parameter that looks equivalent but is not, a filter that silently stops applying, and a response field that quietly disappears. These guides map each competitor's parameters onto APITube's, name the things that do not carry over, and link to a drop-in compatibility shim so your call sites can stay unchanged while you migrate.

Every mapping in this section was executed against the live API before being published. Where something does not work, it says so.

Pick your API

You are onGuideMigration kit
NewsAPI.orgFrom NewsAPI.orgnewsapi-org-apitube-migration-kit
GNewsFrom GNewsgnews-apitube-migration-kit
NewsCatcherFrom NewsCatchernewscatcher-apitube-migration-kit
NewsData.ioFrom NewsData.ionewsdata-io-apitube-migration-kit
MediastackFrom Mediastackmediastack-apitube-migration-kit
NewsAPI.ai / Event RegistryFrom NewsAPI.ainewsapi-ai-apitube-migration-kit
The News APIFrom The News APIthenewsapi-apitube-migration-kit
World News APIFrom World News APIworldnewsapi-apitube-migration-kit
MarketauxFrom Marketauxmarketaux-apitube-migration-kit
PerigonFrom Perigonperigon-apitube-migration-kit
SerpApi Google NewsFrom SerpApiserpapi-apitube-migration-kit
ScrapingBeeFrom ScrapingBeescrapingbee-apitube-migration-kit
Quantexa News API (formerly Aylien; API host no longer resolves)From Quantexaquantexa-apitube-migration-kit
Bing News Search (retired August 2025)From Bing News Searchbing-news-api-apitube-migration-kit
GDELT DOC 2.0 (free, no key, no article body)From GDELTgdelt-apitube-migration-kit

What every migration has in common

Four things change no matter which API you are coming from. Read these once and most of the per-service guides become skimmable.

1. Search covers headlines, not article bodies

Most news APIs search the title and the body text by default. APITube's title= searches headlines only.

bash
# Other APIs: matches "Tesla" anywhere in the article
q=Tesla

# APITube: matches "Tesla" in the headline
title=Tesla

This is the single biggest behavioural change, and it usually means fewer results.

The replacement is better than a workaround. Filter on the entity instead of the keyword:

bash
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.apitube.io/v1/news/everything?organization.name=Tesla"

That runs on named-entity recognition over the full article text, so it also catches "the Austin-based automaker" when the NER resolves it. See Parameters for person.name, location.name, entity.id, and the rest.

2. Comma-separated filters apply at most three values

bash
language.code=en,de,fr,it     # Italian is ignored — no error

The fourth value onwards is dropped silently. Two ways around it:

bash
# The boolean query language has no value-count limit
query=language.code:(en OR de OR fr OR it OR es)

# Or split into requests of three and deduplicate on the article id

3. Unknown parameters are ignored, not rejected

APITube returns 200 ok for parameters it does not recognise, and the filter simply does not apply. A migration script that forwards a competitor's parameter name produces a request that looks successful and is completely unfiltered:

bash
# Both return the entire index with HTTP 200
curl "…/v1/news/count?q=tesla&api_key=KEY"
curl "…/v1/news/count?country=us&api_key=KEY"

Every compatibility shim linked from these guides keeps an explicit allow-list and warns on anything it drops. If you are converting by hand, check your parameter names against Parameters rather than assuming.

4. Wildcards are not supported, and they fail quietly

bash
title=technology     # 75,574 articles     ✅
title=technolog*     # the entire index    ❌ HTTP 200, filter dropped

Expand prefix searches into an explicit OR list:

bash
query=title:(technology OR technological OR technologies)

The boolean form at least errors properly: query=title:technolog* returns 400 ER0704.

5. Set a generous client timeout and retry on 500

Response times vary far more than most APIs. Measured on 27 July 2026 across two controlled series of 54 requests, the same request shape returned anywhere from 0.4 to 28.7 seconds. Two things push the average up: category.id costs roughly 17–23 seconds on its own, even at per_page=1, and a larger per_page adds on top of whatever the filters cost.

Requests that cross roughly 25–30 seconds hit the gateway timeout and come back as 500 or 502. The same URL will often succeed on the next attempt, so this is a retry, not a bug in your query.

Practically: set the client timeout above 30 seconds — most HTTP libraries default to 10 or 30 and will cut a category-filtered request off mid-flight — and retry once on 500. If you are paging through a large result set, fetch counts from /v1/news/count once per filter set rather than per page.

Endpoint equivalents at a glance

What you wantAPITube endpoint
Search everything/v1/news/everything
Top headlines/v1/news/top-headlines
Breaking news/v1/news/everything?is_breaking=1
Result count/v1/news/count
Geo search/v1/news/local
Aggregation / trends/v1/news/trends?field=entity.id
Real-time pushWebhooks or WebSocket stream
Entity autocomplete/v1/suggest/entities?prefix=

What you gain

Most competitors return a title, a description, a snippet, and a category string. Every APITube article carries:

  • Named entities with Wikidata and Wikipedia links, occurrence counts, and per-entity sentiment
  • Sentiment split into title, body, and overall on a −1…1 scale
  • Three classification axes — IPTC MediaTopics (category.id), editorial topics (topic.id), and industry sectors (industry.id)
  • Full article body as text and HTML
  • Publisher metadata — political bias, authority rank, country
  • Readability scores — Flesch-Kincaid, reading ease, target audience
  • 250 articles per request (10 on Free, 50 on Starter)
  • Export to JSON, JSONL, CSV, TSV, XLSX, XML, RSS, and Parquet from any query

Before you start

  1. Get a key at apitube.io and make one request:

    bash
    curl -H "X-API-Key: YOUR_API_KEY" \
      "https://api.apitube.io/v1/news/everything?title=bitcoin&per_page=3"
  2. Check your languages. APITube does not index every language every competitor lists — most notably Russian and Ukrainian are not available. The per-service guides list exactly which codes are rejected. Confirm yours works before converting anything:

    bash
    curl -H "X-API-Key: YOUR_API_KEY" \
      "https://api.apitube.io/v1/news/count?language.code=de"
  3. Read your service's guide, then decide between converting by hand or dropping in the shim from the migration kit.

Getting help

If a mapping in these guides turns out to be wrong, that is a bug — open an issue on the relevant migration kit and it gets fixed.