# Changelog of RSS Feed Scraper API & Incremental Monitor (`automa-flow/rss-feed-monitor`) Actor

- **URL**: https://apify.com/automa-flow/rss-feed-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/automa-flow/rss-feed-monitor.md

## Changelog

### 2026-10-10: Fewer failed runs from cookie redirects and input slips (0.1.14)

#### Fixes

- Some publishers put their feed behind a CDN that first answers with a cookie
  and a redirect back to the same URL. The Actor dropped that cookie, so the
  feed redirected in a loop and its `feed_summary` ended `FAILED` with
  `TOO_MANY_REDIRECTS`. The cookie is now sent back within that one redirect
  chain, so these feeds return their items. Cookies are kept only for the
  current feed request, are never sent to another host, and are never stored
  or written to the output.
- A `monitor` run started from the Console or the API without `monitorId`, and
  outside a saved Task, no longer fails. The watchlist itself becomes the
  monitoring scope: running the same feeds again keeps their history, and
  adding or removing a feed starts a new `BASELINE`. Set `monitorId` if the
  history should continue while the list changes. Runs that already use
  `monitorId` or a saved Task keep their existing history.
- A feed URL pasted without `https://`, such as `example.com/feed.xml`, is now
  read as `https://example.com/feed.xml` instead of being rejected. When every
  row was missing the scheme, the whole run used to fail.

#### Improvements

- When no feed can be checked, the run's status message now names the per-feed
  error codes, for example `per-feed errors: 1 BLOCKED`, and `RUN_SUMMARY`
  counts them in `errorCodes`. Each `feed_summary` row still carries the full
  error for its feed.
- `RUN_SUMMARY.monitorScopeSource` shows whether a monitor run used
  `monitorId`, the saved Task or the watchlist.

Prices, charged events and the output of feeds that already worked are
unchanged.

### 2026-09-04: RSS, Atom and JSON Feed scraper and monitor

#### Features

- Parse up to 1,000 RSS 2.0, Atom 1.0, JSON Feed 1.1 and common RSS 1.0 (RDF)
  feeds per run into one normalized `feed_item` format, with one
  `feed_summary` per input feed.
- `snapshot` mode returns the current items. `monitor` mode remembers the last
  successful state of each feed and labels items `BASELINE`, `NEW_ITEM`,
  `UPDATED_ITEM` or `UNCHANGED`, and `changesOnly` output returns only new and
  updated items.
- Conditional `ETag` and `Last-Modified` requests: an unchanged feed answering
  `304 Not Modified` is not downloaded again.
- Optional feed discovery from one homepage's declared `<link rel="alternate">`.
- Pay per successful feed check and per delivered item. Failed, blocked,
  invalid and skipped feeds are not charged.

Later September builds updated the Store listing, README and dependency pinning;
feed behavior was unchanged.
