RSS to JSON
Paste an RSS 2.0 or Atom feed and get tidy JSON with channel info and a normalized items array.
Example
Paste an RSS feed:
<rss version="2.0"><channel>
<title>Example Blog</title>
<item><title>First Post</title>
<link>https://calccafe.com/1</link></item>
</channel></rss>
Get clean JSON:
{
"feedType": "rss",
"channel": { "title": "Example Blog" },
"items": [
{ "title": "First Post", "link": "https://calccafe.com/1" }
]
}How it works
Parses the feed XML with the browser's DOMParser, detects whether it is RSS or Atom, and maps channel metadata plus each item/entry into a normalized JSON object. Everything runs client-side with no network calls.
Good to know
RSS to JSON converts raw RSS 2.0, RSS 1.0/RDF, or Atom feed XML into a single normalized JSON object with a feedType string, a channel block for feed-level metadata, and an items array for individual posts. It's aimed at developers, data tinkerers, and content automators who want to read a feed inside JavaScript, a no-code automation step, or a quick script without writing an XML parser or learning the quirks of each feed format.
Reach for it whenever you're prototyping a feed reader, building a dashboard widget that surfaces "latest posts," wiring a feed into a webhook or spreadsheet, or simply inspecting what a publisher actually exposes before you commit to a schema. Because RSS and Atom use different element names for the same ideas, the tool collapses both into one consistent shape, so your downstream code only has to handle a single structure regardless of which format the source emits.
To read the result, start with feedType to confirm what was detected, then check channel for the feed title, link, and description, and iterate items for each post. Field mapping is unified across formats: Atom's <entry> becomes an item, <id> maps to guid, <summary> and <content> map to description and content, and an href-based <link> (preferring rel="alternate") becomes the item's link. Dublin Core fields like dc:creator are picked up as author, and the green status line tells you how many items were parsed.
Keep two things in mind: the tool only parses XML you paste, so download the feed (or run it through your own proxy) first since it can't fetch a URL due to browser CORS limits. Also, any field a feed omits is simply left out of the JSON rather than set to null or empty, so write defensive code that checks for a field's presence before using it, especially for optional values like author, categories, or content.
Frequently asked questions
Does it support Atom feeds as well as RSS?
Yes. It detects the root element and handles both RSS 2.0 (and basic RSS 1.0/RDF) plus Atom feeds, mapping,, and href-basedtags into the same normalized JSON shape.
Can it fetch a feed from a URL?
No. To stay private and avoid cross-origin (CORS) restrictions, this tool only parses XML you paste in. Download the feed XML and paste it, or pipe it through your own proxy first.
Is my data uploaded anywhere?
No — this tool runs entirely in your browser. Your input never leaves your device and it works offline once loaded.
Is it free?
Yes, completely free with no sign-up and no limits.
People also ask
What is the difference between RSS and Atom feeds?
RSS (commonly version 2.0) and Atom are two XML formats for publishing lists of content updates. They cover the same idea but use different element names, for example RSS uses <item> and <pubDate> while Atom uses <entry> and <published>, and Atom requires a globally unique <id> per entry.
Why does my converted JSON show fewer fields than the original feed?
This tool maps a defined set of common fields, and it omits any field that is empty or missing in the source rather than including blank keys. Less common or namespaced elements outside the supported mappings are not carried over to keep the output clean and predictable.
What does the guid field mean in the JSON output?
The guid is a unique identifier for each item, taken from the RSS <guid> element or the Atom <id> element. It is often a permalink URL but can be any string the publisher uses to distinguish one entry from another, which is useful for deduplicating or tracking which items you have already seen.
Can I convert a feed file by pasting its contents?
Yes. Open the feed's .xml or .rss file in a text editor, copy the full contents, and paste them into the input box. The tool parses pasted XML directly and does not require a file upload or a URL.
How do I get a feed's XML if the tool cannot fetch URLs?
Open the feed URL in your browser and use Save As, or use a command-line tool like curl or wget to download the raw XML, then paste the contents in. If you need automated fetching, route the request through your own server or proxy to handle cross-origin restrictions.
Does the tool keep the HTML inside feed content and descriptions?
Yes. The text of fields such as description and content is extracted as-is, so any HTML markup the publisher included remains in the JSON string. You should sanitize that HTML before rendering it if the source is untrusted.
What date format do RSS and Atom feeds use for publication dates?
RSS typically uses RFC 822 dates such as 'Wed, 10 Jun 2026 09:00:00 GMT', while Atom uses ISO 8601 / RFC 3339 dates such as '2026-06-10T09:00:00Z'. The tool passes these through as the original strings in the pubDate field, so you may need to parse them into a date object in your own code.
Will this work offline?
Yes. The tool runs entirely in your browser with no network calls, so once the page has loaded it continues to work without an internet connection and your pasted data never leaves your device.
Related tools