RSS & Atom Feed Reader — Clean Dataset Rows
Pricing
from $1.00 / 1,000 feed item extracteds
RSS & Atom Feed Reader — Clean Dataset Rows
Read RSS and Atom feeds and get every item as a clean dataset row: title, link, date, author, summary, enclosures. Fast HTTP-only, no browser, failed feeds don't break the run.
Pricing
from $1.00 / 1,000 feed item extracteds
Rating
0.0
(0)
Developer
KeyMan98
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
RSS & Atom Feed Reader
Read one or more feeds — RSS 2.0, RSS 1.0 (RDF), or Atom — and get every item as a clean, structured dataset row: title, link, published date, author, summary, categories, enclosures — instead of raw XML. Plain HTTP requests only, no browser: fast even on many feeds at once.
What it does
For each feed URL, this Actor sends a normal HTTP GET request (the same request any feed reader would send), parses the response, and pushes one dataset row per item found. RSS 2.0, RSS 1.0 (RDF), and Atom are all supported transparently: you don't need to know which format a given URL uses.
What you get (output fields)
One dataset row per feed item:
feedUrl— the feed URL this item came from.feedTitle— title of the feed, as declared by the feed itself.title— item title.link— item link (the article/page URL).published— publish date/time, ISO 8601 UTC (nullif the feed does not declare one).updated— last-updated date/time, ISO 8601 UTC (nullif the feed does not declare one).author— item author, when declared.summary— item summary/description as plain text, HTML stripped, truncated to about 2000 characters.contentHtml— full item content as HTML, when the feed provides it (Atom<content>or RSScontent:encoded);nullotherwise.categories— array of category/tag names declared on the item.guid— item unique identifier as declared by the feed, falling back to its link.enclosures— array of{ url, type, length }for attached media files (e.g. podcast audio, images).error— set only on a feed-level error row;nullon a normal item row.
If a feed cannot be read
A feed that is completely unreachable (DNS failure, connection refused, timeout, persistent HTTP error), that is not valid RSS/Atom, or that parses but contains zero items becomes a single row: { "feedUrl": "...", "error": "..." }. The rest of your feed list keeps running, the run does not fail, and you are not charged for that feed.
How to use
- Feed URLs — paste the RSS/Atom feed URLs you want to read.
- Max items per feed — stop after this many items per feed (default 50, 1-1000). Keeps cost and run time predictable on very large feeds.
- Since date (optional) — only keep items published after this date (e.g.
2026-01-01). Items with no publish/update date on the feed are skipped when this is set, since it cannot be confirmed they are after it. - Run the Actor. Each feed item becomes one dataset row.
Input example (JSON)
{"feedUrls": ["https://hnrss.org/frontpage", "https://feeds.bbci.co.uk/news/rss.xml"],"maxItemsPerFeed": 50}
Output example (JSON)
{"feedUrl": "https://hnrss.org/frontpage","feedTitle": "Hacker News: Front Page","title": "Example story title","link": "https://news.ycombinator.com/item?id=1","published": "2026-09-24T08:00:00Z","updated": null,"author": null,"summary": "Example summary text, HTML stripped.","contentHtml": null,"categories": [],"guid": "https://news.ycombinator.com/item?id=1","enclosures": [],"error": null}
Pricing
Pay only for items actually extracted — nothing charged for a feed that could not be read. Pricing model: pay-per-event.
| Event | When it's charged | Price |
|---|---|---|
item-extracted | one feed item was parsed and pushed to the dataset | 0.001 USD |
Not charged for errors: a feed-level error row never triggers item-extracted.
Limitations
- HTTP-only: does not run a browser, so feeds that require JavaScript to load (rare) are not supported.
- Duplicate feed URLs in the input are read only once.
- Dates are only as accurate as the feed itself declares; a feed with no publish date on an item leaves
publishedasnull(and excludes that item when "Since date" is set). - No login, no CAPTCHA solving, no bypass of any site protection.
FAQ
Does this support both RSS and Atom?
Yes, transparently — you paste the URL, the Actor detects the format.
Does this support RSS 1.0 (RDF) feeds?
Yes. RSS 2.0, RSS 1.0 (RDF), and Atom are all parsed the same way — you don't need to tell the Actor which one a feed uses.
Am I charged if a feed is unreachable or invalid?
No. You are only charged per item actually extracted from a feed that was successfully read.
What happens with duplicate feed URLs?
They are de-duplicated before the run starts; each feed URL is read once.
Can I limit how far back items go?
Yes, use the "Since date" input field. Items without any date on the feed are excluded when this filter is set.
Can I poll a feed on a schedule without getting duplicate items?
Set "Since date" and run the Actor on a schedule (Apify's built-in scheduler), moving the date forward between runs. There is no automatic deduplication built in — if you re-run with the same "Since date", you'll get the same items again.
Can I use this through the Apify API or an MCP server?
Yes. Like any Apify Actor, you can run it and read results through the standard Apify API, or through the Apify MCP server if you use Claude, Cursor, or another MCP-enabled client.
Export
Results can be downloaded from the Apify dataset as JSON, CSV, or Excel, or accessed via the Apify API.