RSS and Atom Feed to JSON, with Feed Auto Discovery
Pricing
$0.50 / 1,000 feed item saveds
RSS and Atom Feed to JSON, with Feed Auto Discovery
Turn any RSS, Atom or JSON Feed, or any website URL, into clean JSON items: title, link, date, authors, categories, summary, full text, image and enclosures. Finds the feed for you from a site's home page. For AI agents, RAG pipelines, news monitoring and alerts.
Pricing
$0.50 / 1,000 feed item saveds
Rating
0.0
(0)
Developer
Hay Equipos
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Give the actor any feed address, or just a website or blog address, and get every item back as clean, consistent JSON: title, link, publish date, authors, categories, summary, full text, image and attachments. It reads RSS 2.0, RSS 1.0 (RDF), Atom and JSON Feed, and returns all four in one schema, so your code or your AI agent never has to care which format a site uses.
Do not know the feed address? Paste the home page. The actor finds the feed the site declares in its own page header, and if there is none it tries the usual addresses such as /feed, /rss.xml and /atom.xml.
No login, no browser, no proxies. robots.txt is respected, including rules that name Apify, and each site gets at most one request per second.
What you can use it for
- AI agents and RAG pipelines: pull the latest posts from any blog, newsroom or changelog as plain text, ready to summarize, embed or index.
- News and content monitoring: run it on a schedule with "Only items published after" and send only new items to Slack, email, a sheet or a webhook.
- Competitor tracking: follow competitors' blogs, product update pages and press rooms in one run.
- Newsletters and digests: Substack, Ghost, WordPress, Medium publications and most news sites publish feeds this actor reads.
- Podcast and media feeds: audio and video attachments come back in
enclosureswith type and size.
Input
| Field | What it does | Default |
|---|---|---|
| Feed or website URLs | Feed addresses or ordinary website addresses, one per line | required |
| Find the feed when a website URL is given | Auto discovery on or off | on |
| Maximum items per feed | Items taken from each feed, in the publisher's order (newest first on almost every site) | 50 |
| Maximum items in total | Stop after this many items across all feeds | 1,000 |
| Only items published after | A date such as 2026-09-01; older items are skipped and not charged | none |
| Include item text | Plain text of each item | on |
| Maximum text length | Cut the text to this many characters (0 for no limit) | 20,000 |
| Include item HTML | The publisher's HTML as well | off |
Example input:
{"urls": ["https://blog.cloudflare.com","https://github.blog/feed/","https://www.jsonfeed.org/feed.json"],"maxItemsPerFeed": 20,"publishedAfter": "2026-09-01"}
Output
One row per feed item. The same item is never saved twice in a run.
{"input": "https://blog.cloudflare.com","feedUrl": "https://blog.cloudflare.com/rss/","feedTitle": "The Cloudflare Blog","feedLink": "https://blog.cloudflare.com","feedFormat": "rss2","title": "Example post title","url": "https://blog.cloudflare.com/example-post/","id": "abc123","authors": ["Jane Roe"],"publishedAt": "2026-09-25T14:00:00.000Z","updatedAt": null,"categories": ["AI", "Developers"],"summary": "The first lines of the post...","hasFullContent": true,"wordCount": 1450,"imageUrl": "https://blog.cloudflare.com/content/images/example.png","enclosures": [],"text": "The full post as plain text...","scrapedAt": "2026-09-27T07:18:37.239Z"}
feedFormatisrss2,rss1,atomorjsonfeed.hasFullContenttells you whether the publisher put the whole article in the feed or only a summary. Many sites publish only a summary; the actor never visits the article pages themselves.- Dates are ISO 8601 in UTC. Entities and character sets (UTF 8, ISO 8859 1, Windows 1252 and others) are decoded for you.
- Inputs that give nothing (no feed found, the site blocked the request, robots.txt disallows it) are listed in
RUN_SUMMARYin the run's key value store and cost nothing.
Pricing
Pay per event. No start fee, no subscription, no platform usage charged on top.
| Event | Price |
|---|---|
| Feed item saved | $0.0005 (50 cents per 1,000 items) |
Example: an agent that checks 10 blogs for today's posts pays only for the handful of new items it gets back, often less than one cent. Failed feeds, skipped old items and duplicates are free. Set a maximum charge per run in Apify and the actor stops cleanly when it is reached.
Limits
- A feed carries only what the publisher puts in it, usually the latest 10 to 50 items. This actor reads feeds; it does not crawl a site's archive. Run it on a schedule to build a history.
- Sites that block cloud servers, or whose robots.txt disallows automated reading of the feed (GitHub's release feeds are one example), return a free error entry instead of items.
- Feeds larger than 10 MB are skipped.
- Discovery tries the feeds the page declares and at most 8 addresses in total per input.
FAQ
Does it work with Substack, WordPress, Ghost and Medium? Yes. They all publish standard feeds. Paste the publication's home page and the actor finds the feed.
Can I get only new items on a schedule? Yes. Set "Only items published after" to the date of your last run, or keep the output of each run and compare by id or url.
Why is text short for some items? The publisher only puts a summary in the feed. hasFullContent is false in that case.
Can an AI agent call it? Yes. It is a single job with one required input, pay per event pricing and no start fee, which suits agents calling it through the Apify API or MCP server.
Is this legal? Feeds are published so that software can read them. The actor reads only feeds, respects robots.txt and rate limits, and returns what the publisher chose to publish. You are responsible for how you use the content, including copyright in the full text.