RSS Feed Extractor: RSS/Atom → Clean JSON + Markdown avatar

RSS Feed Extractor: RSS/Atom → Clean JSON + Markdown

Pricing

Pay per usage

Go to Apify Store
RSS Feed Extractor: RSS/Atom → Clean JSON + Markdown

RSS Feed Extractor: RSS/Atom → Clean JSON + Markdown

Turn any RSS or Atom feed into clean, LLM-ready Markdown + structured JSON — one record per feed item (title, link, author, publishedAt, summary, categories, clean contentMarkdown). Optional full-text fetch. Perfect for content monitoring, news aggregation, and RAG over feeds.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Marvin Eguilos

Marvin Eguilos

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

RSS Feed Extractor — RSS/Atom → Clean JSON + Markdown for LLM & RAG

Point it at any RSS or Atom feed. Get back one clean, LLM-ready record per item. Title, link, author, publish date, summary, categories, and the full item content as clean Markdown — no HTML soup, no boilerplate. Built for content monitoring, news aggregation, and RAG pipelines that need the content of a feed, not raw XML.

Turn the firehose of RSS/Atom into structured, embed-ready Markdown — one tidy JSON record per article.


✨ What it does

  • Universal feed parsing — RSS 2.0, RSS 1.0, and Atom, including content:encoded, dc:creator, and media fields.
  • One record per item — each article in each feed becomes its own structured result.
  • HTML → Markdown — high-fidelity conversion (GitHub-Flavored Markdown: tables, code blocks, lists, links) via Turndown, cleaned and collapsed.
  • Structured JSONfeedTitle, feedUrl, title, link, author, publishedAt, summary, categories[], contentMarkdown.
  • Optional full-text fetch — flip fullTextFetch: true to fetch each item's link and extract the full article body with Mozilla Readability (great when feeds only ship a teaser).
  • Robust by design — one bad feed never kills the run. Feeds that fail to fetch/parse return a clean error record in a separate dataset (and are never charged).
  • Polite — sends a real descriptive User-Agent and sensible timeouts.

🎯 Use cases

You want to…This Actor gives you…
Monitor content / competitorsStructured, deduped item records you can diff and alert on.
Aggregate newsMany feeds → one uniform JSON shape, ready for a dashboard or DB.
Build RAG over feedsClean Markdown per article, ready to chunk and embed.
Give an AI agent fresh contextLatest items as JSON your agent can reason over — no XML parsing.
Archive a feedPortable, diff-friendly Markdown + metadata per item.

📥 Input

FieldTypeDefaultDescription
feedUrlsstring[](required)One or more RSS/Atom feed URLs. Each successful item is one result.
maxItemsinteger100Max items extracted per feed (as ordered by the feed).
fullTextFetchbooleanfalseAlso fetch each item's link and extract the full article body to Markdown (higher cost).

Example input

{
"feedUrls": [
"https://hnrss.org/frontpage",
"https://www.theverge.com/rss/index.xml"
],
"maxItems": 100,
"fullTextFetch": false
}

📤 Output

One dataset item per feed item. Successful example:

{
"feedTitle": "The Verge",
"feedUrl": "https://www.theverge.com/rss/index.xml",
"title": "Some article headline",
"link": "https://www.theverge.com/2026/...",
"author": "Jane Doe",
"publishedAt": "2026-07-18T14:03:00.000Z",
"summary": "A one-paragraph plain-text teaser of the article...",
"contentMarkdown": "Full item content converted to clean Markdown...\n\n[Read more](https://...)",
"categories": ["Tech", "AI"],
"fullTextFetched": false,
"fetchedAt": "2026-07-18T15:20:11.954Z"
}

Failed feed (returned in a separate failures dataset, not charged):

{
"feedUrl": "https://not-a-real-domain-xyz.com/feed.xml",
"error": "getaddrinfo ENOTFOUND not-a-real-domain-xyz.com",
"fetchedAt": "2026-07-18T15:20:10.831Z"
}

🔌 Call it from code (Apify API)

curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~rss-feed-extractor/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"feedUrls":["https://hnrss.org/frontpage"]}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const { defaultDatasetId } = await client
.actor('YOUR_USERNAME/rss-feed-extractor')
.call({ feedUrls: ['https://hnrss.org/frontpage'] });
const { items } = await client.dataset(defaultDatasetId).listItems();
console.log(items[0].title, items[0].contentMarkdown);

💸 Pricing (Pay-Per-Event)

EventPrice
Actor start$0.05 per run
Extracted feed item$0.002 per successfully extracted item
  • You only pay for items that succeed — feeds that fail to fetch/parse are never charged.
  • 🎁 Free tier: free-plan users' platform usage is covered by Apify, so you can try it and run small jobs at no cost before scaling up.
  • Clean structured JSON + per-item Markdown, at a low per-item price — ideal for high-volume monitoring and RAG ingestion.

⚖️ Acceptable use

This is a general-purpose feed-conversion tool: you supply the feed URLs and are responsible for having the right to fetch and use the content you submit. It identifies itself with a descriptive User-Agent, does not target any single platform's private API, and does not harvest personal data as a feature. Please fetch responsibly and comply with each source's terms of service and applicable law.


🧱 Under the hood

Node.js · rss-parser · @mozilla/readability · Turndown (+ GFM) · jsdom · Apify SDK. Stateless — nothing is stored between runs.