{"name":"TechTools News API","version":"1.0","updated":"2026-10-14","summary":"Free, keyless JSON + Markdown + RSS API over the TechTools News feed: AI, technology, business and science news in English and Czech, a new story about every 4 hours since January 2026, every article with its source links. Built for AI agents: one call returns ready-to-use text (Markdown briefing) or structured JSON with categories, sources and canonical URLs.","human_page":"https://techtools.cz/tools/news/api/","news_site":"https://techtools.cz/tools/news/","base_url":"https://techtools.cz/news-api/v1","openapi":"https://techtools.cz/news-api/openapi.json","auth":"None. No key, no account, no cookies. Read-only.","cors":"Access-Control-Allow-Origin: * on every GET, so browser-side agents can call it too.","rate_limit":{"limit":"120 requests per minute per IP address","over_limit":"429 { error, code: \"rate_limited\", retry_after: 60 } with a Retry-After header","caching":"Responses carry Cache-Control: public (2 to 10 minutes). The feed changes about every 4 hours, so polling more often than every 15 minutes gains nothing."},"attribution":"Free to use. When you show an article to people, credit \"TechTools News\" and link the article's url. The articles summarise reporting from the sites listed in sources.","languages":{"en":"English (default)","cs":"Czech. lang=cs; lang=cz is accepted too. The two languages are separate article sets with their own ids; a story published in both carries a translation object pointing at the other one."},"categories":[{"id":"ai","en":"AI","cs":"AI"},{"id":"technology","en":"Technology","cs":"Technologie"},{"id":"business","en":"Business","cs":"Byznys"},{"id":"science","en":"Science","cs":"Věda"},{"id":"other","en":"Other","cs":"Ostatní"}],"quickstart":[{"goal":"Today's news as Markdown, ready for an LLM context","curl":"curl 'https://techtools.cz/news-api/v1/briefing.md?hours=24'"},{"goal":"Latest AI articles as JSON","curl":"curl 'https://techtools.cz/news-api/v1/articles?category=ai\u0026per_page=5'"},{"goal":"Search","curl":"curl 'https://techtools.cz/news-api/v1/articles?q=openai\u0026since=7d'"},{"goal":"One article as Markdown","curl":"curl 'https://techtools.cz/news-api/v1/articles/{id}.md'"},{"goal":"Feed statistics","curl":"curl 'https://techtools.cz/news-api/v1/stats'"},{"goal":"Czech articles","curl":"curl 'https://techtools.cz/news-api/v1/articles?lang=cs\u0026per_page=5'"}],"endpoints":[{"method":"GET","path":"/articles","description":"Published articles, newest first, with filters and pagination.","params":{"lang":"en (default) | cs","category":"one or more of ai, technology, business, science, other, comma-separated (ai,science)","q":"full-text search in title, summary and body (case-insensitive substring); search= is an alias","since":"only newer than this: ISO 8601 (2026-10-01, 2026-10-14T08:00:00Z) or an age (90m, 24h, 7d, 2w)","until":"only older than this, same formats","page":"1..10000, default 1","per_page":"1..100, default 20","content":"false to leave out the article body (smaller list responses)","format":"append .md to the path (or output=md) for a Markdown list"},"returns":"{ data: [article], meta: { lang, page, per_page, total, total_pages, filters }, links: { self, next, prev, docs } }","curl":"curl 'https://techtools.cz/news-api/v1/articles?category=ai,technology\u0026since=24h'"},{"method":"GET","path":"/articles/{id}","description":"One article. Append .md for Markdown (title, date, body, sources, link).","params":{"lang":"en (default) | cs: the id belongs to that language's article set"},"returns":"{ data: article } or text/markdown; 404 { error, code: \"not_found\" } when there is no such published article","curl":"curl 'https://techtools.cz/news-api/v1/articles/2511' ; curl 'https://techtools.cz/news-api/v1/articles/2511.md'"},{"method":"GET","path":"/briefing","description":"Everything published in the last N hours grouped by category: summaries, links and sources without the full bodies. The .md form is designed to be pasted into a prompt.","params":{"lang":"en | cs","hours":"1..168, default 24","category":"optional filter, comma-separated","limit":"1..50 articles, default 30","format":".md or output=md for Markdown"},"returns":"{ lang, hours, since, generated_at, count, latest_published_at, categories: [{ id, label, articles: [article without content] }] }","curl":"curl 'https://techtools.cz/news-api/v1/briefing.md?hours=48\u0026category=ai'"},{"method":"GET","path":"/stats","description":"Statistics of the feed. Cached for 10 minutes.","params":{"lang":"all (default) | en | cs"},"returns":"{ scope, generated_at, totals { articles, by_lang }, freshness { first_published_at, latest_published_at, minutes_since_latest, schedule }, volume { last_24h, last_7d, last_30d, avg_per_day_30d }, categories [{ id, label, articles, share, last_30d, latest_published_at }], daily [{ date, articles, by_category }] (30 UTC days), sources { citations, distinct_sites, articles_with_sources_share, avg_per_article, top [{ domain, articles }] }, content { avg_words, median_words, total_words, with_image_share }, api { tracking_since, requests_today, requests_7d, requests_30d, requests_total, by_client_30d { agent, browser } } }","curl":"curl 'https://techtools.cz/news-api/v1/stats'"},{"method":"GET","path":"/categories","description":"The five categories with labels, article counts and the newest article time.","params":{"lang":"en | cs"},"returns":"{ lang, data: [{ id, label, articles, latest_published_at, articles_url }] }","curl":"curl 'https://techtools.cz/news-api/v1/categories?lang=cs'"},{"method":"GET","path":"/feed.xml","description":"RSS 2.0 of the newest articles, linking to the article pages.","params":{"lang":"en | cs","category":"optional, comma-separated","limit":"1..100, default 30"},"returns":"application/rss+xml","curl":"curl 'https://techtools.cz/news-api/v1/feed.xml?category=ai'"},{"method":"GET","path":"/news-api/docs","description":"This document (also served at https://techtools.cz/news-api/v1).","curl":"curl https://techtools.cz/news-api/docs"},{"method":"GET","path":"/news-api/openapi.json","description":"OpenAPI 3.1 description.","curl":"curl https://techtools.cz/news-api/openapi.json"}],"article_object":{"id":"integer, unique within its language","lang":"en | cs","title":"headline","summary":"one or two sentences","category":"ai | technology | business | science | other","category_label":"category name in the article's language","published_at":"ISO 8601, UTC","updated_at":"ISO 8601, UTC","url":"the article's page on techtools.cz (link this when you cite it)","api_url":"this article in the API","markdown_url":"this article as Markdown","image_url":"lead image from the source article, or null","word_count":"words in content","reading_time_minutes":"at 200 words per minute","sources":"[{ url, domain }]: the reporting the article is based on","translation":"{ lang, id, title, url, api_url } of the same story in the other language, or null","content":"the article body as plain text, paragraphs separated by a blank line (left out with content=false)"},"errors":{"shape":"{ error: message, code, param?, allowed?, docs }","codes":[{"status":404,"code":"not_found","when":"no published article with that id in that language"},{"status":422,"code":"unknown_lang","param":"lang","when":"lang is not en or cs (cz)"},{"status":422,"code":"unknown_category","param":"category","when":"a category outside the five"},{"status":422,"code":"invalid_time","param":"since | until","when":"not ISO 8601 and not an age like 24h"},{"status":422,"code":"out_of_range","param":"page | per_page | hours | limit","when":"not a whole number in range"},{"status":429,"code":"rate_limited","when":"more than 120 requests in a minute from one IP"}]},"about_the_content":"Articles are written by an automated journalist (an AI model with web search) about a story reported in the previous 24 to 48 hours, then published in English and Czech. Each article lists the sources it is based on. Read them for anything that matters.","changelog":[{"date":"2026-10-14","change":"v1: articles, briefing, stats, categories, RSS, Markdown output, OpenAPI."}]}