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 snippetcategory: world, technology, business, science, sports, generalsource: Source id, for example bbc, npr, guardian-world, aljazeeralanguage: Language code, for example en or desince: ISO 8601 time; only items published after itlimit: 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; 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 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.
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