RSS Feed Reader: RSS, Atom & JSON Feed to JSON
Pricing
Pay per event
RSS Feed Reader: RSS, Atom & JSON Feed to JSON
Turn RSS, Atom, RDF and JSON feeds (or any website with a feed) into uniform JSON: titles, links, ISO dates, authors, content, enclosures. Since/keyword/dedupe filters and optional full article text. From $0.20 per 1,000 items, no start fee.
Pricing
Pay per event
Rating
0.0
(0)
Developer
TidyHarvest
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Turn any RSS feed, Atom feed, RDF/RSS 1.0 or JSON Feed into clean, uniform JSON rows: title, link, guid, ISO publish/update dates, author, categories, summary, full content (HTML and plain text), enclosures and media (podcast audio, images) and comments URL. Paste a website URL instead and the feed is found automatically from <link rel="alternate"> or common paths like /feed, /rss.xml, /atom.xml.
Fast and cheap: plain HTTP, no browser, no proxy, no start fee. Optional full article text for every item.
What you can do with it
- News and blog monitoring: schedule it with Published since =
1 dayto get only new posts from dozens of feeds, de-duplicated, in one dataset. - Keyword alerts: keep only items mentioning your brand, product or topic (Only items mentioning), drop noise with Skip items mentioning.
- RSS to JSON / CSV / Excel: one schema for every feed format, so downstream code, Zapier/Make flows, Google Sheets or a database never see format differences.
- Content and AI pipelines: turn on Fetch full article text to get the readable text of each linked article for summarization, RAG or archiving.
- Podcast and release tracking: podcast episode audio URLs (enclosures), GitHub release feeds, YouTube channel feeds, changelogs.
Input
| Field | What it does |
|---|---|
urls | Feed URLs or websites, one per line. Websites are searched for their feed. |
since | Only items newer than 7 days, 24 hours, 2 weeks or a date (2026-10-01). keepUndated also keeps items the feed gives no date. |
includeKeywords / excludeKeywords | Keep or drop items by words in title, summary, content or categories. |
allFeeds | Read every feed a website advertises, not just the main one. |
dedupe | Skip items already returned in this run (same guid or link). On by default. |
fetchArticleText, maxArticles | Add the full readable text of each item's linked page (capped). |
maxItemsPerFeed, maxItems | Caps to control cost. |
Example:
{ "urls": ["https://news.ycombinator.com/rss", "wordpress.org/news", "https://www.jsonfeed.org/feed.json"],"since": "3 days", "includeKeywords": ["python", "ai"], "maxItems": 200 }
Output
One row per feed item:
{"feedTitle": "Python Insider", "feedUrl": "https://blog.python.org/rss.xml", "feedLink": "https://blog.python.org/","feedFormat": "rss", "title": "Python 3.16.0 alpha 1 is now available","link": "https://blog.python.org/2026/10/python-3160-alpha-1-is-now-available/","guid": "https://blog.python.org/2026/10/python-3160-alpha-1-is-now-available/","published": "2026-10-13T00:00:00Z", "updated": null, "author": "Savannah Ostrowski","categories": ["releases"], "summary": "Python 3.16.0a1 is the first of ...","contentHtml": "<p>Python 3.16.0a1 is ...</p>", "contentText": "Python 3.16.0a1 is ...","enclosures": [{"url": "https://.../episode.mp3", "type": "audio/mpeg", "length": 23145678, "source": "enclosure"}],"imageUrl": "https://.../cover.jpg", "commentsUrl": "https://.../comments","articleUrl": "https://...", "articleTitle": "...", "articleText": "...", "articleTextLength": 4045,"input": "https://blog.python.org/"}
published/updatedare ISO 8601 in UTC, whatever date format the feed uses.summaryis the plain text of the feed's description/summary (up to 1,000 characters).contentHtmlis the full content when the feed has it (content:encoded, Atomcontent,content_html), otherwise the description;contentTextis its plain text.- Podcast feeds also fill
durationSeconds,episode,season,episodeTypeandexplicit(iTunes tags); every row carriesfeedLanguage. enclosuresmerges RSS enclosures, Atom enclosure links, JSON Feed attachments and Media RSS (media:content,media:thumbnail).article*fields appear only with Fetch full article text (articleErrorexplains a page that could not be read).- An input that can't be read (no feed found, site down) adds one uncharged row
{"input": "...", "error": "..."}; the other feeds are still processed. A per-input summary (feeds found, item counts, errors) is saved to the key-value store asSUMMARY.
Pricing
Pay per item, with lower prices on higher Apify plans, and no start fee:
item-parsed: $0.50 per 1,000 items on the free plan, down to $0.20 per 1,000 on Gold and above.article-fetched(only with Fetch full article text, only when text was extracted): $2 per 1,000 articles on the free plan, down to $0.80 per 1,000 on Gold and above.
Date, keyword, duplicate and count filters all apply before you are charged; error rows are free. A run where no feed can be read, or every feed is empty, fails clearly instead of returning an empty dataset. A filtered run with nothing new succeeds with 0 results.
Limits and notes
- Reads what a feed publishes: most feeds list only the latest 10 to 50 items, so schedule runs to build history.
- With Published since, items without any date are skipped unless Keep items without a date is on.
- Full-article extraction is generic (main/article text, no per-site rules) and honors robots.txt; paywalled or JavaScript-only pages return little or no text and are not charged.
- Feeds are fetched politely: inputs on the same host are read one after another, with a declared user agent and timeouts. Feeds up to 20 MB, articles up to 3 MB.
- XML is parsed safely: DOCTYPE and entity declarations are stripped first, so XXE and entity-expansion attacks can't run.
- Public data only. Sites that block non-browser clients (or require login) won't return a feed.