---
name: apitube-news-api
description: Query the APITube News API — authenticate, search and filter worldwide news articles, and parse the JSON response. Use when an agent needs live or historical news data.
---

# APITube News API

APITube is a worldwide News API. Use it to search and filter news articles in real time
or historically, then read structured fields (title, body, source, sentiment, entities).

- Base URL: `https://api.apitube.io/v1`
- Full docs: https://docs.apitube.io/
- OpenAPI spec: https://api-reference.apitube.io/openapi.json
- Get an API key: https://apitube.io/

## Authentication

Pass your API key in one of three ways. Headers are recommended over the query parameter.

```bash
# 1. Authorization header (most secure)
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.apitube.io/v1/news/everything?per_page=10"

# 2. X-API-Key header
curl -H "x-api-key: YOUR_API_KEY" \
  "https://api.apitube.io/v1/news/everything?per_page=10"

# 3. Query parameter (avoid in production — leaks in logs)
curl "https://api.apitube.io/v1/news/everything?per_page=10&api_key=YOUR_API_KEY"
```

See https://docs.apitube.io/platform/news-api/authentication for details.

## Endpoints

| Endpoint | Purpose |
|----------|---------|
| `GET /news/everything` | Search all articles with full filtering |
| `GET /news/top-headlines` | Top headlines |
| `GET /news/story` | A single story by ID |
| `GET /news/article` | A single article by ID |
| `GET /news/category` · `/news/topic` · `/news/industry` · `/news/entity` | Articles by taxonomy |
| `GET /news/trends` | Trending values for a given `field` |
| `GET /suggest/{entities,sources,categories,topics,industries}` | Autocomplete |
| `GET /balance` | Remaining API key balance |

## Key parameters (for `/news/everything`)

- `title` — keyword/phrase search in titles. Quotes for exact phrase, `~N` for proximity.
- `language.code` — ISO 639-1 (e.g. `en`); up to 3 with OR logic.
- `category.id`, `topic.id`, `entity.id`, `industry.id` — filter by taxonomy ID (up to 3 each).
- `published_at.start`, `published_at.end` — ISO 8601 dates; supports date math like `NOW-7DAY`.
- `sentiment.overall.polarity` — `positive`, `negative`, or `neutral`.
- `source.id`, `source.country.code`, `is_breaking`, `has_author` — source/quality filters.
- `sort.by` — e.g. `published_at`, `sentiment.overall.score`.
- `per_page`, `page` — pagination.

Example:

```bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.apitube.io/v1/news/everything?title=%22artificial%20intelligence%22&language.code=en&published_at.start=NOW-7DAY&sort.by=published_at&per_page=10"
```

## Response shape

```json
{
  "status": "ok",
  "limit": 10,
  "page": 1,
  "has_next_pages": true,
  "next_page": "https://api.apitube.io/v1/news/everything?...&page=2",
  "results": [
    {
      "id": "...",
      "href": "https://original-source.example/article",
      "published_at": "2026-05-20T10:00:00Z",
      "title": "...",
      "description": "...",
      "body": "...",
      "language": "en",
      "source": { "id": 123, "domain": "example.com" },
      "sentiment": { "overall": { "score": 0.42, "polarity": "positive" } },
      "entities": [],
      "categories": [],
      "topics": []
    }
  ]
}
```

Paginate by following `next_page`, or by incrementing `page` while `has_next_pages` is `true`.
A successful response has `status: "ok"`.

## Rate limits

The Free plan allows 30 requests per 30 minutes (1 page max); paid plans are higher.
Every response includes `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset`.
Exceeding the limit returns HTTP 429 (error code `ER0360`). Back off until the reset time.
