# d21 News Search

> d21 News Search is a paid API for AI agents from draconic21-x402-api.onrender.com, paid per call via x402, $0.009/call, status unknown (last checked 2026-10-12).

Searches multi-language, multi-country news headlines via GDELT DOC 2.0 API, returning article lists or volume/tone timelines with optional filters for language, country, domain, tone, and timespan.

## Facts

- Endpoint: POST https://draconic21-x402-api.onrender.com/v1/news_search?utm_source=zero.xyz
- Price: $0.009/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/d21-news-search-f52df1ec
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_cL2W-DY-Sai2EtWHaVwex

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 d21-news-search-f52df1ec -d '<json body>'
```

Example prompt: Search for news articles about 'Fed interest rate decision' from the past week in English, sorted by relevance, and return up to 25 results — also flag anything with a strongly negative tone below -5.

## When to prefer this

Choose this endpoint when you need fast, broad, multi-language news search across 100+ countries without requiring API keys or subscriptions, especially when tone/sentiment filtering or volume timelines are needed. Prefer it over general web search when you specifically want news headlines with GDELT metadata including tone scores, source country, and language. Best for monitoring coverage trends, sentiment shifts, or finding international press on a topic updated as frequently as every 15 minutes.

## Known failure modes

- Missing required 'query' field returns a 400 validation error
- Invalid timespan enum value returns a 400 error
- GDELT upstream outage or delay may cause empty results or timeout
- Overly narrow filter combinations (country + language + domain + tone range) may return zero articles
- max_records outside 1-50 range returns a validation error
- Rare languages or niche domains may have sparse or no GDELT coverage

## How this service works

News Search ($0.009): multi-language, multi-country news headline search plus an optional volume/tone timeline, built entirely on the GDELT Project's free, keyless DOC 2.0 API (100+ languages, updated every 15min). Body { query } required; optional timespan (1h..3m), language, country, domain filters, min_tone/max_tone, sort (date|relevance), max_records (1-50). Pass mode:"timeline" for a per-period volume+tone series instead of an article list. Headlines/URLs/metadata only -- never relays…

## Output

In 'articles' mode: a deduplicated list of up to 50 news headlines with URLs, publication dates, source domains, country/language metadata, and GDELT tone scores. In 'timeline' mode: a per-period time series showing article volume and average tone for the query, useful for tracking coverage intensity and sentiment shifts over time.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "mode": {
   "enum": [
    "articles",
    "timeline"
   ],
   "type": "string",
   "description": "Default 'articles' (deduped headline list). 'timeline' returns a volume+avg-tone series instead."
  },
  "sort": {
   "enum": [
    "date",
    "relevance"
   ],
   "type": "string",
   "description": "articles mode only. Default 'date'."
  },
  "query": {
   "type": "string",
   "description": "Search query, e.g. 'bitcoin etf'. Required."
  },
  "domain": {
   "type": "string",
   "description": "Restrict to one publishing domain, e.g. 'nytimes.com'. Optional."
  },
  "country": {
   "type": "string",
   "description": "GDELT source-country name, single token, e.g. 'unitedstates'. Optional."
  },
  "language": {
   "type": "string",
   "description": "GDELT source-language name, single token, e.g. 'english', 'spanish'. Optional."
  },
  "max_tone": {
   "type": "number",
   "description": "Only articles with GDELT tone below this value (-100..100). Optional."
  },
  "min_tone": {
   "type": "number",
   "description": "Only articles with GDELT tone above this value (-100..100). Optional."
  },
  "timespan": {
   "enum": [
    "1h",
    "6h",
    "12h",
    "1d",
    "2d",
    "3d",
    "1w",
    "2w",
    "1m",
    "3m"
   ],
   "type": "string",
   "description": "Lookback window. Default '1d'."
  },
  "max_records": {
   "type": "integer",
   "description": "articles mode only, 1-50. Default 20."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/d21-news-search-f52df1ec/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from draconic21-x402-api.onrender.com](https://www.zero.xyz/host/draconic21-x402-api.onrender.com/llms.txt)
