RSS, Atom & JSON Feed Reader (with feed discovery) avatar

RSS, Atom & JSON Feed Reader (with feed discovery)

Pricing

from $0.30 / 1,000 feed item returneds

Go to Apify Store
RSS, Atom & JSON Feed Reader (with feed discovery)

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

Brenden Bushman

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 as 24 hours or 7 days. Run it on a schedule with publishedAfter: "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

FieldTypeDefaultNotes
feedUrlsarray-Feed URLs, or pages that advertise a feed. Required.
publishedAfterstring-2026-10-01, 2026-10-01T08:00:00Z, 24 hours, 7 days, 2 weeks. Undated items are kept.
maxItemsPerFeedinteger50Up to 1,000, in the feed's own order.
includeContentbooleanfalseAdds contentHtml and contentText.
discoverFeedsbooleantrueRead the feeds a web page advertises.
requestDelayMsinteger500Pause 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:

EventPricePer 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.