# RSS and Atom Feed Reader – Feed Merge

> RSS and Atom Feed Reader – Feed Merge is a paid API for AI agents from feed-reader.x402tookit.com, paid per call via x402, $0.05/call, status unknown (last checked 2026-11-02).

Merges two or three RSS or Atom feeds into a single newest-first list with duplicate links removed and each item labeled with its source feed.

## Facts

- Endpoint: GET https://feed-reader.x402tookit.com/feed-merge?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/rss-and-atom-feed-reader-feed-merge-5f7c385b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_64FqONxC27AoGqiCIG9FJ

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 rss-and-atom-feed-reader-feed-merge-5f7c385b
```

Example prompt: Can you merge the RSS feeds from https://feeds.arstechnica.com/arstechnica/index and https://www.theverge.com/rss/index.xml into one newest-first list, showing the 20 most recent items and labeling which feed each one came from?

## When to prefer this

Choose this endpoint when you need to combine exactly two or three RSS or Atom feeds into a single deduplicated, chronologically sorted stream. It is purpose-built for feed aggregation with source labeling, making it ideal for monitoring multiple publishers simultaneously. Prefer this over fetching feeds individually when you want automatic deduplication by link and a unified newest-first view. Not suitable for fetching a single feed, searching within feeds, or aggregating more than three feeds at once.

## Known failure modes

- Invalid or unreachable feed URL returns an error status for that feed with partial results from remaining feeds
- Non-RSS/Atom URL (e.g. plain HTML page) causes a parse failure for that feed
- Feeds returning HTTP errors (4xx/5xx) are reported with status in the feeds metadata array
- Limit parameter outside 1–50 range may be rejected or clamped
- All feeds unreachable results in an empty items array with error statuses
- Malformed XML in a feed may cause parse failure reported in feed status

## How this service works

Merge two or three RSS or Atom feeds into one newest-first list, with duplicate links removed and each item's source feed named.

## Output

Returns a JSON object containing: a list of merged feed items sorted newest-first (each with title, link, published date, updated date, author, summary, categories, enclosure, source feed URL, and source feed title), metadata about each input feed (title, format, item count, status, final URL), total items returned, and flags for degraded state or truncation at the requested limit.

## 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"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url",
      "url2"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "First https feed URL"
      },
      "url2": {
       "type": "string",
       "description": "Second https feed URL"
      },
      "url3": {
       "type": "string",
       "description": "Optional third https feed URL"
      },
      "limit": {
       "type": "integer",
       "description": "Items to return, 1 to 50 (default 20), newest first"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "feeds": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "object",
        "properties": {
         "url": {
          "type": [
           "null",
           "string"
          ]
         },
         "title": {
          "type": [
           "null",
           "string"
          ]
         },
         "format": {
          "type": [
           "null",
           "string"
          ]
         },
         "status": {
          "type": [
           "null",
           "string"
          ]
         },
         "finalUrl": {
          "type": [
           "null",
           "string"
          ]
         },
         "itemCount": {
          "type": [
           "null",
           "number"
          ]
         },
         "itemsRead": {
          "type": [
           "null",
           "number"
          ]
         },
         "truncatedAtLimit": {
          "type": [
           "boolean",
           "null"
          ]
         }
        }
       }
      },
      "items": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "object",
        "properties": {
         "id": {
          "type": [
           "null",
           "string"
          ]
     
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/rss-and-atom-feed-reader-feed-merge-5f7c385b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from feed-reader.x402tookit.com](https://www.zero.xyz/host/feed-reader.x402tookit.com/llms.txt)
