RSS & Atom to Markdown — JSON + RAG Chunks
Pricing
from $0.50 / 1,000 feed items
RSS & Atom to Markdown — JSON + RAG Chunks
Parse RSS 2.0 and Atom feeds into structured JSON with Markdown body text for RAG and LLM pipelines. Optional feed discovery from a page, content hash, and heading-aware chunks. Failed feeds are reported, not fatal. 256 MB default.
Pricing
from $0.50 / 1,000 feed items
Rating
0.0
(0)
Developer
新世紀書僮
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
25 days ago
Last modified
Categories
Share
Turn RSS 2.0 and Atom feeds into structured JSON with Markdown body text, ready for RAG and LLM pipelines.
Paste feed URLs (or a page URL to discover feeds from). Each entry becomes one dataset row with title, link, published date, authors, categories, summary, contentMarkdown, word count and a content hash. Optional heading-aware RAG chunks. Broken feeds are reported, not fatal. Default memory: 256 MB. No browser, no AI keys.
What you get
- 📡 RSS 2.0, Atom, JSON Feed — parsed with open-source
feedparser - 📝 Markdown body — HTML in
content:encoded/ Atomcontent/ summary converted to Markdown - 🔎 Optional feed discovery — scan a page for
<link rel="alternate" type="application/rss+xml|atom+xml">, plus common/feedpaths - 🧩 Optional RAG chunks — heading-aware chunks with token estimate (same idea as our document Actors)
- 🧮 Filters — max items, published-after date, include/exclude link regex, per-feed cap
- 🧯 Broken feeds don't break the run — each feed/page gets a status line in
FEED_REPORT - 💾 Light — HTTP only, 256 MB default
Measured results
Local smoke + private Apify cloud (2026-09-30 Asia/Taipei, build 0.1.1, 256 MB). Platform $ from settled usageTotalUsd (≥2 min after finish).
| Test | Result |
|---|---|
| NASA news RSS (local) | 10 items in 0.3 s, peak 88 MB; Markdown from content:encoded |
| xkcd Atom + Mozilla Blog Atom (local) | 6 items in 0.3 s, peak 86 MB |
| NASA homepage discovery + Python Insider (local) | 8 items from 2 feeds in 0.7 s, peak 94 MB |
| W3C news + RAG chunks (local) | 5 items + 6 chunks in 0.1 s, peak 84 MB |
Cloud smoke TS6Txm6iVMXBPvnPI (NASA, 10 items) | SUCCEEDED ~4.4 s wall; usageTotalUsd ≈ $0.00027 |
Cloud bench JLRaUu51k2gsAAfBM (20 public feeds → 1000 items) | SUCCEEDED 120 s wall; peak RSS 153 MB; CU 0.00835; settled $0.006855 (≈ $0.00000686 / item) |
Cloud chunks PiKjKVJTMTTrus1n4 (300 items + 300 chunks) | SUCCEEDED 8.3 s; peak RSS 119 MB; settled $0.003275 (≈ $0.0000109 / charged item) |
Use cases
- Monitor blogs and government feeds for RAG / knowledge bases
- Normalize mixed RSS + Atom sources into one JSON schema with Markdown
- Chunk feed content for embedding pipelines without a separate splitter
- Discover a site's feed URL from its homepage, then parse it in the same run
How to use
- Add feed URLs in Feed URLs, and/or page URLs in Page URLs (discover feeds).
- Optional: set Max items, a Published on or after date, or Output = RAG chunks.
- Click Start. Items appear in the Dataset;
FEED_REPORTandOUTPUTare in the Key-value store.
Input example
{"feedUrls": [{ "url": "https://www.nasa.gov/rss/dyn/breaking_news.rss" }],"maxItems": 20,"outputFormat": "items"}
Output example (one dataset item per feed entry)
{"kind": "item","status": "ok","title": "Example headline","link": "https://www.example.gov/news/123","published": "2026-09-30T12:00:00+00:00","authors": ["Press Office"],"categories": ["News"],"summary": "Short plain-text or Markdown summary…","contentMarkdown": "# Example headline\n\nFull body as Markdown…","contentSource": "content","contentHash": "sha256…","wordCount": 420,"feedUrl": "https://www.example.gov/feed.xml","feedTitle": "Example Feed","feedFormat": "rss"}
Key-value store records
| Key | Content |
|---|---|
OUTPUT | Run summary: items/chunks saved, feeds read/failed, duplicates, duration, peak memory |
FEED_REPORT | One entry per feed or discovery page: status (ok, not_found, error, skipped), HTTP status, format, entry counts, error |
Pricing
Pay per event (validated on private cloud benches; numbers in Measured results above):
| Event | Price |
|---|---|
| Feed item saved (primary) | $0.0005 per entry (= $0.50 per 1,000 items) |
| Actor start | Apify default ($0.00005 per GB of run memory) |
RAG chunk rows are not billed as a separate PPE event (dataset storage still applies on the platform). Failed feeds and duplicate items are never charged. Measured platform cost ≈ $0.000007 / item at 1,000 items (items-only).
Known limits
- Does not fetch the full article page behind each item link (feed body / summary only). Full-page extraction may come later as an optional paid event.
- Does not execute JavaScript; feeds must be plain HTTP(S) XML/JSON.
- Malformed feeds:
feedparseris tolerant, but severely broken XML may yield zero entries (bozonoted inFEED_REPORT). - JSON Feed support depends on
feedparser; treat as best-effort until covered in measured tests. - Very large feeds: use Max items / Max items per feed to cap cost and memory.
FAQ
Can I pass a homepage instead of a feed URL? Yes — put it in Page URLs. The Actor looks for <link rel="alternate"> feed links and, if none are found, tries common paths like /feed and /atom.xml.
Are failed feeds charged? No. Only successfully saved feed entries are charged.
License & source code
This Actor is open source under the GNU Affero General Public License v3.0 (AGPL-3.0) — see LICENSE. The full source code is public: https://github.com/xbox002000/rss-atom-to-markdown
Third-party notices: NOTICE. Changelog: CHANGELOG.md.