Website Change Feed avatar

Website Change Feed

Pricing

from $1.00 / 1,000 page checks

Go to Apify Store
Website Change Feed

Website Change Feed

Monitor public web pages without mandatory selectors. Get stable snapshots, readable text diffs, and explicit change states without false removals after temporary failures.

Pricing

from $1.00 / 1,000 page checks

Rating

0.0

(0)

Developer

Roman V

Roman V

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

2

Monthly active users

18 days ago

Last modified

Categories

Share

Turn public web pages into stable snapshots and change states. Use snapshot mode for normalized current content or changes mode to compare each successful check with a previous dataset and return NEW, UPDATED, UNCHANGED, or REMOVED.

Why this Actor

  • The default path needs only a URL. CSS selectors are optional.
  • Stable canonical_page_id and content_hash values make recurring checks deterministic.
  • Common navigation, header, footer, consent, popup, script, and style content is excluded before hashing by default.
  • Duplicate canonical URLs produce one result.
  • A temporary fetch failure never becomes a false removal. The prior page state is preserved in the next snapshot and the failure stays in OUTPUT.
  • Confirmed HTTP 404 and 410 responses are completed missing-page checks, so a previously existing page becomes REMOVED. They are not described as successful page fetches.
  • Gzip, deflate, and Brotli responses are decoded within the configured content limit. Binary-looking bodies mislabeled as text are rejected without billing.

Input

Add one to 100 public HTTP or HTTPS pages to urls. You can attach a label and an optional simple selector such as main, #pricing, or div.article.

For a recurring change feed, choose changes and pass the prior run's current_snapshot_dataset_id as previousDatasetId. A complete changes run stores a fresh full snapshot and reports its dataset ID in the OUTPUT summary. The delivery-aware rules below apply to capped or interrupted runs. You can also pass prior normalized records through previousPages, but do not use both inputs together.

Delivery-aware baselines

OUTPUT separates successfully checked pages from records whose delivery was confirmed. delivered_records and event_counts cover only confirmed primary dataset deliveries. carried_previous_pages counts selected pages whose prior state was retained, and unknown_state_records counts selected pages for which no safe state could be published.

When the pay-per-event limit stops delivery, an undelivered result never advances the monitoring baseline. If the page existed in the prior snapshot, that prior record is carried with a snapshot_carry_reason. A fetched but undelivered new page is not copied to the free current_snapshot dataset, so it can still produce a payable NEW result on a later run.

A capped run reports PARTIAL. When all selected pages still have safe state, snapshot_chainable is true and the new snapshot can be chained. If any page has unknown state, no partial secondary snapshot is published, snapshot_chainable is false, and a changes run retains the preceding dataset ID with snapshot_reference_kind: RETAINED_PREVIOUS. An incomplete first snapshot reports a null current_snapshot_dataset_id instead of advertising the partial default dataset as a complete baseline.

Use ignoreTextPatterns for volatile lines such as update timestamps. Patterns are case-insensitive and intentionally bounded. Browser rendering is not part of the first version, so pages that require JavaScript may return limited text.

Output

Every completed check includes its canonical URL, final URL, stable ID, change state, existence state, HTTP metadata, normalized title and text, content hash, and warnings. UPDATED results also contain bounded added and removed text lines. REMOVED results retain the previous title and text as evidence.

The default key-value-store record OUTPUT contains requested, successful, missing, failed, and deduplicated counts; delivery, carry, and unknown-state counts; event totals; explicit errors; and the next safe snapshot reference. Snapshot and OUTPUT storage failures are reported as non-chainable rather than exposing an unconfirmed dataset as a completed baseline.

An unchanged page and a confirmed 404 or 410 missing-page outcome are completed page checks and are returned as normal billable results. Failed, blocked, malformed-compression, unsupported-content, and binary-looking checks do not emit primary dataset results.

Safety and scope

This Actor reads public HTML, plain-text, and Markdown pages over HTTP or HTTPS. It rejects local, private, reserved, and non-public network destinations, including redirects. It caps redirects, request time, response size, concurrency, text size, and diff size. It does not log in, bypass access controls, accept cookies, or crawl links from a seed page.