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

3

Total users

2

Monthly active users

3 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. Each changes run stores a fresh full snapshot and reports its dataset ID in the OUTPUT summary. You can also pass prior normalized records through previousPages, but do not use both inputs together.

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; event totals; explicit errors; and the next full-snapshot dataset ID.

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.