# Tanod Web – Crypto News Feed

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

Fetches and aggregates recent cryptocurrency news headlines from major outlets (Cointelegraph, CoinDesk, The Block, Decrypt, etc.) with sentiment scoring and optional topic filtering.

## Facts

- Endpoint: POST https://web.tanod.dev/v1/news/crypto?utm_source=zero.xyz
- Price: $0.001/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-crypto-news-feed-a4f99fec
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ln7QlaKnyyk3yu6ZuUq-Q

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-crypto-news-feed-a4f99fec -d '<json body>'
```

Example prompt: Pull the top 10 crypto news stories from the last few hours that mention Ethereum, and tell me if the overall sentiment is positive or negative.

## When to prefer this

Choose this endpoint when you need aggregated, deduplicated crypto news from multiple major outlets in a single call, especially when you need built-in sentiment scoring and cursor-based incremental polling so a scheduled agent only pays for new stories. Prefer over generic web search when you specifically want curated crypto journalism sources (Cointelegraph, CoinDesk, The Block, Decrypt, The Defiant, Bitcoin Magazine, CryptoSlate) rather than arbitrary web results.

## Known failure modes

- Invalid 'since' value (not ISO 8601 or valid cursor) returns a 422 validation error
- 'limit' outside 1-50 range returns a 400 error
- 'topic' with no matching stories returns an empty stories array with count=0
- Payment failure (x402 protocol) returns a 402 response before any content is delivered
- Service may return stale data if upstream RSS feeds are temporarily unavailable

## How this service works

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

## Output

Returns a JSON object with: a list of grouped story objects (headline, rank, tone label and score, outlets, individual source URLs with titles and publication times, first_seen timestamp), an overall tone summary across all returned stories (VADER-based sentiment, compound score, method description), pagination cursor for incremental polling, count of stories returned, the as_of timestamp, matching window in hours, and total stories matched. Stories are deduplicated across outlets.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "limit": {
   "type": "integer",
   "default": 20,
   "maximum": 50,
   "minimum": 1,
   "description": "Most stories to return, 1-50 (default 20)."
  },
  "since": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 40,
     "minLength": 1
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "Optional: an ISO 8601 time (2026-10-11T08:00:00Z) or the `cursor` of your last reply. Only stories first seen after it are returned, so a scheduled agent pays only for what is new."
  },
  "topic": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 40,
     "minLength": 1
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "Optional: only stories whose headline mentions this topic, such as ethereum, Base or solana lending (all words must appear; a few coin names also match their ticker)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "tone": {
   "label": "neutral",
   "score": 0,
   "method": "VADER lexicon and rules on each headline (heuristic, English). score = compound -1..1, the mean of the headlines; positive >= 0.05, negative <= -0.05.",
   "stories": 1
  },
  "as_of": "2026-10-11T03:35:28Z",
  "count": 1,
  "since": null,
  "topic": null,
  "cursor": "cur_20261011T033528Z",
  "source": "Public RSS feeds of Cointelegraph, CoinDesk, The Block, Decrypt, The Defiant, Bitcoin Magazine and CryptoSlate",
  "stories": [
   {
    "rank": 1,
    "tone": {
     "label": "neutral",
     "score": 0
    },
    "outlets": [
     "Cointelegraph",
     "Decrypt"
    ],
    "sources": [
     {
      "url": "https://cointelegraph.com/news/sam-altman-backed-bitcoin-life-insurer-meanwhile-raises-more-funds",
      "title": "Sam Altman-backed Bitcoin life insurer, Meanwhile, raises more funds",
      "outlet": "Cointelegraph",
      "published_at": "2026-10-10T07:10:43Z"
     },
     {
      "url": "https://decrypt.co/380633/sam-altman-backed-life-insurer-bitcoin-raise",
      "title": "This Sam Altman-Backed Life Insurer Runs Entirely on Bitcoin, and Just Raised $37.5 Million",
      "outlet": "Decrypt",
      "published_at": "2026-10-10T16:01:04Z"
     }
    ],
    "headline": "Sam Altman-backed Bitcoin life insurer, Meanwhile, raises more funds",
    "first_seen": "2026-10-10T07:10:43Z",
    "outlet_count": 2
   }
  ],
  "window_hours": 12,
  "stories_matched": 14,
  "untrusted_content": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-web-crypto-news-feed-a4f99fec/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)
