RSS Feed New Item Monitor: Alerts Since Last Run
Pricing
from $0.75 / 1,000 feed item returneds
RSS Feed New Item Monitor: Alerts Since Last Run
Monitor RSS, Atom and JSON feeds and get only the items that are new since your last run: title, link, date, summary and feed title, billed per new item and free on a quiet check. Blocked, missing and empty feeds are told apart.
Pricing
from $0.75 / 1,000 feed item returneds
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Features
Share
Watch any list of RSS, Atom or JSON feeds and get only the items that are new since your last run. Paste feed addresses, switch on monitoring, put the actor on a schedule: each run returns one row per new item with its title, link, publish date, summary and feed title, and a quiet check costs nothing. Feeds that block us, return 404 or are not feeds at all come back as a clearly labelled free row, so you can tell "nothing new" from "could not read it".
Who uses it
- No-code builders who need a "new post" trigger for an n8n, Make or Zapier flow without running their own feed poller.
- Competitor, press and changelog watchers who want an alert when a blog, a newsroom or a release feed publishes.
- AI agents and research pipelines that ingest fresh articles and must not re-read the same item twice.
Only public feeds are read, and nothing is fetched except the feed address you list.
How monitoring works
Turn on Only return items new since the last run. The actor remembers the item ids it has seen for each feed in a key-value store of its own, per watchlist and per feed, and forgets an id after 60 days of not seeing it. The first run returns what is currently in each feed (everything counts as new once); from the second run on you only get, and pay for, items that were not there before. Keyword filters are applied before an item is remembered, so an item you filtered out is not silently consumed.
How to use
- In the Apify Console. Open the actor page and click Start — the
feedsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~rss-new-item-monitor/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"feeds":["https://news.ycombinator.com/rss","https://feeds.bbci.co.uk/news/technology/rss.xml"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"feeds": ["https://news.ycombinator.com/rss","https://feeds.bbci.co.uk/news/technology/rss.xml"]}
One feed address per line. Each line is fetched once per run; every item in it is one row. Turn on monitoring below and run on a schedule to receive only items you have not seen before. Accepted formats: https://news.ycombinator.com/rss, feeds.bbci.co.uk/news/technology/rss.xml, https://www.theverge.com/rss/index.xml, https://daringfireball.net/feeds/json.
Each line is one feed, with or without https://. RSS 2.0, RSS 1.0, Atom and JSON Feed are all read. Keywords to include / skip match the item title, link, summary, author, categories and feed title. A feed holds at most its newest 200 items.
Output
One row per delivered item, for example:
{"query": "https://news.ycombinator.com/rss","found": true,"status": "OK","feedTitle": "Hacker News","feedUrl": "https://news.ycombinator.com/rss","feedFormat": "rss","itemCount": 30,"monitorStatus": "NEW_ITEMS","itemId": "https://news.ycombinator.com/item?id=50042219","title": "I paid people to try and follow my README","link": "https://shkspr.mobi/blog/2026/10/i-paid-people-to-try-and-follow-my-readme/","publishedAt": "2026-10-11T11:47:29.000Z","summary": "Comments","author": null,"categories": null,"isNew": true,"firstSeenAt": "2026-10-11T18:00:00.000Z","scrapedAt": "2026-10-11T18:00:01.000Z"}
Columns:
| query | found | status | feedTitle | feedUrl | feedFormat | itemCount | monitorStatus | items | itemId | title | link | publishedAt | summary | author | categories | isNew | firstSeenAt | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| https://news.ycombinator.com/rss | true | OK | <all items (full list)> | <is this item new?> | 1970-01-01T00:00:00.000Z |
Missing values are null, never 0 or an empty string. A feed that cannot be read comes back as a row with "found": false and a status, and is never charged: BLOCKED (the host answered 401/403/429/503 or served a bot-check page), NOT_FOUND (404), BAD_FORMAT (a web page, not a feed) or REQUEST_FAILED. A feed that is readable but has nothing new returns a found row with itemCount: 0, also free.
Pricing
Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed
per item only when data is actually found and returned — see
.actor/pay_per_event.json for exact prices. A miss is never charged.
Example runs
Paste any of these into the Input tab and press Start. All three return rows with no key, no token and no account of your own beyond an Apify login.
Two tech-news feeds, everything currently in them.
{"feeds": ["https://news.ycombinator.com/rss", "https://feeds.bbci.co.uk/news/technology/rss.xml"]}
An Atom feed and a JSON Feed, monitoring on (schedule this one daily).
{"feeds": ["https://www.theverge.com/rss/index.xml", "https://daringfireball.net/feeds/json"],"onlyNewSinceLastRun": true,"deltaName": "design-and-apple-news"}
One feed, only items that mention a keyword, monitoring on.
{"feeds": ["https://news.ycombinator.com/rss"],"includeKeywords": ["rust", "sqlite"],"onlyNewSinceLastRun": true}
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~rss-new-item-monitor/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"feeds":["https://news.ycombinator.com/rss","https://feeds.bbci.co.uk/news/technology/rss.xml"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~rss-new-item-monitor/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"feeds":["https://news.ycombinator.com/rss","https://feeds.bbci.co.uk/news/technology/rss.xml"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~rss-new-item-monitor/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"feeds":["{{feed}}"]}, mapping the row's feed into the feeds array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "rss feed new item monitor" — the agent will find and run this actor.