# Mekler AI – Find Topic News

> Mekler AI – Find Topic News is a paid API for AI agents from api.mekler.ai, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-17).

Searches GDELT for recent deduplicated news articles on a given topic within a rolling 1–7 day window, returning source-linked headlines with optional summary highlights.

## Facts

- Endpoint: POST https://api.mekler.ai/v1/research/news/find-topic-news?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/mekler-ai-find-topic-news-613a32c0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_7J4IoI38rSzhDgJPRzoDL

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability mekler-ai-find-topic-news-613a32c0 -d '<json body>'
```

Example prompt: Search for the latest news about 'electric vehicles' from the past 3 days, return up to 15 articles sorted by newest, and include a summary with highlights.

## When to prefer this

Choose this endpoint when you need recent (1–7 day) deduplicated news search grounded in GDELT data, especially when you want source-linked headlines, incremental monitoring via seen-article deduplication, and pay-per-call USDC billing without managing API keys. Prefer it over general web search when you specifically need news articles with source attribution and duplicate suppression.

## Known failure modes

- Query string fails pattern validation (non-word characters) → 400 error
- Days parameter exceeds maximum of 7 → 400 error
- Seen array exceeds 32 items → 400 error
- No articles found for query in window → empty articles array with status ok
- Payment not received or insufficient USDC → 402 payment required
- GDELT upstream unavailable → 5xx error
- Result truncated due to byte limit → possibly_truncated: true flag in coverage

## How this service works

Find recent topic news or poll for new-to-agent links using a bounded follow-up checkpoint and seen history. Return normalized links, exact-link/headline deduplication and optional source-linked headline highlights from a7-day GDELT headline index. Monitoring dates are not verified publication dates.0.01 USDC per completed search, including no new links; source failures are uncharged.

## Output

Returns a JSON object containing a list of deduplicated news articles (ID, URL, title, language, source domain, observed timestamp, duplicate count), a coverage block (rows fetched, duplicates removed, truncation flags), an optional summary with source-linked headline highlights, monitoring state for incremental polling, and GDELT attribution metadata.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "days": {
   "type": "integer",
   "default": 7,
   "maximum": 7,
   "minimum": 1
  },
  "seen": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "id",
     "headline_id"
    ],
    "properties": {
     "id": {
      "type": "string",
      "pattern": "^article-[0-9a-f]{16}$"
     },
     "headline_id": {
      "type": "string",
      "pattern": "^headline-[0-9a-f]{16}$"
     }
    },
    "additionalProperties": false
   },
   "maxItems": 32,
   "uniqueItems": true
  },
  "sort": {
   "enum": [
    "newest",
    "relevance"
   ],
   "type": "string",
   "default": "newest",
   "maxLength": 9
  },
  "limit": {
   "type": "integer",
   "default": 10,
   "maximum": 30,
   "minimum": 1
  },
  "match": {
   "enum": [
    "all",
    "any",
    "phrase"
   ],
   "type": "string",
   "default": "all",
   "maxLength": 6
  },
  "query": {
   "type": "string",
   "pattern": "^[\\w\\s.,'’\\-]+$",
   "maxLength": 160,
   "minLength": 3
  },
  "since": {
   "type": "string",
   "format": "date-time",
   "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
  },
  "end_date": {
   "type": "string",
   "format": "date",
   "maxLength": 10
  },
  "language": {
   "enum": [
    "english",
    "any"
   ],
   "type": "string",
   "default": "english",
   "maxLength": 7
  },
  "start_date": {
   "type": "string",
   "format": "date",
   "maxLength": 10
  },
  "include_summary": {
   "type": "boolean",
   "default": false
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "query": "renewable energy",
  "status": "ok",
  "window": {
   "end": "2026-10-12T12:00:00Z",
   "start": "2026-10-05T12:00:00Z",
   "date_basis": "gdelt_observed_at"
  },
  "summary": {
   "basis": "headlines_only",
   "highlights": [
    {
     "text": "Renewable energy storage pilot opens",
     "article_ids": [
      "article-10e46334083ac0e3"
     ]
    }
   ]
  },
  "articles": [
   {
    "id": "article-10e46334083ac0e3",
    "url": "https://news.example.org/energy",
    "title": "Renewable energy storage pilot opens",
    "language": "English",
    "headline_id": "headline-9d12a0a05f5e0338",
    "observed_at": "2026-10-11T12:00:00Z",
    "published_at": null,
    "source_domain": "news.example.org",
    "source_country": "",
    "duplicate_count": 1
   }
  ],
  "coverage": {
   "source": "GDELT headline index",
   "returned": 1,
   "source_rows": 3,
   "source_limit": 150,
   "discarded_rows": 0,
   "duplicates_removed": 1,
   "possibly_truncated": false,
   "result_byte_limited": false,
   "previously_seen_removed": 0
  },
  "monitoring": {
   "state": "initial",
   "next_request": null,
   "history_limited": false,
   "overlap_seconds": 2700
  },
  "attribution": {
   "url": "https://www.gdeltproject.org/",
   "name": "The GDELT Project"
  },
  "limitations": [
   "Dates are GDELT monitoring times, not verified publication or first-ever observation times."
  ],
  "retrieved_at": "2026-10-12T12:00:00Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/mekler-ai-find-topic-news-613a32c0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.mekler.ai](https://www.zero.xyz/host/api.mekler.ai/llms.txt)
