RSS Feed Extractor
Pricing
from $0.50 / 1,000 feed items
RSS Feed Extractor
Parse RSS 2.0, Atom, and RSS 1.0 feeds into structured JSON: article titles, links, publish dates, authors, categories, summaries, and full content extracted from any feed URL.
Pricing
from $0.50 / 1,000 feed items
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
RSS Feed Extractor — Parse RSS, Atom & RSS 1.0 Feeds into JSON
RSS Feed Extractor fetches and parses RSS 2.0, Atom, and RSS 1.0 (RDF) feeds into clean, structured JSON — no XML parsing, feed-format quirks, or encoding headaches to deal with yourself. Export the results as JSON, CSV, or Excel.
| Point it at any number of public feed URLs and get back article titles, links, publish dates, authors, categories, full content, and media — with per-feed error handling so one broken URL never stops the batch. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Apify Actor: parsebird/rss-feed-extractor — fetches and parses RSS 2.0, Atom, and RSS 1.0 (RDF) feed URLs into structured JSON. Pay-per-event pricing, event feed-item-extracted at $0.001/item on Free ($1.00/1000), $0.0009/item on Bronze ($0.90/1000), $0.0007/item on Silver ($0.70/1000), $0.0005/item on Gold ($0.50/1000) — only fires for extracted feed items, not for feed metadata or errored feeds. Call via ApifyClient: client.actor("parsebird/rss-feed-extractor").call(run_input={"feedUrls": ["https://feeds.bbci.co.uk/news/rss.xml"], "maxItemsPerFeed": 50, "includeContent": true}). Inputs: feedUrls (array of strings, required — public RSS or Atom feed URLs), maxItemsPerFeed (integer, default 50, 1-500 — max items extracted per feed), includeContent (boolean, default true — include full article content when the feed provides it, e.g. content:encoded). Output: one feed_metadata record per feed (title, description, link, feedUrl, language, lastBuildDate, image, itemCount) plus one feed_item record per article (title, link, feedUrl, feedTitle, pubDate, author, categories, guid, summary, content, enclosure, mediaContent, thumbnail), and an error record for any feed that fails to fetch or parse. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations
What does RSS Feed Extractor do?
RSS Feed Extractor is an Apify Actor that downloads and parses RSS and Atom feeds from any number of URLs you provide, turning inconsistent feed XML into a single, predictable JSON structure.
- 📰 Three feed formats supported — RSS 2.0, Atom, and RSS 1.0 (RDF), including YouTube channel feeds, podcast feeds, and Reddit/subreddit
.rssfeeds - 📝 Full article content — extracts
content:encodedor the entry's full content body when the feed provides it, not just the short summary - 🖼️ Media extraction — pulls enclosures (podcast audio/video files),
media:content, andmedia:thumbnailwhen present - 🛡️ Per-feed error handling — a broken URL, timeout, or non-feed page doesn't stop the run; every feed gets its own result, with failures pushed as an
errorrecord instead of crashing the batch - ⚡ Concurrent fetching — multiple feed URLs are fetched in parallel for fast turnaround on large batches
- ⏱️ Scheduling & API access — run on autopilot with Apify Schedules and pull results via the Apify API or client libraries
- 📊 Multiple export formats — download results as JSON, CSV, Excel, XML, or HTML
Use it as an RSS parser API, an RSS to JSON converter, a competitor and news monitoring tool, or the ingestion step of a content aggregation or LLM pipeline.
What data can you extract from an RSS or Atom feed?
| Field | Description |
|---|---|
type | Record type: feed_metadata, feed_item, or error |
title | Feed or item title |
link | Feed or item URL |
feedUrl | The source feed URL you provided |
feedTitle | Parent feed title, included on every item record |
pubDate | Item publish date (ISO 8601) |
author | Item author, when present |
categories | Item categories/tags, when present |
guid | Item GUID, when present |
summary | Item summary or snippet |
content | Full article content (when includeContent is enabled and the feed provides it) |
enclosure | Enclosure object (e.g. podcast audio file URL, type, length) |
mediaContent | media:content payload, when present |
thumbnail | Thumbnail image URL, when present |
itemCount | Number of items extracted, on feed_metadata records |
error | Error message, on error records |
How to use RSS Feed Extractor
- Go to RSS Feed Extractor on Apify Store and click Try for free
- Paste one or more public RSS or Atom feed URLs into the Feed URLs field
- Set Max items per feed to control how many articles are pulled from each feed (default 50)
- Toggle Include full content on or off depending on whether you need the full article body or just the summary
- Click Start and wait for the run to finish
- Export your data as JSON, CSV, or Excel, or access it via the Apify API
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
feedUrls | string[] | Yes | — | Public RSS or Atom feed URLs to parse |
maxItemsPerFeed | integer | No | 50 | Maximum items extracted from each feed (1–500) |
includeContent | boolean | No | true | Include full article content when the feed provides it |
Minimal input:
{"feedUrls": ["https://feeds.bbci.co.uk/news/rss.xml"]}
Full input example:
{"feedUrls": ["https://feeds.bbci.co.uk/news/rss.xml","https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID"],"maxItemsPerFeed": 50,"includeContent": true}
Output example
{"type": "feed_metadata","title": "BBC News","description": "BBC News - News Front Page","link": "https://www.bbc.co.uk/news","feedUrl": "https://feeds.bbci.co.uk/news/rss.xml","language": "en-gb","lastBuildDate": "2026-08-16T06:58:51Z","image": "https://news.bbcimg.co.uk/nol/shared/img/bbc_news_120x60.gif","itemCount": 33,"scrapedAt": "2026-08-16T06:58:57.815Z"}
{"type": "feed_item","title": "Rescuers search for survivors of powerful earthquake","link": "https://www.bbc.co.uk/news/articles/c3v00w5ylw9o","feedUrl": "https://feeds.bbci.co.uk/news/rss.xml","feedTitle": "BBC News","pubDate": "2026-08-16T04:13:32Z","author": null,"categories": null,"guid": "https://www.bbc.co.uk/news/articles/c3v00w5ylw9o#0","summary": "Officials say a rapid assessment into the impact of the earthquake is under way.","content": "Officials say a rapid assessment into the impact of the earthquake is under way.","enclosure": null,"mediaContent": null,"thumbnail": "https://ichef.bbci.co.uk/ace/standard/240/cpsprodpb/f5f8/live/example.jpg","scrapedAt": "2026-08-16T06:58:57.820Z"}
Download results in JSON, CSV, Excel, XML, or HTML, or access them via the Apify API.
Use cases
- 📡 News and media monitoring — track multiple news outlets or industry publications from a single input list
- ✍️ Blog and content aggregation — pull posts from several blogs into one feed for a newsletter, digest, or content hub
- 🏢 Competitor tracking — monitor competitor blog or changelog feeds (like product changelogs) for new posts
- 🎙️ Podcast and YouTube monitoring — extract episode/video metadata and enclosure URLs from podcast RSS or YouTube channel Atom feeds
- 🤖 Content pipelines & LLM ingestion — feed structured article data into a downstream summarization, classification, or RAG pipeline
- 🔌 Automation and integration — connect feed data to Slack, Google Sheets, Zapier, Make, or custom systems via Apify Integrations
How it works
- The Actor fetches each URL in
feedUrlsconcurrently, using browser-like request headers - Each response is parsed as RSS 2.0, Atom, or RSS 1.0 (RDF) — the Actor auto-detects the format
- If a URL fails to fetch, times out, or doesn't contain a valid feed, an
errorrecord is pushed for that URL and the run continues with the rest - One
feed_metadatarecord is pushed per feed, followed by up tomaxItemsPerFeedfeed_itemrecords - When
includeContentis enabled, the Actor extracts the full article body (content:encodedor equivalent) in addition to the shortsummary - Results are pushed to the dataset as each feed finishes, so you can start using data before the whole run completes
How to use via API — Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("parsebird/rss-feed-extractor").call(run_input={"feedUrls": ["https://feeds.bbci.co.uk/news/rss.xml","https://news.ycombinator.com/rss",],"maxItemsPerFeed": 50,"includeContent": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item["type"] == "feed_item":print(f"{item['feedTitle']}: {item['title']} ({item['pubDate']})")elif item["type"] == "error":print(f"Failed: {item['feedUrl']} — {item['error']}")
How to use via API — JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('parsebird/rss-feed-extractor').call({feedUrls: ['https://feeds.bbci.co.uk/news/rss.xml','https://news.ycombinator.com/rss',],maxItemsPerFeed: 50,includeContent: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {if (item.type === 'feed_item') {console.log(`${item.feedTitle}: ${item.title} (${item.pubDate})`);} else if (item.type === 'error') {console.log(`Failed: ${item.feedUrl} — ${item.error}`);}});
How much does it cost to extract RSS feed data?
RSS Feed Extractor uses pay-per-event pricing — you're charged only for feed_item records actually extracted. Feed metadata records and errored feeds are never charged. Platform usage (compute, bandwidth) is not billed separately.
How much does it cost to extract 1,000 feed items?
$1.00 on the Free plan, $0.90 on Bronze, $0.70 on Silver, or $0.50 on Gold. New users get a free trial with platform credit to try the Actor before committing to a paid plan.
How much does it cost to extract 100 items from 5 feeds?
Around $0.10 on the Free plan (100 items × $0.001/item) — a full run against the default input (one feed, up to 50 items) costs a few cents.
Pricing
| Event | Price per event | Price per 1,000 |
|---|---|---|
feed-item-extracted | $0.001 (Free) / $0.0009 (Bronze) / $0.0007 (Silver) / $0.0005 (Gold) | $1.00 / $0.90 / $0.70 / $0.50 |
feed-item-extracted fires once per article/item successfully extracted from a feed. Feed metadata records and errored feeds are not charged.
Is it legal to use RSS Feed Extractor?
This Actor only fetches feed URLs you explicitly provide — it does not crawl or discover feeds on its own. RSS and Atom feeds are published by site owners specifically for syndication, so parsing a public feed is generally not a legal grey area the way scraping a private page can be. You're still responsible for complying with each feed's terms of use and any applicable copyright or data protection laws for how you use the extracted content. Read more in Apify's guide on the legality of web scraping.
Related Actors
Looking for more content extraction and monitoring tools? Check out these ParseBird Actors:
- PDF Text Extractor — Extract text and metadata from PDF files by URL
- X/Twitter Article Markdown API — Convert X/Twitter articles and tweets to Markdown by tweet ID
- HTTP Request — Send API calls and forward responses to webhooks from the cloud
- Data Cleaner — Clean, normalize, and format scraped or extracted data
- Data Deduplicator — Merge and deduplicate Apify datasets by any field combination
Browse all ParseBird Actors on Apify Store.
FAQ
What feed formats are supported? RSS 2.0, Atom (including YouTube channel feeds), and RSS 1.0 (RDF). The format is auto-detected per URL — you don't need to specify it.
What happens if a feed URL is broken, times out, or isn't a valid feed?
That URL gets a single error record with a descriptive error message, and the run continues with the remaining URLs. One bad feed never stops the batch, and errored feeds are not charged.
Does includeContent: false remove the summary field too?
No. summary (the short description/snippet) is always included when the feed provides it. includeContent only controls whether the longer content field (e.g. content:encoded) is also extracted.
Can I parse podcast RSS feeds?
Yes. Podcast episode enclosures (the audio file URL, type, and size) are extracted into the enclosure field on each item.
Can I parse a YouTube channel's video feed?
Yes — YouTube publishes a public Atom feed per channel at https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID. Video thumbnails and media metadata are extracted into thumbnail and mediaContent.
What does maxItemsPerFeed control?
The maximum number of items extracted per feed, from 1 to 500. Most feeds only publish their most recent 20–50 items regardless of this setting — it's a cap, not a guarantee of that many items.
Can I schedule recurring runs? Yes. Use Apify Schedules to re-check the same feed URLs on a recurring basis — daily, hourly, or at any interval — to catch new items as they're published.
Can I access the data via API? Yes. Use the Apify API or the official Python and JavaScript client libraries to run the Actor and retrieve results programmatically.
What export formats are supported? JSON, CSV, Excel (XLSX), XML, and HTML. Download directly from the Apify Console or via the API.
Is there a free trial? Yes. New Apify users get free platform credit to try RSS Feed Extractor before committing to a paid plan.
I found an issue or have a feature request. Open an issue on the Issues tab or contact ParseBird via the Apify Console.