RSS & Atom Feed Reader with Auto-Discovery and Incremental Mode
Pricing
from $2.00 / 1,000 results
RSS & Atom Feed Reader with Auto-Discovery and Incremental Mode
Turn any RSS feed, Atom feed or JSON Feed into a clean, flat dataset of articles. Paste a feed URL, or just a website address: the Actor finds the feed the site advertises, reads it and returns one normalized row per article, with ISO dates, plain-text summaries, categories, images and podcast...
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Yoann TUQUET
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
RSS & Atom Feed Reader – Auto-Discovery and New-Articles-Only Mode
Turn any RSS feed, Atom feed or JSON Feed into a clean, flat dataset of articles. Paste a feed URL, or just a website address: the Actor finds the feed the site advertises, reads it and returns one normalized row per article, with ISO dates, plain-text summaries, categories, images and podcast attachments.
Switch on "Only new articles since the last run" and schedule the Actor: every run returns only what was published since the previous one. No start fee: you pay for the articles you receive, nothing else.
Everything is read from the feeds that publishers put online on purpose. No scraping, no login, no browser.
Why use it
- ✅ Feed auto-discovery: give
https://go.dev/blog/instead of hunting for the feed URL. The Actor reads the<link rel="alternate">tags the page itself publishes, article feeds first, comment feeds last. - ✅ Every common format: RSS 0.9x / 2.0, RSS 1.0 (RDF), Atom 1.0 and JSON Feed, including podcasts (enclosures) and media thumbnails.
- ✅ Incremental monitoring: a persistent memory per feed returns only the new articles, and uses
ETag/Last-Modifiedso unchanged feeds cost almost nothing. - ✅ Normalized output: dates in ISO 8601 UTC, absolute links, HTML stripped, duplicates removed, stable article IDs across runs.
- ✅ Polite and safe: respects
robots.txt, at most 2 requests per second per host, refuses private network addresses. - ✅ No start fee, pay per article: failed feeds and duplicates are never charged.
Use cases
- News and competitor monitoring: follow the blogs, changelogs and press pages of dozens of companies and get only what is new, on a schedule.
- Content pipelines: feed fresh articles to a newsletter, a Slack channel, a Notion database or an AI summarizer through webhooks.
- Security and release watching: track vendor advisories, product release notes and status feeds published as RSS or Atom.
- Podcast and video tracking: collect new episodes with their audio URL, MIME type and size.
- SEO and PR: monitor mentions published in feeds, and archive articles with their categories and dates.
How to use it
- Click Try for free and paste feed URLs or website addresses in Feed or website URLs.
- Choose how many articles per feed you want (Max articles per feed), and optionally enable Only new articles since the last run.
- Click Start. Export the dataset as JSON, CSV, Excel or HTML, or fetch it through the Apify API.
Tip: create a Schedule (for example hourly or daily) together with Only new articles since the last run, and connect a webhook or an integration to be notified of new articles.
What is returned
| Field | Description |
|---|---|
id, guid | Stable article identifier, and the identifier given by the feed itself |
title, link | Plain-text title and absolute article URL |
publishedAt, updatedAt | ISO 8601 UTC dates (RFC 822, Atom and other formats are normalized) |
summary, content | Summary (500 characters max) and, if enabled, full text without HTML (20,000 characters max) |
categories | Categories or tags (20 max) |
imageUrl | Thumbnail from media:thumbnail, media:content, an image enclosure or JSON Feed |
enclosureUrl, enclosureType, enclosureLength | Attached file such as podcast audio, video or PDF |
feedUrl, feedTitle, feedType, siteUrl, language | The feed the article comes from |
discoveredFrom | The web page you gave, when the feed was auto-discovered |
fetchedAt | Download time |
Author names are deliberately not collected, so the dataset contains no personal profile data.
Input
{"items": ["https://go.dev/blog/", "https://github.blog/feed/"],"maxItemsPerFeed": 20,"onlyNewSinceLastRun": true,"stateNamespace": "engineering-blogs","maxAgeDays": 30,"includeContent": false}
| Field | Description | Default |
|---|---|---|
items | Feed URLs (RSS, Atom, JSON Feed) or website addresses to discover feeds from | required |
maxItemsPerFeed | Most recent articles returned per feed, 1 to 500 | 20 |
onlyNewSinceLastRun | Return only articles not seen in a previous run with the same state name | false |
stateNamespace | Name of the incremental memory; use different names for independent monitors | default |
maxAgeDays | Ignore articles older than this many days (0 = no limit; undated articles are kept) | 0 |
discoverFeeds | Read the feeds advertised by web pages | true |
maxFeedsPerSite | Feeds read per web page, 1 to 5 | 1 |
includeContent | Add the full article text as plain text | false |
timeoutSecs | Network timeout per download | 20 |
The first incremental run returns the latest articles (up to maxItemsPerFeed); the following runs return only the new ones. If a feed publishes more new articles than maxItemsPerFeed between two runs, raise the limit or run more often.
Output
One dataset item per article. Real example, from the Go blog (abridged):
{"id": "5fe29c284785b3a6","guid": "tag:blog.golang.org,2013:blog.golang.org/size-specialized-allocations","title": "Size-Specialized Memory Allocation","link": "https://go.dev/blog/size-specialized-allocations","publishedAt": "2026-09-16T00:00:00.000Z","updatedAt": "2026-09-16T00:00:00.000Z","summary": "Go 1.27 improves performance of small allocations using size-specialized allocation functions.","categories": [],"imageUrl": null,"enclosureUrl": null,"enclosureType": null,"enclosureLength": null,"feedUrl": "https://go.dev/blog/feed.atom","feedTitle": "The Go Blog","feedType": "atom","siteUrl": null,"language": null,"discoveredFrom": "https://go.dev/blog/","fetchedAt": "2026-09-18T17:38:16.923Z"}
A run summary is also saved under the SUMMARY key of the default key-value store: for every feed, its type, the number of articles found and published, and the error when a feed could not be read.
Pricing
Pay per event: $0.002 per article returned, which is $2 per 1,000 articles. There is no start fee. Feeds that fail, invalid URLs, duplicates and unchanged feeds (in incremental mode) are not charged. You can cap your spending with the maximum charge setting of each run.
Integrations
- API: start runs and download results from any language with the Apify API or clients.
- Schedules and webhooks: run hourly or daily with "Only new articles" and trigger a webhook when the run finishes.
- Make, Zapier, n8n: post new articles to Slack, email, Google Sheets, Notion or your CMS.
- AI agents: callable as a tool through the Apify MCP server.
FAQ
Does it work with any website?
Only with sites that publish a feed. The Actor reads the feeds a page advertises in its HTML head; it does not guess URLs such as /feed or crawl the site. If a page advertises no feed, the run reports it and nothing is charged.
How does "Only new articles" know what is new? It stores a compact list of the article IDs it has already returned, per feed and per state name, in a named key-value store of your account. The same article is never returned twice, even if the feed reorders it. An article that is edited later keeps its ID and is not returned again.
What if a site forbids robots?
robots.txt is respected. A feed disallowed for automated readers is reported as an error and not requested.
Why is a date missing?
Some feeds give no date or an unreadable one. publishedAt is then null, and the article is kept unless it is filtered by other options. Atom entries without a publication date fall back to their update date.
Are authors included? No. Author fields are never read, to keep the output free of personal data.
Limitations
- Only public feeds are read: no login, no paywalled or password-protected feeds.
- Summaries and full text are converted to plain text; images and formatting inside articles are not returned.
- A feed larger than 10 MB is rejected.
- Feeds show only their most recent articles (often 10 to 50); older articles are not available through this Actor.
- Feed autodiscovery relies on the
<link rel="alternate">tags of the page you provide; pages rendered only by JavaScript may not expose them.