Reference · Tools

RSS Feed Read

Fetches and parses RSS 2.0, RSS 1.0 (RDF), and Atom feeds from a URL, returning each feed item as structured data.

Action Core Nodes v1

RSS Feed Read fetches a feed URL and parses it — RSS 2.0, RSS 1.0 (RDF) or Atom — returning each entry as a structured item. It needs no credentials. A typical build is reading a set of industry blogs on demand and summarising what is new.

Node type
Action
Parameters
3
Outputs
Output, Error
Credentials
None required

RSS Feed Read

Reads and parses RSS/Atom feeds from a URL.

Overview

The RSS Feed Read tool fetches an RSS or Atom feed from a given URL and parses it into structured JSON items. Each feed item (article, post, episode, etc.) becomes a separate output item with fields like title, link, pubDate, content, contentSnippet, creator, guid, and isoDate. Supports custom field extraction from non-standard feed elements. No authentication is required for public feeds. Uses the rss-parser npm package internally.

Category: Core Nodes
Tool Name: rss_feed_read
Version: 1

Appearance: Icon: lucide-Rss | Color: #ff6600

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool does not require any credentials.

Parameters

ParameterTypeRequiredDefaultDescription
URLstringYesURL of the RSS or Atom feed to read. Supports expressions like {{ $json.feedUrl }}.
OptionscollectionNo{}Extra parsing settings.
— Custom FieldsstringNoA comma-separated list of custom XML element names to extract from each feed item. For example, “author, contentSnippet, myCustomTag”.
— Ignore SSL Issues (Insecure)booleanNofalseWhether to ignore SSL/TLS certificate validation errors. Useful for self-signed certificates.
Max ConcurrencynumberNo10Maximum number of input items to process concurrently.

Output Data

This node fans out: one output item per feed entry. A single input item pointing at a feed with 40 articles produces 40 output items. A feed with no entries produces none, and that is not an error. Binary data from the input item is forwarded onto every output item.

Each output item’s JSON is the parsed feed entry itself — the input item’s own JSON is not merged in. The exact fields depend on what the feed publishes; common ones are:

{
  "title": "Release 4.2 is out",
  "link": "https://blog.example.com/release-4-2",
  "pubDate": "Mon, 04 Aug 2026 09:15:00 GMT",
  "isoDate": "2026-08-04T09:15:00.000Z",
  "creator": "Dana Whitfield",
  "guid": "https://blog.example.com/release-4-2",
  "content": "<p>Full HTML body of the entry…</p>",
  "contentSnippet": "Full plain-text body of the entry…"
}
  • content holds the entry’s HTML; contentSnippet holds the same text with the markup stripped.
  • isoDate is the normalized timestamp — prefer it over pubDate for sorting and comparisons, since pubDate is whatever string the publisher wrote.
  • Any element named in Custom Fields is added as a field of the same name, which is how you reach elements the RSS and Atom specs do not define.

Reference an entry downstream by expression, e.g. {{ $json.title }}.

Usage Examples

  • Read the latest posts from a blog RSS feed
  • Parse an Atom feed to extract article titles and links
  • Monitor a news feed for new items
  • Extract custom fields from a podcast RSS feed

Example Configuration

Read a public feed:

{
  "type": "rss_feed_read",
  "parameters": {
    "url": "https://feeds.bbci.co.uk/news/rss.xml"
  }
}

Pull extra elements out of each entry:

{
  "type": "rss_feed_read",
  "parameters": {
    "url": "https://example.com/blog/feed.xml",
    "options": {
      "customFields": "author, contentSnippet, category",
      "ignoreSSL": false
    }
  }
}

Read an internal feed served with a self-signed certificate:

{
  "type": "rss_feed_read",
  "parameters": {
    "url": "https://internal.company.example/news/feed.rss",
    "maxConcurrency": 5,
    "options": {
      "ignoreSSL": true,
      "customFields": "department, priority"
    }
  }
}

Read a feed whose URL comes from an upstream item:

{
  "type": "rss_feed_read",
  "parameters": {
    "url": "{{ $json.feedUrl }}",
    "maxConcurrency": 15,
    "options": {
      "customFields": "category, pubDate, guid"
    }
  }
}

Read a podcast feed:

{
  "type": "rss_feed_read",
  "parameters": {
    "url": "https://podcast.example.com/feed/",
    "options": {
      "customFields": "author, contentSnippet, enclosure"
    }
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Fetches and parses an RSS or Atom feed URL into structured JSON items; use when you need to read blog posts, news articles, or podcast episodes from a feed.

Key Usage Notes

  1. URL Format: The url parameter must be a complete URL starting with http:// or https://
  2. Custom Fields: Use customFields to extract additional XML elements that aren’t part of standard RSS/Atom specification
  3. SSL Certificates: Set ignoreSSL to true only when dealing with self-signed or invalid certificates in trusted environments
  4. Concurrency: Adjust maxConcurrency based on the feed server’s capacity and your processing requirements
  5. Feed Types: Supports RSS 2.0, RSS 1.0 (RDF), and Atom feeds automatically

Frequently asked questions

What URL format is required?

A complete URL starting with `http://` or `https://`. A bare domain or a relative path will not resolve.

Can I extract non-standard elements?

Yes — use Custom Fields to pull additional XML elements that are not part of the standard RSS or Atom specification, which many publishers add.

What about feeds with certificate problems?

There is an option to ignore SSL issues, but only enable it for feeds you control — it disables certificate verification for that request.

How is this different from the RSS Feed Trigger?

This reads a feed when the workflow runs. The trigger starts a workflow when new items appear, which is what you want for monitoring rather than fetching.

Build with the RSS Feed Read node

Drop it into a workflow, wire it to an agent, or call it on a schedule.

Open BusyBot

Last updated . Spotted something wrong? Tell us.