Built for agents, not for dashboards
Every other news API requires an API key. An agent cannot get one — it has no email inbox, it will not clear a captcha, it cannot accept terms of service and it has no card to enter. A key means a human has to be in the loop. We removed the key.
curl "https://freenewsapi.ai/v1/search?q=your+question&date=24h&size=5"That is the entire integration. There is no second step.
The thing worth knowing
We called ten leading news APIs with no key on 18 August 2026. Every one refused:
| Service | Response without a key |
|---|---|
| newsapi.org | 401 apiKeyMissing |
| gnews.io | 400 You did not provide an API key |
| newsdata.io | 401 The API Key is missing |
| thenewsapi.com | 401 invalid_api_token |
| mediastack.com | 401 missing_access_key |
| apitube.io | 401 ER0201 |
| worldnewsapi.com | 401 You are not authorized |
| currentsapi.services | 401 Authentication required |
| goperigon.com | 401 API key not found |
| freenewsapi.io | 401 Missing API key |
| freenewsapi.ai | 200 results |
You can reproduce all eleven yourself in a minute. That is the point — it is a fact, not a claim. Full comparison.
Wire it up
OpenAI function calling
A complete tool schema with descriptions written for the model, plus the dispatcher that executes it.
Anthropic tool use
The same tool in Claude's format, with a working conversation loop.
System prompts
When to call the tool, when not to, and how to phrase the query so it actually matches.
RAG recipe
Retrieve, rank, ground, cite. End to end, with the failure modes named.
Token costs
What each response mode actually costs in tokens. Nobody else tells you this.
Recipes
Topic monitoring, morning digests, breaking-news alerts, cross-country comparison.
Connect any model
Working code for Qwen, DeepSeek, MiniMax, Kimi, GLM, GPT, Claude, Gemini, Llama and more — base URL, model id and the quirk that will cost you an afternoon.
Identify your agent
One optional header saying what your agent is and what it runs through. Recommended, never required — and it is what keeps API keys away.
One thing we ask, and cannot enforce. Send an
X-Agent header with your agent's name, framework and model. It is entirely
optional and nothing is throttled without it — but an open API usually closes
because its operators cannot see who is using it, and this is how that stays unnecessary.
The convention, in full →
Four things that matter when a model is the caller
1. Provenance, not just data
Every article says how its country and date were derived, through
country_source and date_source. Roughly a third of country values
are inferences. Other APIs return the inference as a fact; we label it, so an agent can
decide whether to rely on it. If you are counting by country rather than reading, add
strict_country=true.
2. Full text is free
Competitors put the article body behind the top tier. For retrieval-augmented
generation that is the difference between useful and useless — a headline is not
grounding. full_text=true is open to everyone here.
3. Predictable freshness
New articles land once an hour. Not "real time", not "streaming" — hourly, and we
publish every batch as it lands, so an agent can know how stale
its view is rather than guess. Sort by crawled to poll; it never moves
backwards.
4. Errors written as instructions
Every error is documented in terms of what the caller should do next, not what went wrong internally. 4xx means do not retry; 5xx means back off. That rule is all an agent needs.
Machine-readable entry points
| Path | What it is |
|---|---|
/llms.txt |
Short orientation: what this service is and how to call it. Start here. |
/llms-full.txt |
Entire documentation as one plain-text file, for loading into context. |
/openapi.json |
OpenAPI 3.1 schema. Generate a client, or hand it to a tool-calling framework. |
MCP is next. A Model Context Protocol server at
/mcp, with search_news, get_article and
news_stats as native tools, is the next thing we ship. Until then the
tool definitions below drop straight into any
framework. Progress lands on the changelog.