# Free News API > A free, keyless news search API. Full-text search over 21,690,432 news articles from > 25,000+ publishers worldwide, refreshed continuously (newest article is typically under > two minutes old), rolling 90-day window. No API key, no > signup, no quota, commercial use allowed. Built for AI agents that cannot register for > credentials. Base URL: https://freenewsapi.ai Authentication: none. Do not send an API key; there is no parameter for one. Rate limit: 20 requests/second per IP. No daily or monthly cap. CORS: open to all origins. ## Endpoints - [GET /v1/search](https://freenewsapi.ai/docs/search): Full-text search. Parameters: q, country, lang, tld, host, date (today|yesterday|24h|48h|7d|30d), from, to, sort (date|date_asc|crawled|crawled_asc|relevance), size (1-100), offset (0-9900), full_text, highlight, strict_country. - [GET /v1/stats](https://freenewsapi.ai/docs/stats): Counts by country, language, TLD, publisher and day for any filter combination. Cheapest way to measure coverage. - [GET /v1/article](https://freenewsapi.ai/docs/article): One article by exact URL, with full body text. - [GET /health](https://freenewsapi.ai/docs/health): Liveness and current document count. ## MCP server An MCP server over the same corpus, free and keyless like the rest: https://freenewsapi.ai/mcp Transport: Streamable HTTP (JSON-RPC 2.0 over POST). Protocol version 2025-06-18. No authorization step, no session id, batching supported. Two layers of tools. Six hand-written shortcuts that answer a whole question in one call and return a trimmed result: search_news, get_trends, trend_keywords, find_publishers, list_countries, market_vs_news. Then every endpoint of this API as its own tool, generated from the service itself with all of its parameters, plus news_list_endpoints (the catalogue) and news_get (any endpoint by path). Machine-readable catalogue of every tool and endpoint, one GET, no handshake: https://freenewsapi.ai/mcp?format=json claude mcp add --transport http freenewsapi https://freenewsapi.ai/mcp Details: https://freenewsapi.ai/mcp ## Quick example curl "https://freenewsapi.ai/v1/search?q=climate+summit&date=24h&size=5" ## How to query well - The search is AND across all terms. Use 2-5 keywords, not a natural-language question. "opec production cut" works; "what did OPEC decide about oil" returns nothing. - Sort by `crawled` when polling for new articles. Publishers backdate publication times; crawl time only moves forward. - `full_text=true` costs roughly 900 tokens per article. Scan with metadata first, then fetch bodies for the few you need. - `/v1/stats` costs about 200 tokens and tells you whether a search is worth running. - Country is inferred. Read `country_source` on each article; add `strict_country=true` when counting by country. ## Errors 4xx means the request is wrong: fix it, do not retry. 5xx means we are down: back off. 429 means slow down and retry. ## Recommended: identify yourself (optional) No API key exists and none will. As a courtesy, send a header naming your agent, the framework it runs through and the model driving it. It is never required, never validated, and nothing is throttled without it: X-Agent: agent_name=; software=; model=; version=; purpose=; contact= User-Agent: / (+) Unknown keys are ignored, so extra keys are safe to send. The same values also work as query parameters on any endpoint, which is often easier: https://freenewsapi.ai/v1/search?q=climate&agent_name=newsbot&software=langchain&model=gpt-4o Unknown query parameters are ignored, so this can never break a request. Never put end-user personal data in these fields. Details: https://freenewsapi.ai/agents/identify ## Coverage 21,690,432 articles, 100 countries, 100 languages. Top countries: IN, US, TR, RU, IT, AR, ES, UA, DE, BR, FR, GR. Top languages: en, es, ru, tr, it, de, fr, ar, pt, hi, el, ja. Live figures: https://freenewsapi.ai/v1/stats ## Documentation - [Quickstart](https://freenewsapi.ai/docs/quickstart): first request in 30 seconds - [Search reference](https://freenewsapi.ai/docs/search): every parameter with examples - [Response fields](https://freenewsapi.ai/docs/fields): every field, its coverage and how it was derived - [Errors](https://freenewsapi.ai/docs/errors): what to do about each status code - [For AI agents](https://freenewsapi.ai/agents): tool definitions, prompts, RAG recipes, token costs - [Connect any model](https://freenewsapi.ai/agents/models): ready-made tool-calling code per model family (Qwen, DeepSeek, MiniMax, Kimi, GLM, Doubao, Hunyuan, ERNIE, Yi, Step, GPT, Claude, Gemini, Grok, Mistral, Llama, Command, Nova, Phi, Jamba, Sonar, OpenRouter, Ollama, vLLM) - [Token costs](https://freenewsapi.ai/agents/token-costs): tokens per response mode - [Data quality](https://freenewsapi.ai/data/quality): what this dataset gets wrong - [OpenAPI schema](https://freenewsapi.ai/openapi.json) - [Full documentation as one file](https://freenewsapi.ai/llms-full.txt) ## Source and limits Data is aggregated from large-scale public news archives. Retention is 90 days; there is no deeper archive. There is no sentiment analysis or entity extraction. There is no SLA. Article text belongs to the publishers; every response includes the original URL and callers should link back to it.