Free news API for AI agents

Tech, AI, business and science news in English and Czech as JSON, Markdown or RSS. No key, no sign-up, no SDK: one HTTP GET. Every article carries its sources, a category and a link to its page.

Today's news for your agent's context:

curl https://techtools.cz/news-api/v1/briefing.md

No key needed, up to 120 requests a minute. Reference for agents: JSON docs and OpenAPI 3.1.

Try it

Pick a request. The answer below is the live response from the API, exactly what your code or agent receives.

curl https://techtools.cz/news-api/v1/briefing.md?hours=24&limit=5

What you can ask for

EndpointReturns
GET /v1/articlesArticles, newest first. Filter by category, search words, time window; 1 to 100 per page.
GET /v1/articles/{id}One article with its full text, sources and the other-language version. Add .md for Markdown.
GET /v1/briefing.mdThe last N hours (1 to 168) grouped by topic, as Markdown ready for a prompt. Without .md it is JSON.
GET /v1/statsFeed statistics: totals, articles per day, topics, cited sites, API usage.
GET /v1/categoriesThe five topics with article counts.
GET /v1/feed.xmlRSS 2.0 of the newest articles, per language and topic.

Base URL: https://techtools.cz/news-api. Full reference for agents: /news-api/docs (JSON) and /news-api/openapi.json.

Filters for /v1/articles

lang
en (default) or cs. The two languages are separate article sets with their own ids.
category
ai, technology, business, science, other. Several at once: ai,science.
q
Words to find in the title, summary or text.
since, until
A date (2026-10-01), a time (2026-10-14T08:00:00Z) or an age: 90m, 24h, 7d, 2w.
page, per_page
Pages from 1, 1 to 100 articles each (default 20). links.next holds the next page's URL.
content
false leaves out the article text for a lighter list.

One article

Every article has the same shape in every endpoint. Link url when you show it to people; sources are the reporting it is based on.

{
  "id": 2511,
  "lang": "en",
  "title": "…",
  "summary": "…",
  "category": "ai",
  "category_label": "AI",
  "published_at": "2026-10-14T10:00:59Z",
  "url": "https://techtools.cz/tools/news/article/2511-…",
  "markdown_url": "https://techtools.cz/news-api/v1/articles/2511.md?lang=en",
  "image_url": "https://…",
  "word_count": 164,
  "reading_time_minutes": 1,
  "sources": [{ "url": "https://www.reuters.com/…", "domain": "reuters.com" }],
  "translation": { "lang": "cs", "id": 2547, "url": "https://techtools.cz/tools/news/clanek/2547-…" },
  "content": "First paragraph…\n\nSecond paragraph…"
}

From code

Python

import requests

r = requests.get("https://techtools.cz/news-api/v1/articles",
                 params={"category": "ai", "since": "24h"}, timeout=10)
for a in r.json()["data"]:
    print(a["published_at"], a["title"], a["url"])

JavaScript

const res = await fetch("https://techtools.cz/news-api/v1/briefing.md?hours=12");
const briefing = await res.text(); // Markdown, ready for a prompt

As a tool for an LLM agent

Agents that read OpenAPI (GPT Actions, LangChain, Semantic Kernel and similar) can take /news-api/openapi.json as it is. With plain function calling, one tool is enough:

{
  "name": "get_tech_news",
  "description": "Recent AI, technology, business and science news with sources (TechTools News).",
  "parameters": {
    "type": "object",
    "properties": {
      "category": { "type": "string", "enum": ["ai", "technology", "business", "science", "other"] },
      "q": { "type": "string", "description": "Words to search for" },
      "since": { "type": "string", "description": "Age such as 24h or 7d" }
    }
  }
}
// Implementation: GET https://techtools.cz/news-api/v1/articles?category=…&q=…&since=…&content=false

Limits and fair use

Questions

Is the news API really free?

Yes. There is no paid plan, no key and no sign-up. The only limit is 120 requests per minute from one IP address.

Do I need an API key?

No. Every endpoint answers a plain HTTP GET without a key, a cookie or any header, and allows cross-origin calls from browsers.

How fresh is the news?

A new story is published about every 4 hours, about events reported in the previous day or two. Responses are cached for 2 to 10 minutes, so polling every 15 minutes is plenty.

Which languages are available?

English and Czech. Add lang=cs for Czech. A story published in both languages links the other version in its translation field.

Can I show the articles in my app or agent?

Yes. Credit TechTools News and link the article's url when you show an article to people. For anything that matters, read the original reporting listed in sources.

Who writes the articles?

An automated journalist: an AI model with web search picks a story from the last 24 to 48 hours, writes it in English and Czech and lists the sources it used.

How do I connect it to ChatGPT, Claude or another agent?

Give the agent the OpenAPI file at https://techtools.cz/news-api/openapi.json, or define one tool that calls /news-api/v1/articles or /news-api/v1/briefing.md. Agents that can fetch URLs can read the Markdown briefing directly.