RSS / Atom Feed Normalizer
Pricing
from $0.005 / actor start
RSS / Atom Feed Normalizer
Fetch and normalize public RSS 2.0, Atom 1.0, and RDF/RSS 1.0 feeds into consistent structured JSON. Handles mixed feed formats and returns a unified schema every time. Built for content aggregation, feed monitoring, and marketing automation pipelines.
Pricing
from $0.005 / actor start
Rating
0.0
(0)
Developer
Sanskar Jaiswal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Fetch and normalize public RSS 2.0, Atom 1.0, and RDF/RSS 1.0 feeds into consistent structured JSON. Auto-detects feed format and returns a unified schema regardless of source. No custom parsers needed per feed.
Use cases
- Content aggregation - merge feeds from multiple sources into one consistent schema
- Feed monitoring - track updates across many feeds with a single API call
- Marketing automation - pull blog and news feeds into scheduling pipelines
- News aggregation - normalize heterogeneous feeds before loading into a data warehouse
- Brand monitoring - track RSS feeds for mentions and updates
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
feedUrls | array<string> | yes | - | Public RSS/Atom/RDF feed URLs (max 50 per run) |
maxItemsPerFeed | integer | no | 20 | Max items to normalize per feed (1-100) |
timeoutSeconds | integer | no | 10 | Per-request timeout (3-30 seconds) |
Example input
{"feedUrls": ["https://hnrss.org/frontpage","https://blog.cloudflare.com/rss/"],"maxItemsPerFeed": 20,"timeoutSeconds": 10}
Output
Each feed produces one dataset item:
| Field | Type | Description |
|---|---|---|
inputUrl | string | The feed URL provided |
feedUrl | string | Final URL after redirects |
ok | boolean | Whether fetch and parse succeeded |
status | integer | HTTP status code |
format | string | Detected format: rss2, atom, rdf, or unknown |
finalUrl | string | Final URL after redirects |
contentType | string | HTTP content-type header |
checkedAt | string | ISO timestamp |
channel | object | Feed metadata: title, link, description, itemCount, itemsReturned |
items | array | Normalized feed items (see below) |
error | string | Error message on failure |
Normalized item fields
Every item has the same fields regardless of feed format:
| Field | Type | Description |
|---|---|---|
title | string | Item title |
link | string | Item URL |
guid | string | Unique identifier |
description | string | Summary or content text |
pubDate | string | Publication date in ISO 8601 format |
author | string | Author name or email |
categories | array | Category or tag strings |
Example output
{"inputUrl": "https://hnrss.org/frontpage","feedUrl": "https://hnrss.org/frontpage","ok": true,"status": 200,"format": "rss2","channel": {"title": "Hacker News: Front Page","link": "https://news.ycombinator.com/","description": "Hacker News RSS","itemCount": 30,"itemsReturned": 20},"items": [{"title": "Show HN: A new tool","link": "https://news.ycombinator.com/item?id=12345","guid": "https://news.ycombinator.com/item?id=12345","description": "Description text...","pubDate": "2026-07-06T12:00:00.000Z","author": null,"categories": []}]}
Security
- Only public HTTP/HTTPS feed URLs are accepted
- SSRF protection: localhost, private IPv4/IPv6 ranges, and DNS-resolving-to-private IPs are blocked
- URLs with embedded credentials (
user:pass@host) are rejected - Feed bodies capped at 2 MB per fetch
- No browser automation, no proxies, no login credentials
Pricing
Pay per event:
| Event | Price |
|---|---|
| Actor start | $0.005 |
| Feed normalized | $0.005 |
A run normalizing 10 feeds costs approximately $0.055.
FAQ
What feed formats are supported?
RSS 2.0, Atom 1.0, and RDF/RSS 1.0. The actor auto-detects the format and returns it in the format field.
What if a feed is down or returns an error?
The actor returns an item with ok: false and the error details. Other feeds in the same run continue normally.
Is there a limit on feed size? Feed bodies are capped at 2 MB per fetch. Most feeds are well under this limit.
Can I use this for authenticated or private feeds? No. This actor only fetches public feeds without credentials.