RSS, Atom & JSON Feed Reader (with feed discovery)
Pricing
from $0.30 / 1,000 feed item returneds
RSS, Atom & JSON Feed Reader (with feed discovery)
Reads the RSS, Atom, RDF and JSON feeds you name into clean rows: title, link, dates, author, text summary, categories and enclosures, optionally full content. Give a feed URL or a page that advertises one. Filter by date. Obeys robots.txt; no proxy, no login.
Pricing
from $0.30 / 1,000 feed item returneds
Rating
0.0
(0)
Developer
Brenden Bushman
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Turn the feeds you follow into clean, uniform rows you can filter, store, or pass to the next step of an automation. Give it feed URLs, or ordinary web pages that advertise a feed, and get back one row per item: title, link, published and updated dates (UTC, ISO 8601), author, a plain-text summary, categories, enclosures (podcast audio, attached files) and, if you ask, the full content.
RSS 0.9x/1.0/2.0, RDF, Atom and JSON Feed 1.0/1.1 all come out in the same shape. Parsing uses feedparser (BSD licence), which tolerates the malformed feeds found in the wild, resolves relative links and strips scripts from HTML content. JSON Feed is read directly.
What you get
- One row per item, with the feed's title, link and format on every row, so rows from many feeds can be mixed.
- Feed discovery: give a blog's home page and the Actor reads the feeds it advertises with
<link rel="alternate">(up to 5 per page). - A date filter (
publishedAfter): a date, a date-time, or a period such as24 hoursor7 days. Run it on a schedule withpublishedAfter: "1 day"for a daily digest. - A plain-text summary on every item (HTML removed, at most 2,000 characters), and optionally the full content as
sanitized HTML and as text (
includeContent). - Duplicate URLs are read once.
Failures are reported as rows with "type": "error" and are not charged: fetch-failed, robots-disallowed,
not-a-feed, no-feed-found, feed-too-large.
Respectful by design
- Only the URLs you list are fetched, plus the feeds a listed page advertises. Nothing is crawled. The site's robots.txt is read first and obeyed, and requests to one site are spaced (500 ms by default). No proxy, no browser, no login.
- Only public internet addresses are fetched. A URL or redirect into a private, loopback or link-local network is refused.
Read only feeds you are allowed to use, and respect each publisher's terms for what you do with the content.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
feedUrls | array | - | Feed URLs, or pages that advertise a feed. Required. |
publishedAfter | string | - | 2026-10-01, 2026-10-01T08:00:00Z, 24 hours, 7 days, 2 weeks. Undated items are kept. |
maxItemsPerFeed | integer | 50 | Up to 1,000, in the feed's own order. |
includeContent | boolean | false | Adds contentHtml and contentText. |
discoverFeeds | boolean | true | Read the feeds a web page advertises. |
requestDelayMs | integer | 500 | Pause between requests to one site. |
Output
One dataset row per item, in input order and the feed's own order:
{"type": "item", "requestedUrl": "https://blog.example/", "feedUrl": "https://blog.example/feed.xml","feedTitle": "Example Blog", "feedLink": "https://blog.example/", "feedFormat": "rss20","title": "Spring survey: turbidity fell at all six sites", "link": "https://blog.example/posts/spring-survey","id": "https://blog.example/?p=412", "published": "2026-10-14T09:00:00Z", "updated": null,"author": "Field Team", "summary": "All six sampling sites showed lower turbidity than last spring.","categories": ["Surveys"],"enclosures": [{"url": "https://blog.example/files/report.pdf", "type": "application/pdf", "length": 2048}]}
A failure:
{"type": "error", "requestedUrl": "https://blog.example/about", "feedUrl": "https://blog.example/about","error": {"code": "no-feed-found", "message": "the page is HTML and advertises no RSS, Atom or JSON feed"}}
Key-value store record SUMMARY: URLs requested, feeds read, items returned, errors, the date cut-off used, and why
the run stopped early if it did.
Pricing
Pay per event, no start fee, and nothing for failures:
| Event | Price | Per 1,000 |
|---|---|---|
feed-read (one feed fetched and parsed) | $0.001 | $1.00 |
item-read (one item returned) | $0.0003 | $0.30 |
Reading 10 feeds and getting 20 new items from each costs $0.07. Items the date filter drops are not charged. When you set a maximum charge for a run, the Actor returns the items it covers and stops.
Limits
- It reads what a feed contains now. Most feeds list only their latest 10-50 items, so for history, run it on a schedule.
- Feeds behind a login or a paywall cannot be read: there is no cookie or password field.
- 20 MB per feed at most.