RSS/Atom/JSON Feed Reader — $0.0005/item
Pricing
from $0.50 / 1,000 items
RSS/Atom/JSON Feed Reader — $0.0005/item
You pay only for items actually returned. Nothing found, nothing charged. Read RSS, Atom and JSON feeds into clean plain text, ready to hand to a model. Give it a site URL and the feed is found for you. Honours robots.txt, no browser, no key.
Pricing
from $0.50 / 1,000 items
Rating
0.0
(0)
Developer
Shun Furu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
RSS Feed Reader — Atom and JSON Feed to clean text
Read RSS, Atom and JSON feeds into flat rows of plain text, ready to hand to a model or drop into a database.
Give it a feed URL, or just a site URL and the feed will be found for you.
Input: ["https://news.ycombinator.com/rss", "https://blog.rust-lang.org"]Output: one row per item — title, author, date, summary, full text, tags, URL
Why this one
Feeds are the one part of the web published specifically so machines can read them, which makes them the cleanest possible source: no blocking, no bot protection, nothing to work around.
What is usually missing is everything after fetching:
- Three formats, one shape. RSS, Atom and JSON Feed all come back as identical rows, so a mixed list of sources needs no per-source handling.
- Markup removed. Feed bodies are HTML wrapped in XML wrapped in entities. This returns plain text, which is what you want when the next step is a model or a search index.
- Dates normalised. RFC 822, RFC 3339 and the various things feeds do in practice all come out as ISO 8601.
- Feed discovery. Pass
https://blog.rust-lang.organd the feed at/feedis found — the same way a browser does it, by reading the page's<link rel="alternate">tags.robots.txtis checked first. - Malformed feeds still parse. Real feeds break XML rules more often than not, so the parser is deliberately forgiving rather than strict.
Input
Every field is optional. Run it with the defaults and it works.
| Field | Type | Default | What it does |
|---|---|---|---|
feeds | array of strings | two example feeds | Feed URLs, or site URLs to discover feeds from |
keyword | string | — | Keep only items matching any of these words (title, summary, content, tags) |
since | string | — | ISO date. Drop items published before it. Items with no date are kept |
includeContent | boolean | true | Include the full item body. Turn off for a lighter, cheaper result |
maxItemsPerFeed | integer | 0 (no limit) | Cap items per feed |
Examples
Everything on the front page of Hacker News, as text:
{ "feeds": ["https://news.ycombinator.com/rss"] }
Recent posts about Rust from several engineering blogs, found from their homepages:
{"feeds": ["https://blog.rust-lang.org", "https://github.blog", "https://blog.cloudflare.com"],"keyword": "rust","since": "2026-08-01"}
Titles and links only, for a lightweight daily digest:
{"feeds": ["https://news.ycombinator.com/rss"],"includeContent": false,"maxItemsPerFeed": 20}
Output
| Field | Type | Description |
|---|---|---|
feedUrl | string | The feed that was read — useful when it was discovered rather than given |
feedTitle | string | Feed title |
feedFormat | string | rss | atom | jsonfeed |
siteUrl | string | The site the feed belongs to |
id | string | The item's own identifier, or its URL |
title | string | Item title |
url | string | Link to the item |
author | string | Where the feed publishes one |
publishedAt | string | null | ISO 8601 |
updatedAt | string | null | ISO 8601 |
summary | string | Plain text |
content | string | Full body as plain text, when includeContent is on |
tags | array | Categories the feed assigns |
fetchedAt | string | When the row was produced |
A SUMMARY record is written to the key-value store: which feed each source resolved to, its
format, and how many items matched your filters.
Pricing
| Price | |
|---|---|
| Starting a run | $0.00001 — one US cent per 1,000 runs |
| Each item returned | $0.0005 — 50 US cents per 1,000 items |
A source with no feed produces no rows, and errors go to the log and SUMMARY rather than the
dataset — so a run that finds nothing costs nothing.
Typical uses
- Feeding a model. Plain text, no markup, one shape across sources.
- Monitoring. Watch a list of blogs or release feeds for a keyword.
- Digests and newsletters. Pull the day's items and format them downstream.
- Archiving. Keep a structured record of what a source published and when.
Notes on data and compliance
- Feeds are published for machine consumption; nothing here is scraped around a restriction.
robots.txtis checked before fetching any page that is not already a feed.- No personal data is collected beyond an author name where a feed publishes one.
- The Actor backs off on
429and does not retry404.
Limitations — stated up front
- Only the feed's own content is returned. If a feed publishes summaries only, that is what you get — the linked article is not fetched.
- Discovery covers the common feed paths and the page's
<link rel="alternate">tags. A site that publishes a feed in neither place will not be found; pass the feed URL directly. - Podcast enclosures are not downloaded, only linked.
- Paywalled or authenticated feeds are out of scope.