RSS Feed Extractor avatar

RSS Feed Extractor

Pricing

from $0.50 / 1,000 feed items

Go to Apify Store
RSS Feed Extractor

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

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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 .rss feeds
  • 📝 Full article content — extracts content:encoded or 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, and media:thumbnail when 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 error record 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?

FieldDescription
typeRecord type: feed_metadata, feed_item, or error
titleFeed or item title
linkFeed or item URL
feedUrlThe source feed URL you provided
feedTitleParent feed title, included on every item record
pubDateItem publish date (ISO 8601)
authorItem author, when present
categoriesItem categories/tags, when present
guidItem GUID, when present
summaryItem summary or snippet
contentFull article content (when includeContent is enabled and the feed provides it)
enclosureEnclosure object (e.g. podcast audio file URL, type, length)
mediaContentmedia:content payload, when present
thumbnailThumbnail image URL, when present
itemCountNumber of items extracted, on feed_metadata records
errorError message, on error records

How to use RSS Feed Extractor

  1. Go to RSS Feed Extractor on Apify Store and click Try for free
  2. Paste one or more public RSS or Atom feed URLs into the Feed URLs field
  3. Set Max items per feed to control how many articles are pulled from each feed (default 50)
  4. Toggle Include full content on or off depending on whether you need the full article body or just the summary
  5. Click Start and wait for the run to finish
  6. Export your data as JSON, CSV, or Excel, or access it via the Apify API

Input parameters

ParameterTypeRequiredDefaultDescription
feedUrlsstring[]YesPublic RSS or Atom feed URLs to parse
maxItemsPerFeedintegerNo50Maximum items extracted from each feed (1–500)
includeContentbooleanNotrueInclude 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

  1. The Actor fetches each URL in feedUrls concurrently, using browser-like request headers
  2. Each response is parsed as RSS 2.0, Atom, or RSS 1.0 (RDF) — the Actor auto-detects the format
  3. If a URL fails to fetch, times out, or doesn't contain a valid feed, an error record is pushed for that URL and the run continues with the rest
  4. One feed_metadata record is pushed per feed, followed by up to maxItemsPerFeed feed_item records
  5. When includeContent is enabled, the Actor extracts the full article body (content:encoded or equivalent) in addition to the short summary
  6. 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 ApifyClient
client = 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

EventPrice per eventPrice 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.

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.

Looking for more content extraction and monitoring tools? Check out these ParseBird Actors:

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.