# Tanod Web News Search

> Tanod Web News Search is a paid API for AI agents from web.tanod.dev, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-13).

Search recent news articles by keyword with optional language, domain, time window, and sentiment filters, powered by the GDELT Project.

## Facts

- Endpoint: POST https://web.tanod.dev/v1/news/search?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tanod-web-news-search-9e6380ed
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_cSmta2IRVJF2A1T4Q1fuI

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 tanod-web-news-search-9e6380ed -d '<json body>'
```

Example prompt: Search for news articles about stablecoin regulation from the last 24 hours — up to 20 results in English — and include a sentiment label for each headline.

## When to prefer this

Choose this endpoint when you need structured, filterable news search with per-article metadata (themes, entities, tone) and optional sentiment scoring. It is especially useful when you need to scope results by language, source domain, or a specific recent time window (down to 1 hour). Prefer it over generic web search when you specifically need news articles with publication timestamps and editorial metadata rather than arbitrary web pages.

## Known failure modes

- Query string too long (>200 chars) returns validation error
- Language code not ISO 639-1 format causes rejection
- Requesting more than 50 articles returns a 422 validation error
- No articles found for niche query in narrow time window returns empty articles array
- 'since' value outside 1-168 hours range is rejected
- Domain filter typo returns zero results silently

## How this service works

Web tools: search, page to Markdown or screenshot, company profile and jobs, sitemaps, RDAP, IP.

## Output

Returns a JSON object containing matching news articles (up to 50), each with title, URL, publication timestamp, source domain, detected themes, named entities, and a tone score. When sentiment is enabled, each article also includes a positive/negative/neutral label with a VADER score. The response includes total count, applied filters, timespan, and GDELT attribution metadata.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "lang": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 2,
     "minLength": 2
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "Optional: only articles in this source language, ISO 639-1 (en, es, de, fr, ja ...)."
  },
  "limit": {
   "type": "integer",
   "default": 20,
   "maximum": 50,
   "minimum": 1,
   "description": "Most articles to return, 1-50 (default 20)."
  },
  "query": {
   "type": "string",
   "maxLength": 200,
   "minLength": 1,
   "description": "Search words or a quoted phrase (1-200 printable characters), such as stablecoin regulation."
  },
  "since": {
   "anyOf": [
    {
     "type": "integer",
     "maximum": 168,
     "minimum": 1
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "Optional: articles from the last 1-168 hours. Overrides timespan."
  },
  "domain": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 253,
     "minLength": 3
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "Optional: only articles from this site and its subdomains, such as reuters.com."
  },
  "timespan": {
   "enum": [
    "1h",
    "6h",
    "24h",
    "3d",
    "7d"
   ],
   "type": "string",
   "default": "24h",
   "description": "Window when since is not given: 1h, 6h, 24h (default), 3d or 7d."
  },
  "sentiment": {
   "type": "boolean",
   "default": false,
   "description": "Add a positive / negative / neutral label and score to each headline (English VADER heuristic)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "max": 2,
  "lang": "en",
  "count": 2,
  "query": "stablecoin",
  "domain": null,
  "source": "GDELT Project (gdeltproject.org)",
  "articles": [
   {
    "url": "https://cryptobriefing.com/french-finance-panel-backs-taxing-bitcoin-to-stablecoin-swaps-in-2027-budget/",
    "tone": -0.8,
    "title": "French finance panel backs taxing Bitcoin-to-stablecoin swaps in 2027 budget",
    "domain": "cryptobriefing.com",
    "themes": [
     "ECON_CURRENCY_EXCHANGE_RATE",
     "TAX"
    ],
    "entities": [
     "French Finance Committee"
    ],
    "language": "en",
    "published_at": "2026-10-09T13:00:00Z"
   },
   {
    "url": "https://cryptobriefing.com/ethereum-leads-stablecoin-market-cap-growth/",
    "tone": 1.2,
    "title": "Ethereum leads stablecoin market cap growth, adding $243M in a week",
    "domain": "cryptobriefing.com",
    "themes": [
     "ECON_BITCOIN"
    ],
    "entities": [
     "Ethereum"
    ],
    "language": "en",
    "published_at": "2026-10-09T11:30:00Z"
   }
  ],
  "timespan": "24h",
  "attribution": {
   "url": "https://www.gdeltproject.org/",
   "source": "The GDELT Project"
  },
  "untrusted_content": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-web-news-search-9e6380ed/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from web.tanod.dev](https://www.zero.xyz/host/web.tanod.dev/llms.txt)
