Docs & Changelog Watcher to Change Records avatar

Docs & Changelog Watcher to Change Records

Under maintenance

Pricing

Pay per event

Go to Apify Store
Docs & Changelog Watcher to Change Records

Docs & Changelog Watcher to Change Records

Under maintenance

Track changes across docs, changelogs & API references you own or are authorized to monitor. Deterministic sha256 delta detection emits structured change records (added/removed/modified) per section, not noisy visual diffs. Schedule it; pay only for pages that changed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Adam

Adam

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

15 days ago

Last modified

Share

Watch documentation and changelog pages and turn what changed between runs into clean, structured change_record rows. The diff is deterministic and content-hash based, so re-running on unchanged pages produces nothing and changed sections are pinpointed exactly.

What it does

For each source page you give it, every run:

  1. Fetches the page over HTTP (no API key) and reduces the HTML to text.
  2. Segments the text into sections by heading, and token-chunks each section into { section_path, chunk_text } units.
  3. Loads the prior run's snapshot (a list of { section_path, content_hash }) for that page from the Apify Key-Value Store.
  4. Computes the delta against that snapshot:
    • added — a section path (or content) that was not in the prior snapshot.
    • removed — a prior section path that is absent this run.
    • modified — same section path, different content hash.
    • On the first run (no prior snapshot) every section is reported as added.
  5. Emits one change_record per delta. Unchanged sections emit nothing.
  6. Stores the new snapshot back to the Key-Value Store for the next run.
  7. Writes one run_summary with the run totals.

Pages that fail to fetch are skipped (and not billed), so one bad URL never fails the whole run.

Deterministic core

The change detection is a pure function, offline-testable with no network, no LLM, and no API keys:

diffChunks(prevHashes, currentChunks) -> [ change_record, ... ]
  • prevHashes — the prior snapshot: either [{ section_path, content_hash }] or a bare ['sha256:...', ...] array.
  • currentChunks[{ section_path, chunk_text }] from segmentDoc.
  • Hashing uses core.js contentHash; chunking uses core.js chunkText.

Same input always yields the same hashes and the same diff (idempotent).

Input

FieldTypeRequiredDescription
sourcesarrayYesDocs/changelog page URLs to watch. Each item is a URL string or { url }.
segmentationobjectNo{ maxTokens, overlapTokens } controlling section chunk size and overlap before hashing/diffing.
ownership_attestationbooleanYesYou must confirm you own / are authorized to monitor these pages and will honor each site's terms. The run is rejected before any work or billing if this is not true.

Output

Every record has a record_type field.

change_record — one per detected delta:

FieldTypeDescription
record_typestringAlways "change_record".
change_typestring"added", "removed", or "modified".
source_urlstringThe page the change was found on.
section_pathstringThe section heading path the change belongs to.
old_content_hashstring|nullPrior section content hash (null for added).
new_content_hashstring|nullCurrent section content hash (null for removed).
chunk_textstringCurrent section text (empty for removed).

run_summary — exactly one per run:

FieldTypeDescription
record_typestringAlways "run_summary".
pages_checkedintegerPages successfully fetched and diffed.
pages_changedintegerPages with at least one delta this run.
changes_emittedintegerTotal change_record rows produced.

Pricing

This Actor uses Pay-Per-Event pricing:

EventWhen it firesPrice
actor_run_startOnce per run, after the gates pass$0.02
page_changedPer watched page that had at least one detected change this run$0.01

Pages with no detected changes contribute count 0 and are not billed — no $0 events are ever emitted. Pages that fail to fetch cost $0.

Example run: checking 10 pages of which 3 changed = $0.02 (run start) + 3 x $0.01 (changed pages) = $0.05 total.

Why this Actor

  • Deterministic deltas. Changes come from content-hash comparison of the same section across runs, so output is stable and idempotent.
  • Nothing is invented. Sections and text are parsed straight from the page; missing data stays empty rather than fabricated. No LLM, no API keys.
  • Compliance built in. A required ownership/authorization attestation rejects the run with zero billing if not confirmed.
  • Change-feed ready. Output is already a per-section change feed you can pipe into alerts, embeddings refresh, or RAG re-indexing.

About

This Actor is AI-authored and operated under the publisher's LLC. Actor.charge() is used only to bill the customer for the Pay-Per-Event units described above — the Actor has no payout or money-out capability of any kind.