RSS Feed Reader: RSS, Atom & JSON Feed to Dataset avatar

RSS Feed Reader: RSS, Atom & JSON Feed to Dataset

Pricing

$1.50 / 1,000 feed reads

Go to Apify Store
RSS Feed Reader: RSS, Atom & JSON Feed to Dataset

RSS Feed Reader: RSS, Atom & JSON Feed to Dataset

Read many RSS, Atom and JSON feeds in one run and get one clean, normalized list of items. Paste a website URL and the feed is found for you. Keyword and date filters, and a new-items-only mode for monitoring.

Pricing

$1.50 / 1,000 feed reads

Rating

0.0

(0)

Developer

Jakob Jerič

Jakob Jerič

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

Read any number of RSS, Atom, RSS 1.0 (RDF) and JSON Feed feeds in one run. Every item comes out in the same format, whatever the feed type: title, link, date, plain-text summary, categories, image and attachments. Export it as JSON, CSV or Excel, or use it from the API, schedules, Make, Zapier, n8n or MCP clients.

What it does

  • Many feeds, one dataset. Mix RSS 2.0, Atom, RSS 1.0 and JSON Feed in one run. All dates are converted to ISO 8601 UTC and all links to absolute URLs.
  • Website URL in, feed out. Enter https://github.blog instead of the feed URL. The Actor reads the <link rel="alternate"> feed tags on the page, then tries common paths (/feed, /rss, /feed.xml, /rss.xml, /atom.xml, /index.xml).
  • Filters. Keywords (whole words or phrases, case-insensitive, matched in title, summary and categories) and "published within the last N days".
  • New items only. For scheduled runs: the Actor remembers which items it already returned and saves only new ones.
  • A broken feed doesn't break the run. Timeouts, connection errors, HTTP 429 and 5xx answers are retried (3 attempts in total). If a feed still fails, the run continues with the other feeds and the reason is saved in FEED_STATUS. The run fails only on invalid input.
  • Podcasts. Enclosures (audio URL, MIME type, size) and itunes:image / media:content images are included.

Input

FieldDefaultDescription
feeds(required)Feed URLs or website URLs
maxItemsPerFeed50Items saved per feed after filters, 0 = all
keywordsemptyKeep only items that mention one of these words
publishedWithinDays0Keep only items from the last N days, 0 = off
onlyNewItemsfalseSave only items not seen in earlier runs
monitorIddefaultSeparate memory for each monitor (used with onlyNewItems)
includeContentfalseAdd the full item text (content:encoded, Atom content, JSON content_html) as plain text

Example:

{
"feeds": [
"https://feeds.bbci.co.uk/news/technology/rss.xml",
"https://github.blog",
"https://www.jsonfeed.org/feed.json"
],
"keywords": ["ai", "security"],
"publishedWithinDays": 7,
"maxItemsPerFeed": 50
}

Output

One dataset item per feed entry. This example is copied from a real run:

{
"title": "Why North Korea's 'elite' hackers are the prime suspect in major Binance hack",
"url": "https://www.bbc.co.uk/news/articles/ck9dz3v7z7v3o?at_medium=RSS&at_campaign=rss",
"publishedAt": "2026-10-31T02:12:19.000Z",
"updatedAt": null,
"summary": "If the accusations are true, the record-making heist shows how powerful suspected North Korean hackers have become.",
"content": null,
"categories": [],
"imageUrl": "https://ichef.bbci.co.uk/ace/standard/240/cpsprodpb/7b98/live/c9241530-d4aa-11f1-b441-2b33b063138f.jpg",
"enclosures": [],
"itemId": "https://www.bbc.co.uk/news/articles/ck9dz3v7z7v3o#0",
"feedTitle": "BBC News",
"feedUrl": "https://feeds.bbci.co.uk/news/technology/rss.xml",
"feedType": "rss",
"feedLanguage": "en-gb",
"sourceUrl": "https://feeds.bbci.co.uk/news/technology/rss.xml",
"scrapedAt": "2026-10-31T23:48:22.882Z"
}

Every item has the same fields. A field is null (or []) when the feed doesn't provide it. content is null unless includeContent is on.

The key-value store record FEED_STATUS lists each input URL with the feed URL that was used, the number of items in the feed, the number saved, and the error message if the feed failed:

{ "sourceUrl": "https://github.blog/", "feedUrl": "https://github.blog/feed/", "ok": true, "itemsInFeed": 10, "itemsSaved": 10, "error": null }

Pricing

Pay per event: $0.0015 per feed read ($1.50 per 1,000 feeds). One feed read covers up to 200 saved items from that feed; a feed that saves more counts as one read per started 200 items (e.g. 450 items = 3 reads = $0.0045). With the default maxItemsPerFeed of 50 this never applies. There is no start fee. Feeds that fail are not charged.

Examples: 3 feeds = $0.0045. 20 feeds checked every hour for a month (14,400 feed reads) = $21.60.

Use cases

  • News and brand monitoring: schedule hourly runs with onlyNewItems and keywords, and send new items to Slack, email or a webhook.
  • Content aggregation: merge many blogs or news sources into one table.
  • Podcast catalogs: episode titles, dates and audio file URLs.
  • Data for AI agents and RAG pipelines: clean plain text without HTML.

FAQ

How does "only new items" work? Item IDs (the feed's guid/id, or the link) are stored per feed in a named key-value store called rss-feed-reader-state on your Apify account. The first run saves everything that passes your filters. Later runs save only unseen items. Items that were cut off by maxItemsPerFeed are not marked as seen, so they come in the next run. Use a different monitorId for each scheduled task that reads the same feed.

Why is there no author field? Author names are personal data, so the Actor leaves them out on purpose.

A site says "robots.txt does not allow fetching". The Actor follows each site's robots.txt and doesn't fetch URLs it disallows (for example GitHub's releases.atom and Reddit's .rss). It doesn't use proxies or browser disguises to get around blocks.

A feed returns HTTP 403. Some publishers block data-center IP addresses. The Actor reports this in FEED_STATUS and doesn't charge for that feed.

Does it get the full article from the publisher's website? No. It returns what the feed contains. Many feeds include the full text (turn on includeContent). Others only include a short summary.

Limits

  • Feeds larger than 15 MB are skipped.
  • Items are returned in the order of the feed. Most feeds only contain their latest 10–100 items, so this is not an archive tool.
  • With "published within N days" on, items without a date are dropped.
  • Up to 5 feeds are read in parallel. Each request times out after 20 seconds.