# Yodeler Data API - News Search

> Yodeler Data API - News Search is a paid API for AI agents from x402.yodeler.xyz, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-27).

Searches real-time forwarded news message logs by keyword/phrase, with optional filters for time range and source channel.

## Facts

- Endpoint: GET https://x402.yodeler.xyz/v1/news/search?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-27
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/yodeler-data-api-news-search-f720560d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__mIaFpF6mOz38UkpPGLZd

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 yodeler-data-api-news-search-f720560d
```

Example prompt: Search Yodeler's news message logs for 'airdrop' — show me up to 25 results from July 1st 2026 onward.

## When to prefer this

Choose this endpoint when you need to search through a corpus of real-time forwarded news messages by keyword or phrase, especially for crypto/financial news monitoring. It is ideal for agent workflows that need to find recent news about a specific topic, token, or event, and where per-query micropayment via x402 is acceptable. Prefer it over general web search when you want structured, timestamped message logs from curated news channels rather than open web results.

## Known failure modes

- Missing required 'q' query parameter returns a 400 error
- Query string shorter than 2 characters or longer than 128 characters is rejected
- Payment not provided or insufficient triggers an x402 payment-required response
- Invalid ISO-8601 format for 'since' parameter causes a 400 validation error
- Non-existent channel ID returns an empty result set
- Rate limiting or quota exceeded returns a 429 error

## How this service works

Query forwarded real-time news message logs from the database.

The `/v1/news` endpoint is designed to be monetized with x402 so clients can
pay per request before receiving message batches, while `/v1/news/quote`
and `/v1/news/availability` expose free previews for agent workflows.

Discovery metadata is available through `/openapi.json` and
`/.well-known/agent.json`, while `/v1/discovery` publishes the canonical
discovery index for marketplaces and agent registries.

Empty result sets are returned for free, and `/v1/news/channels` offers a
free source-channel catalog so buyers can explore before paying.

Agents can understand the tool contract,
payment flow, supported networks, and pricing model automatically.

## Output

Returns a JSON object with a list of matching news message items (each with ID, message text, snippet, channel name, source ID, and timestamp), a window showing oldest/newest match timestamps, match count, source count, license info, and payment metadata including asset, price, and network details.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "q"
     ],
     "properties": {
      "q": {
       "type": "string",
       "maxLength": 128,
       "minLength": 2,
       "description": "Case-insensitive keyword or phrase to match against message text."
      },
      "limit": {
       "type": "integer",
       "default": 25,
       "maximum": 100,
       "minimum": 1,
       "description": "Maximum number of matched messages to return, newest first."
      },
      "since": {
       "type": "string",
       "format": "date-time",
       "description": "Only match messages created at or after this ISO-8601 timestamp."
      },
      "channel": {
       "type": "integer",
       "description": "Restrict the search to one source channel id."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "meta": {
   "sort": "created_at_desc",
   "limit": 25,
   "query": "airdrop",
   "since": "2026-07-01T00:00:00Z",
   "channel": null,
   "is_free": false,
   "license": "yodeler-data-license-1.0",
   "match_count": 37,
   "valid_until": "2026-07-07T12:05:00Z",
   "content_hash": "9c1d...",
   "source_count": 4,
   "delivery_mode": "paid"
  },
  "count": 1,
  "items": [
   {
    "id": "01961c1b-cf6f-77ec-b66d-c6ef2819dd86",
    "snippet": "Confirmed: the **airdrop** snapshot is scheduled for Friday.",
    "source_id": 123,
    "created_at": "2026-07-07T11:58:00Z",
    "channel_name": "Watcher Guru",
    "message_text": "Confirmed: the airdrop snapshot is scheduled for Friday."
   }
  ],
  "window": {
   "newest_created_at": "2026-07-07T11:58:00Z",
   "oldest_created_at": "2026-07-02T08:14:00Z"
  },
  "payment": {
   "asset": "0x833589fCD6EDb6E08f4c7C32D4f71b54bdA02913",
   "price": "$0.01",
   "amount": "10000",
   "pay_to": "0x1111111111111111111111111111111111111111",
   "scheme": "exact",
   "network": "eip155:8453",
   "currency": "USD"
  }
 }
}
```

## More

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