# RSS Feed Reader — RSS, Atom & JSON Feeds to JSON, $0.001 a Feed (`hermeskd/rss-feed-reader`) Actor

Read RSS, Atom and JSON Feed URLs into clean JSON: the feed's title and link and every item's title, link, dates, summary and enclosures. One record per feed, robots.txt obeyed, failed feeds never charged. $0.001 per feed read.

- **URL**: https://apify.com/hermeskd/rss-feed-reader.md
- **Developed by:** [Logan Parker](https://apify.com/hermeskd) (community)
- **Categories:** News, Automation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 feed reads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Read RSS, Atom and JSON Feed URLs into clean JSON, one record per feed with the feed's title and link and each item's title, link, dates, summary and enclosures, for news monitoring, podcasts and agent pipelines. AI agents can call and pay for it through Apify's MCP server and agentic payments. It costs $0.001 per feed read, whatever the number of items, and a feed that fails is never charged.

### Example result

Example record for the minimal input under How to use it, as this Actor returned it on 2026-10-27 in a run of its production image; the record is kept unchanged with the release.

```json
{
  "url": "https://pypi.org/rss/project/apify/releases.xml",
  "ok": true,
  "finalUrl": "https://pypi.org/rss/project/apify/releases.xml",
  "format": "rss",
  "feedTitle": "PyPI recent updates for apify",
  "feedLink": "https://pypi.org/project/apify/",
  "itemCount": 40,
  "items": [
    {
      "id": "https://pypi.org/project/apify/4.1.1b6/",
      "title": "4.1.1b6",
      "link": "https://pypi.org/project/apify/4.1.1b6/",
      "published": "2026-10-27T15:05:53Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.1.1b5/",
      "title": "4.1.1b5",
      "link": "https://pypi.org/project/apify/4.1.1b5/",
      "published": "2026-10-12T10:37:39Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.1.1b4/",
      "title": "4.1.1b4",
      "link": "https://pypi.org/project/apify/4.1.1b4/",
      "published": "2026-10-09T15:00:20Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.1.1b3/",
      "title": "4.1.1b3",
      "link": "https://pypi.org/project/apify/4.1.1b3/",
      "published": "2026-10-09T14:18:22Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.1.1b2/",
      "title": "4.1.1b2",
      "link": "https://pypi.org/project/apify/4.1.1b2/",
      "published": "2026-10-09T11:45:20Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.1.1b1/",
      "title": "4.1.1b1",
      "link": "https://pypi.org/project/apify/4.1.1b1/",
      "published": "2026-10-09T11:37:06Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.1.0/",
      "title": "4.1.0",
      "link": "https://pypi.org/project/apify/4.1.0/",
      "published": "2026-10-08T07:25:20Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.3b5/",
      "title": "4.0.3b5",
      "link": "https://pypi.org/project/apify/4.0.3b5/",
      "published": "2026-10-08T07:08:29Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.3b4/",
      "title": "4.0.3b4",
      "link": "https://pypi.org/project/apify/4.0.3b4/",
      "published": "2026-10-07T12:49:10Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.3b3/",
      "title": "4.0.3b3",
      "link": "https://pypi.org/project/apify/4.0.3b3/",
      "published": "2026-09-29T14:39:08Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.3b2/",
      "title": "4.0.3b2",
      "link": "https://pypi.org/project/apify/4.0.3b2/",
      "published": "2026-09-25T09:11:20Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.3b1/",
      "title": "4.0.3b1",
      "link": "https://pypi.org/project/apify/4.0.3b1/",
      "published": "2026-09-22T09:27:54Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.2/",
      "title": "4.0.2",
      "link": "https://pypi.org/project/apify/4.0.2/",
      "published": "2026-09-03T11:14:06Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.2b5/",
      "title": "4.0.2b5",
      "link": "https://pypi.org/project/apify/4.0.2b5/",
      "published": "2026-08-31T07:10:43Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.2b4/",
      "title": "4.0.2b4",
      "link": "https://pypi.org/project/apify/4.0.2b4/",
      "published": "2026-08-25T12:30:43Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.2b3/",
      "title": "4.0.2b3",
      "link": "https://pypi.org/project/apify/4.0.2b3/",
      "published": "2026-08-25T07:36:07Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.2b2/",
      "title": "4.0.2b2",
      "link": "https://pypi.org/project/apify/4.0.2b2/",
      "published": "2026-08-20T10:37:07Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.2b1/",
      "title": "4.0.2b1",
      "link": "https://pypi.org/project/apify/4.0.2b1/",
      "published": "2026-08-19T07:44:54Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.1/",
      "title": "4.0.1",
      "link": "https://pypi.org/project/apify/4.0.1/",
      "published": "2026-08-07T07:12:43Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.1b5/",
      "title": "4.0.1b5",
      "link": "https://pypi.org/project/apify/4.0.1b5/",
      "published": "2026-08-07T06:07:17Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.1b4/",
      "title": "4.0.1b4",
      "link": "https://pypi.org/project/apify/4.0.1b4/",
      "published": "2026-08-06T11:01:31Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.1b3/",
      "title": "4.0.1b3",
      "link": "https://pypi.org/project/apify/4.0.1b3/",
      "published": "2026-08-05T08:23:25Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.1b2/",
      "title": "4.0.1b2",
      "link": "https://pypi.org/project/apify/4.0.1b2/",
      "published": "2026-08-05T08:13:30Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.1b1/",
      "title": "4.0.1b1",
      "link": "https://pypi.org/project/apify/4.0.1b1/",
      "published": "2026-08-04T12:24:16Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/4.0.0/",
      "title": "4.0.0",
      "link": "https://pypi.org/project/apify/4.0.0/",
      "published": "2026-07-20T09:35:41Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b36/",
      "title": "3.4.2b36",
      "link": "https://pypi.org/project/apify/3.4.2b36/",
      "published": "2026-07-20T07:38:15Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b35/",
      "title": "3.4.2b35",
      "link": "https://pypi.org/project/apify/3.4.2b35/",
      "published": "2026-07-17T07:30:16Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b34/",
      "title": "3.4.2b34",
      "link": "https://pypi.org/project/apify/3.4.2b34/",
      "published": "2026-07-16T12:09:14Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b33/",
      "title": "3.4.2b33",
      "link": "https://pypi.org/project/apify/3.4.2b33/",
      "published": "2026-07-16T11:33:33Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b32/",
      "title": "3.4.2b32",
      "link": "https://pypi.org/project/apify/3.4.2b32/",
      "published": "2026-07-15T19:01:27Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b31/",
      "title": "3.4.2b31",
      "link": "https://pypi.org/project/apify/3.4.2b31/",
      "published": "2026-07-03T13:42:58Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b30/",
      "title": "3.4.2b30",
      "link": "https://pypi.org/project/apify/3.4.2b30/",
      "published": "2026-07-03T07:57:29Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b29/",
      "title": "3.4.2b29",
      "link": "https://pypi.org/project/apify/3.4.2b29/",
      "published": "2026-06-25T10:38:54Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b28/",
      "title": "3.4.2b28",
      "link": "https://pypi.org/project/apify/3.4.2b28/",
      "published": "2026-06-22T08:50:10Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b27/",
      "title": "3.4.2b27",
      "link": "https://pypi.org/project/apify/3.4.2b27/",
      "published": "2026-06-22T08:40:31Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b26/",
      "title": "3.4.2b26",
      "link": "https://pypi.org/project/apify/3.4.2b26/",
      "published": "2026-06-18T13:51:18Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b25/",
      "title": "3.4.2b25",
      "link": "https://pypi.org/project/apify/3.4.2b25/",
      "published": "2026-06-18T12:14:20Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b24/",
      "title": "3.4.2b24",
      "link": "https://pypi.org/project/apify/3.4.2b24/",
      "published": "2026-06-17T07:59:16Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b23/",
      "title": "3.4.2b23",
      "link": "https://pypi.org/project/apify/3.4.2b23/",
      "published": "2026-06-16T11:57:15Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    },
    {
      "id": "https://pypi.org/project/apify/3.4.2b22/",
      "title": "3.4.2b22",
      "link": "https://pypi.org/project/apify/3.4.2b22/",
      "published": "2026-06-16T10:20:24Z",
      "updated": null,
      "summary": "Apify SDK for Python",
      "enclosures": []
    }
  ]
}
```

### How to use it

Start a run in Apify Console, by API or from an agent with an input like this one — it is the input Apify runs every day to test this Actor:

```json
{"urls": ["https://pypi.org/rss/project/apify/releases.xml"]}
```

| Field | Type | Meaning |
|---|---|---|
| `urls` | array | Feed URLs (RSS, Atom or JSON Feed); one record each. |
| `maxItems` | integer | At most this many items are returned per feed, newest first. |

### Events and prices

| Event | Title | Charged when | FREE / BRONZE | SILVER | GOLD / PLATINUM / DIAMOND |
|---|---|---|---|---|---|
| `feed-read` | Feed read | One feed fetched and its items returned. | $0.001 | $0.0009 | $0.0008 |

Platform usage is not passed through. Apify's automatic actor-start event remains $0.00005 per started GB (one GB or less counts once). The synthetic dataset-item event is absent. Charge limits stop further paying work; unprocessed inputs receive uncharged errors. Completed readable pending events are settled on abort.

Worked cost example: ten successful feed read events cost $0.01 at list, plus actor start. Failures are not included in that count.

### Call it from an agent

Through Apify's MCP server (https://mcp.apify.com) use `call-actor`:

```json
{
  "actor": "hermeskd/rss-feed-reader",
  "input": {
    "urls": [
      "https://pypi.org/rss/project/apify/releases.xml"
    ]
  },
  "callOptions": {
    "maxTotalChargeUsd": 0.01,
    "timeout": 600
  },
  "waitSecs": 30
}
```

Then call `get-dataset-items` with the returned defaultDatasetId. Dedicated tool URL: https://mcp.apify.com?tools=hermeskd/rss-feed-reader

### Output fields

| Field | Meaning |
|---|---|
| `url` | The input URL. |
| `ok` | True for a returned result; a failure is never charged. |
| `finalUrl` | The URL after redirects. |
| `format` | rss, atom or json. |
| `feedTitle` | The feed's title. |
| `feedLink` | The site the feed belongs to. |
| `itemCount` | Items returned. |
| `items` | Each item's id, title, link, published and updated dates, summary and enclosures; authors are not returned. |
| `error` | Failure, always uncharged. |

### Limits and run time

1–100 feed URLs a run; up to maxItems items each (500 at most). Each feed is fetched once, up to 5 MB, under the 30-second per-request deadline. Item authors are not returned.

The default run timeout is 600 seconds. Typical run time: not yet measured; written from the first deploy.

### Errors

| Code | Meaning |
|---|---|
| `http_error` | The source answered an unsuccessful HTTP status. |
| `download_failed` | The request or connection failed within its bounded deadline. |
| `not_a_feed` | The URL did not return an RSS, Atom or JSON feed. |
| `robots_disallowed` | robots.txt forbids fetching the URL; no request was made to it. |
| `blocked_host` | The host is on the deny-list or resolves to a private or local address; no request was made. |
| `too_large` | The response exceeded the size cap. |
| `timeout` | The input did not finish within the run's time budget. |
| `invalid_input` | The run input passed the input schema but cannot be used; the message names the field. |
| `internal_error` | Unexpected failure; the message carries the error class. |
| `charge_limit_reached` | The run reached its maximum total charge; this input was not processed. |

No failure record is charged. A run fails only when all input outcomes are Actor-side failures; caller errors and a mixture of caller/Actor failures do not fail the run.

### Sources and terms

Only process content you have the right to process. URL fetches obey HermesBot robots-group selection, the shared deny-list, public-address checks on connections and redirects, honest identity, deadlines and rate limits. No caller credentials, cookies, CAPTCHA solving, residential proxies or evasion. Public feeds the caller names are fetched under robots.txt; parsed with lxml, entities and network access off; JSON Feed read as JSON.

### Not affiliated

This Actor is not affiliated with Apify or the owners of the feeds it reads. Third-party names describe compatibility and source material.

### Related Hermes Actors

- [Article Extractor — Clean Text, Title & Date, $0.001 an Article](https://apify.com/hermeskd/article-extractor) — an article's clean text, title and publish date, without the rest of the page.
- [Career Site Job Search — Verified Greenhouse & Lever Boards](https://apify.com/hermeskd/ats-job-search) — search open jobs in the Hermes directory of Greenhouse and Lever boards, each confirmed live.
- [Speech to Text — Transcribe & Translate to English, SRT/VTT](https://apify.com/hermeskd/audio-to-transcript) — speech to text with SRT and VTT subtitles.
- [Video Converter & MP4 to MP3 — Trim, GIF; Audio $0.001 a Minute](https://apify.com/hermeskd/audio-video-convert) — audio and video conversion: MP4 to MP3, trim, GIF.
- [Broken Link Checker That Never Charges for the Broken Links](https://apify.com/hermeskd/broken-links) — broken links, 404s and redirects on a site.
- [Company ATS Finder — Which Hiring System & Job Board It Uses](https://apify.com/hermeskd/company-ats-board) — which hiring system and job board a company uses.
- [Crossref DOI Metadata — Titles, Dates & Citation Counts](https://apify.com/hermeskd/crossref-doi-metadata) — crossref doi metadata.
- [JSON Dataset Cleaner — Merge, Dedup & Export Rows](https://apify.com/hermeskd/dataset-json-cleaner) — json dataset cleaner.
- [DNS Lookup & SPF, DKIM, DMARC Check — Findings by Severity](https://apify.com/hermeskd/dns-and-email-auth) — DNS records and SPF, DKIM and DMARC checks.
- [Word, Excel & PowerPoint to Markdown — $0.002 per Document](https://apify.com/hermeskd/document-to-markdown) — Word, Excel, PowerPoint and other office files to Markdown.
- [Domain Availability Checker — Registry RDAP, No Contact Data](https://apify.com/hermeskd/domain-availability) — whether domain names are available, from registry RDAP.
- [File Downloader — Save Files & Images from URLs, $0.001 a File](https://apify.com/hermeskd/file-downloader) — files and images from URLs, saved with a public link each.
- [Greenhouse Job Board Scraper — Open Jobs, Live, Any Company](https://apify.com/hermeskd/greenhouse-jobs) — every open job on a company's Greenhouse board.
- [Public HTTP GET — Response Body, Status & Hash](https://apify.com/hermeskd/http-get-response) — public http get.
- [Image Format Converter — Resize & Save WebP, PNG or JPEG](https://apify.com/hermeskd/image-format-converter) — image format converter.
- [Image Metadata Remover — Strip EXIF, GPS & Serials, Lossless](https://apify.com/hermeskd/image-metadata-remover) — GPS location, camera serial numbers and other private metadata removed from photos, losslessly.
- [Image to Text OCR — Lines & Words with Boxes, $0.002 an Image](https://apify.com/hermeskd/image-to-text) — OCR: the text in images.
- [Image Upscaler & Photo Restorer — AI 2x/4x, Agent-Payable](https://apify.com/hermeskd/image-upscale) — image upscaling 2x or 4x, and photo restoration.
- [Lever Jobs Scraper — Postings from Any Lever Site, US & EU](https://apify.com/hermeskd/lever-jobs) — every published job on a company's Lever site, global or EU.
- [Lighthouse Audit, No API Key — Lab Core Web Vitals & SEO Scores](https://apify.com/hermeskd/lighthouse-audit) — Lighthouse scores and Core Web Vitals.
- [Page Change Monitor — Detect Website Changes, $0.001 a Check](https://apify.com/hermeskd/page-change-monitor) — what changed on a page since the last check.
- [PDF to Markdown & PDF to Text — PDF Text Extractor with OCR](https://apify.com/hermeskd/pdf-to-markdown) — PDF to Markdown and text, with OCR for scanned pages.
- [Remote Jobs Scraper — Remote OK Listings, Salary Filter, Links](https://apify.com/hermeskd/remote-jobs) — current remote jobs from Remote OK, with salary and listing links.
- [SEO Audit — On-Page Checks, Schema & Hreflang, $0.004 a Page](https://apify.com/hermeskd/seo-page-audit) — an on-page SEO audit: meta tags, schema, headings and links.
- [Sitemap URL Extractor — Indexes, Gzip, RSS; $0.0003 per URL](https://apify.com/hermeskd/sitemap-urls) — the URLs in a site's sitemaps.
- [URL to Markdown for LLMs — Selectors, Text & Provenance](https://apify.com/hermeskd/url-to-markdown) — a public job page as clean Markdown where the site allows it (deny-listed job sites are refused).
- [Video Frame Extractor — by Scene, Interval or Timestamp](https://apify.com/hermeskd/video-frames) — frames, thumbnails and scenes from a video.
- [Website Icon Finder — Favicons, Touch Icons & Theme Colors](https://apify.com/hermeskd/website-icon-manifest) — declared website icons, theme colors and manifest links.
- [Website Screenshot API — Elements, HTML, Dark Mode & PDF Print](https://apify.com/hermeskd/website-screenshot) — screenshots and PDF prints of web pages.
- [Website Tech Stack Lookup — Live Detection, $0.001 a Site](https://apify.com/hermeskd/website-tech-stack) — the technologies a website runs, detected live.
- [Website to Markdown — Bounded Crawls for Agents](https://apify.com/hermeskd/website-to-markdown) — bounded whole-site Markdown with robots and crawl-delay enforced

### Changelog

- 1.0 (2026-10-27) — first release.

# Actor input Schema

## `urls` (type: `array`):

Feed URLs (RSS, Atom or JSON Feed); one record each.

## `maxItems` (type: `integer`):

At most this many items are returned per feed, newest first.

## Actor input object example

```json
{
  "urls": [
    "https://pypi.org/rss/project/apify/releases.xml"
  ],
  "maxItems": 50
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://pypi.org/rss/project/apify/releases.xml"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hermeskd/rss-feed-reader").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "urls": ["https://pypi.org/rss/project/apify/releases.xml"] }

# Run the Actor and wait for it to finish
run = client.actor("hermeskd/rss-feed-reader").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://pypi.org/rss/project/apify/releases.xml"
  ]
}' |
apify call hermeskd/rss-feed-reader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hermeskd/rss-feed-reader"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/A8xUgAbZr3bps27kX/builds/7QYm22rWcDZd5Q6jM/openapi.json
