API, feeds and MCP Active
The CheckNews archive is open in read-only mode. Every article keeps its original outlet, country, language, publication date and time, and source URL. No key required.
Quick start
Every search on the site has a public, permanent URL, and the same search in JSON:
https://checknews.org/search?q=Mel+Gibson
https://checknews.org/buscar.php?q=Mel+Gibson
https://checknews.org/buscar.php?q=Mel+Gibson&format=json → JSON
https://checknews.org/buscar.php?q=Mel+Gibson&format=rss → RSS Every story has its own permanent page, with structured data (schema.org) and a JSON version:
https://checknews.org/historia.php?id=12345
https://checknews.org/api/v1/story.php?id=12345
REST API
All endpoints accept GET, return UTF-8 JSON, allow CORS from any origin, and take &pretty=1 for indented output.
| Endpoint | Returns |
|---|---|
| /api/v1/search.php | Search across the whole archive. Without q, the latest items matching your filters. |
| /api/v1/story.php?id=N | One story with all its articles, plus the AI summary if it already exists. |
| /api/v1/top.php | The most covered stories (most distinct sources) in the last N hours; 24 by default. |
| /api/v1/sources.php | Feeds being polled and outlets that published in the last N days. |
| /api/v1/countries.php | Monitored countries with their recent activity, and the list of categories. |
| /api/v1/ | Machine-readable index. |
Search parameters
They are accepted in English or Spanish (country or pais, from or desde…). The same ones work for feeds.
| Parameter | Example | Description |
|---|---|---|
| q | Mel Gibson | Keywords or "exact phrase". Combine variants with OR or |: Noah's Ark OR Durupınar. |
| from / to | 2026-09-21 | ISO 8601 date or date-time. A story is included if it was active within the range. |
| days / hours | 7 | Shortcut: only the last N days or hours. |
| country | TR, Turkey, Turquía | Two-letter ISO 3166-1 code or country name. Several, comma-separated. |
| language | en,tr | ISO 639-1 code. Several, comma-separated. |
| publisher | BBC News | Exact outlet name. See the names in sources.php. |
| category | politics | politics, business, technology, climate, sports, science or culture. |
| status | hot | breaking, developing, updates, quiet or hot (breaking plus developing). |
| min_sources | 3 | Only stories covered by at least N distinct sources. |
| sort | coverage | relevance (with q), recent, coverage or oldest. |
| limit / offset | 20 / 40 | Pagination: up to 100 per page. Use next_offset from the response. |
| max_articles | 10 | Articles listed per story (0–60). |
| coverage | 0 | Set to 0 to skip the coverage summary and respond faster. |
Response shape
{
"query": { "q": "Durupınar", "from": "2026-09-21T00:00:00-06:00", "sort": "relevance" },
"total": 19, "total_is_capped": false, "offset": 0, "limit": 20, "next_offset": null,
"results": [{
"id": 59881,
"title": "Researchers return to Noah's Ark site at Durupınar formation",
"permalink": "https://checknews.org/historia.php?id=59881",
"status": "breaking", "category": "science",
"country": "US", "country_name": "United States", "language": "en",
"first_seen_at": "2026-09-28T09:39:28-06:00", "last_activity_at": "2026-09-28T10:39:28-06:00",
"source_count": 4, "article_count": 4,
"source_url": "https://…",
"articles": [{
"title": "…", "publisher": "Daily Sabah", "url": "https://…",
"country": "TR", "country_name": "Türkiye", "language": "en",
"published_at": "2026-09-28T10:09:28-06:00"
}]
}],
"coverage": {
"stories": 19, "articles": 54,
"publishers": [{ "name": "Hürriyet", "country": "TR", "articles": 5, "stories": 5 }],
"countries": [{ "code": "TR", "name": "Türkiye", "articles": 11, "stories": 9, "publishers": 3 }],
"languages": [{ "code": "en", "articles": 30 }],
"timeline": [{ "date": "2026-09-27", "articles": 21 }]
},
"links": { "self": "…", "next": null, "html": "…", "rss": "…", "atom": "…", "json_feed": "…" }
} Dates include a time zone. coverage counts every article published within the range by outlet, country and language: it directly answers “which outlets and which countries are covering this”.
RSS, Atom and JSON Feed
The latest items, or any search or filter, as a feed. Each entry carries the headline, original outlet, country, language, date and source URL, and links to the story page.
https://checknews.org/feed/ RSS 2.0, latest
https://checknews.org/feed/?format=atom Atom 1.0
https://checknews.org/feed/?format=json JSON Feed 1.1
https://checknews.org/feed/?q=Mel+Gibson a search
https://checknews.org/feed/?country=MX&min_sources=3 Mexico, stories with 3 or more sources
https://checknews.org/feed/?language=en&category=science&days=2 The sitemap is at https://checknews.org/sitemap.php: an index with one sitemap per archive day and their last-modified dates.
MCP server
For assistants and agents that support the Model Context Protocol. Streamable HTTP transport (JSON-RPC 2.0 over POST), no authentication, read-only.
https://checknews.org/mcp/
https://checknews.org/mcp.php (same thing, in case your client doesn’t follow the trailing slash) | Tool | Use |
|---|---|
| search_news | Search with dates, country, language, outlet and category. Returns stories, their sources and the coverage summary. |
| get_coverage | Which outlets, countries and languages cover a topic over a date range, with a timeline and the top stories. |
| get_story | One story with all its original articles. |
| search_by_country | The latest from a country, with optional keywords. |
| get_top_stories | The most covered stories in the last N hours. |
| get_sources | Polled feeds and active outlets by country or language. |
| list_countries | Monitored countries, with codes, names and activity. |
Connect it
Claude (web or desktop): Settings → Connectors → Add custom connector, with the URL https://checknews.org/mcp/.
Claude Code:
claude mcp add --transport http checknews https://checknews.org/mcp/ Other clients (Cursor, VS Code, etc.), in their configuration file:
{
"mcpServers": {
"checknews": { "type": "http", "url": "https://checknews.org/mcp/" }
}
} Try it by hand
curl -s -X POST https://checknews.org/mcp/ \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_coverage","arguments":{"query":"Durupınar","days":7}}}'
Full example
“Search CheckNews for all news about Noah's Ark/Durupınar published over the last week and tell me which outlets and countries are covering it.”
With MCP, the agent calls get_coverage:
{ "query": "Noah's Ark OR Durupınar OR Nuh'un Gemisi", "days": 7 } With the API, a single request; the response includes coverage.publishers and coverage.countries:
https://checknews.org/api/v1/search.php?q=Noah%27s%20Ark%20OR%20Durup%C4%B1nar%20OR%20Nuh%27un%20Gemisi&days=7 OR (English, Turkish, Spanish…) so you don’t miss coverage from other countries.Usage rules
- No key or sign-up. Limit: 120 requests per minute per IP. Beyond that, the response is
429withRetry-After; theX-RateLimit-Remainingheaders show how much is left. - Identify your integration with the
X-Client-Name: YourAppheader (or theclient=YourAppparameter). It’s optional, but it helps us know who uses the archive and let you know about changes. - Responses are cached for a few minutes. To follow a topic, use the feeds instead of repeating the same search.
- Credit the original source (
articles[].url) and the story’s permanent link (permalink). Headlines belong to their outlets. - Search engines and AI agents that respect robots.txt may crawl the archive, search, feeds and API.
- The API is read-only: it gives no access to the admin panel or any settings.
