ENES

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.

EndpointReturns
/api/v1/search.phpSearch across the whole archive. Without q, the latest items matching your filters.
/api/v1/story.php?id=NOne story with all its articles, plus the AI summary if it already exists.
/api/v1/top.phpThe most covered stories (most distinct sources) in the last N hours; 24 by default.
/api/v1/sources.phpFeeds being polled and outlets that published in the last N days.
/api/v1/countries.phpMonitored 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.

ParameterExampleDescription
qMel GibsonKeywords or "exact phrase". Combine variants with OR or |: Noah's Ark OR Durupınar.
from / to2026-09-21ISO 8601 date or date-time. A story is included if it was active within the range.
days / hours7Shortcut: only the last N days or hours.
countryTR, Turkey, TurquíaTwo-letter ISO 3166-1 code or country name. Several, comma-separated.
languageen,trISO 639-1 code. Several, comma-separated.
publisherBBC NewsExact outlet name. See the names in sources.php.
categorypoliticspolitics, business, technology, climate, sports, science or culture.
statushotbreaking, developing, updates, quiet or hot (breaking plus developing).
min_sources3Only stories covered by at least N distinct sources.
sortcoveragerelevance (with q), recent, coverage or oldest.
limit / offset20 / 40Pagination: up to 100 per page. Use next_offset from the response.
max_articles10Articles listed per story (0–60).
coverage0Set 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)
ToolUse
search_newsSearch with dates, country, language, outlet and category. Returns stories, their sources and the coverage summary.
get_coverageWhich outlets, countries and languages cover a topic over a date range, with a timeline and the top stories.
get_storyOne story with all its original articles.
search_by_countryThe latest from a country, with optional keywords.
get_top_storiesThe most covered stories in the last N hours.
get_sourcesPolled feeds and active outlets by country or language.
list_countriesMonitored 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
Tip: proper names change across languages. Combine variants with 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 429 with Retry-After; the X-RateLimit-Remaining headers show how much is left.
  • Identify your integration with the X-Client-Name: YourApp header (or the client=YourApp parameter). 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.