```yaml
product: AlterLab
title: "Free News API: Cached Headlines for Developers and Agents | AlterLab | AlterLab"
comparison_context: "AlterLab is an alternative to Firecrawl, ScrapingBee, and Bright Data."
source_url: https://alterlab.io/news-api
```

# Free News API

Search headlines from curated public news sources. No key needed. The index refreshes about every 15 minutes on a fixed schedule, and every request is served from cache, so it stays free and fast.

## Try it

```
curl "https://alterlab.io/api/v1/news?q=chips&category=technology&limit=5"
```

```
import requests

r = requests.get(
    "https://alterlab.io/api/v1/news",
    params={"q": "climate", "since": "2026-11-01T00:00:00Z"},
    headers={"X-API-Key": "YOUR_FREE_KEY"},  # optional: higher limits
)
for item in r.json()["items"]:
    print(item["headline"], item["url"])
```

## Filters

- `q`: Text to match in the headline or snippet
- `category`: world, technology, business, science, sports, general
- `source`: Source id, for example bbc, npr, guardian-world, aljazeera
- `language`: Language code, for example en or de
- `since`: ISO 8601 time; only items published after it
- `limit`: 1 to 100 items, default 20

## What you get

Headline, URL, source, published time, author, image URL, a snippet of at most 300 characters and a category. There is no article text: every item links to the publisher. To read an article, scrape its URL with the [AlterLab scrape API](https://alterlab.io/docs); that is one normal scrape on your balance. Each response includes an `attribution` credit (“News via AlterLab”) and a `next_action` hint.

## Limits

Without a key: 60 requests per hour per IP. With a free API key: 1,000 requests per hour. Both are read from the cached index and cost nothing.

## For agents (MCP)

The hosted MCP server exposes `alterlab_news`. It is public: no credentials and no credits. See the [MCP server](https://alterlab.io/integrations/mcp-server) page to connect.

## Your first scrape. Sixty seconds.

Up to 5,000 free requests — about 5,000 direct fetch, 500 managed sessions or 250 full browser rendering requests. No credit card. 
Just a POST request.

terminal

curl -X POST https://api.alterlab.io/v1/scrape \

-H "X-API-Key: YOUR_KEY" \

-H "Content-Type: application/json" \

-d '{"url": "https://example.com", "formats": ["markdown"]}'

[Start building free](https://alterlab.io/signin)

No credit card required · Up to 5,000 free requests (about 5,000 direct fetch, 500 managed sessions or 250 full browser rendering requests) · Balance never expires