Agentic Portal

RSS Atom Normalization

web
Serving

Fetch an RSS or Atom feed and return it as one canonical JSON document: the feed title and its entries with title and link. POST /v1/rss with {url} and get the normalized feed back. Reflects the feed at fetch time. Pay per request in USDC; no account, no API key.

Endpoint
POST https://agent.pocket.network/v1/rss-atom-normalization/v1/rss
Price per call
$0.005 USD
Networks payable on
Base (eip155:8453), Tempo (eip155:4217)
Protocol
rest

Calling it

The first call returns 402 Payment Required with the terms. Sign for those terms and retry the same request with the payment attached.

Example request

A real, working call — the request the service card verifies against.

curl -X POST https://agent.pocket.network/v1/rss-atom-normalization/v1/rss \
  -H 'content-type: application/json' \
  -d '{"url":"https://hnrss.org/newest"}'
Example response

The response this call returned, captured 2026-09-25 15:53:28 UTC.

{
  "portal": {
    "provenance": "third-party-supplier",
    "serviceId": "rss-atom-normalization",
    "schemaCheck": "unchecked"
  },
  "data": {
    "feed": "Hacker News: Newest",
    "entries": [
      {
        "title": "Trump admin using AI to deny medical care for seniors in disastrous experiment",
        "link": "https://arstechnica.com/health/2026/09/trump-admin-using-ai-to-deny-medical-care-for-seniors-in-disastrous-experiment/",
        "description": "<p>Article URL: <a href=\"https://arstechnica.com/health/2026/09/trump-admin-using-ai-to-deny-medical-care-for-seniors-in-disastrous-experiment/\">https://arstechnica.com/health/2026/09/trump-admin-using-ai-to-deny-medical-care-for-seniors-in-disastrous-experiment/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=49846177\">https://news.ycombinator.com/item?id=49846177</a></p>\n<p>Points: 1</p>\n<p># Comments: 0</p>",
        "pub_date": "Fri, 25 Sep 2026 15:45:57 +0000"
      },
      {
        "title": "Self-Complexity",
        "link": "https://en.wikipedia.org/wiki/Self-complexity",
        "description": "<p>Article URL: <a href=\"https://en.wikipedia.org/wiki/Self-complexity\">https://en.wikipedia.org/wiki/Self-complexity</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=49846170\">https://news.ycombinator.com/item?id=49846170</a></p>\n<p>Points: 1</p>\n<p># Comments: 0</p>",
        "pub_date": "Fri, 25 Sep 2026 15:45:18 +0000"
      },
      {
        "title": "YOLO Linux",
        "link": "https://yololinux.com/",
        "description": "<p>Article URL: <a href=\"https://yololinux.com/\">https://yololinux.com/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=49846158\">https://news.ycombinator.com/item?id=49846158</a></p>\n<p>Points: 1</p>\n<p># Comments: 0</p>",
        "pub_date": "Fri, 25 Sep 2026 15:44:30 +0000"
      }
    ],
    "count": 20,
    "cached": true,
    "service": "rss-atom-normalization"
  }
}

Try it

Make one real paid call from your own wallet — about $0.005 on Base (eip155:8453). The wallet signs; nothing here holds a key. You'll see exactly what the service answers.

No browser wallet found. Install MetaMask, Rabby, or Coinbase Wallet to try a call here.

Supported methods

Methods the registry lists for this service. The portal forwards any call as sent; the supplier decides what it answers, and a delivered answer is settled.

Methods RSS Atom Normalization accepts, and whether each reads or writes.
MethodEffect
GET /v1/healthread
GET /v1/versionread
POST /v1/rssread

Schemas

Published by the service itself. The example above is generated from these.

Request schema
{
  "type": "object",
  "description": "The request body for POST /v1/rss.",
  "properties": {
    "url": {
      "type": "string",
      "description": "The feed URL (RSS or Atom)."
    }
  },
  "required": [
    "url"
  ]
}
Response schema
{
  "type": "object",
  "description": "For POST /v1/rss, a JSON object with the feed title and an `entries` array. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
}