Try our Chrome extension

Chrome store icon Chrome Webstore

Easily add the current web-page from your browser directly into your changedetection.io tool, more great features coming soon!

Changedetection.io needs your support!

You can help us by supporting changedetection.io on these platforms;

The more popular changedetection.io is, the more time we can dedicate to adding amazing features!

Many thanks :)

changedetection.io team

  • API Key was regenerated.
Default recheck time for all watches, current system minimum is 3 seconds (more info).

Want to use a time schedule? First confirm/save your Time Zone Settings
After this many consecutive times that the CSS/xPath filter is missing, send a notification
Set to 0 to disable
Limit collection of history snapshots for each watch to this number of history items.
Set to empty to disable / no limit
Password protection for your changedetection.io application.
Allow access to the watch change history page when password is enabled (Good for sharing the diff page)
When a request returns no content, or the HTML does not contain any text, is this considered a change?

Use the Basic method (default) where your watched sites don't need Javascript to render.

The Chrome/Javascript method requires a network connection to a running WebDriver+Chrome server, set by the ENV var 'WEBDRIVER_URL'.

If you're having trouble waiting for the page to be fully rendered (text missing etc), try increasing the 'wait' time here.
This will wait n seconds before extracting the text.
Number of concurrent workers to process watches. More workers = faster processing but higher memory usage.
Currently running: 5 operational async workers.
Example - 3 seconds random jitter could trigger up to 3 seconds earlier or up to 3 seconds later
For regular plain requests (not chrome based), maximum number of seconds until timeout, 1-999.
Applied to all requests.

Note: Simply changing the User-Agent often does not defeat anti-robot technologies, it's important to consider all of the ways that the browser is detected.
Ignore whitespace, tabs and new-lines/line-feeds when considering if a change was detected.
Note: Changing this will change the status of your existing watches, possibly trigger alerts etc.
Render anchor tag content, default disabled, when enabled renders links as (link text)[https://somesite.com]
Note: Changing this could affect the content of your existing watches, possibly trigger alerts etc.
  • Remove HTML element(s) by CSS and XPath selectors before text conversion.
  • Don't paste HTML here, use only CSS and XPath selectors
  • Add multiple elements, CSS or XPath selectors per line to ignore multiple parts of the HTML.
Note: This is applied globally in addition to the per-watch rules.
  • Matching text will be ignored in the text snapshot (you can still see it but it wont trigger a change)
  • Note: This is applied globally in addition to the per-watch rules.
  • Each line processed separately, any line matching will be ignored (removed before creating the checksum)
  • Regular Expression support, wrap the entire line in forward slash /regex/
  • Changing this will affect the comparison checksum which may trigger an alert
Remove any text that appears in the "Ignore text" from the output (otherwise its just ignored for change-detection)
Note: Changing this will change the status of your existing watches, possibly trigger alerts etc.

API Access

Drive your changedetection.io via API, More about API access and examples here.

Restrict API access limit by using x-api-key header - required for the Chrome Extension to work


API Key e6ec24955b893e874612c2bdf925d119

Chrome Extension

Easily add any web-page to your changedetection.io installation from within Chrome.

Step 1 Install the extension, Step 2 Navigate to this page, Step 3 Open the extension from the toolbar and click "Sync API Access"

Chrome store icon Chrome Webstore

Maximum number of history snapshots to include in the watch specific RSS feed.
For watching other RSS feeds - When watching RSS/Atom feeds, convert them into clean text for better change detection.
Does your reader support HTML? Set it here
'System default' for the same template for all items, or re-use your "Notification Body" as the template.
Body for all notifications — You can use Jinja2 templating in the notification title, body and URL, and tokens from below.
Show token/placeholders
Token Description
{{base_url}} The URL of the changedetection.io instance you are running.
{{watch_url}} The URL being watched.
{{watch_uuid}} The UUID of the watch.
{{watch_title}} The page title of the watch, uses <title> if not set, falls back to URL
{{watch_tag}} The watch group / tag
{{preview_url}} The URL of the preview page generated by changedetection.io.
{{change_datetime}} Date/time of the change, accepts format=, change_datetime(format='%A'), default is '%Y-%m-%d %H:%M:%S %Z'
{{diff_url}} The URL of the diff output for the watch.
{{diff}} The diff output - only changes, additions, and removals
All diff variants accept lines=, context=, word_diff=, ignore_junk= args, e.g. {{diff(lines=10)}}, {{diff_added(lines=5, context=2)}}
{{diff_clean}} The diff output - only changes, additions, and removals — Without (added) prefix or colors
{{diff_added}} The diff output - only changes and additions
{{diff_added_clean}} The diff output - only changes and additions — Without (added) prefix or colors
{{diff_removed}} The diff output - only changes and removals
{{diff_removed_clean}} The diff output - only changes and removals — Without (added) prefix or colors
{{diff_full}} The diff output - full difference output
{{diff_full_clean}} The diff output - full difference output — Without (added) prefix or colors
{{diff_patch}} The diff output - patch in unified format
{{diff_changed_from}} Only the changed words/values from the previous version — e.g. the old price. Best when a single value changes per line; multiple changed fragments are joined by newline.
{{diff_changed_to}} Only the changed words/values from the new version — e.g. the new price. Best when a single value changes per line; multiple changed fragments are joined by newline.
{{current_snapshot}} The current snapshot text contents value, useful when combined with JSON or CSS filters
{{triggered_text}} Text that tripped the trigger from filters

Warning: Contents of {{diff}}, {{diff_removed}}, and {{diff_added}} depend on how the difference algorithm perceives the change.
For example, an addition or removal could be perceived as a change in some cases. More Here

Ensure the settings below are correct, they are used to manage the time schedule for checking your web page watches.

UTC Time & Date from Server: 2026-09-03T20:03:07.304529+00:00

Local Time & Date in Browser:

Enable this setting to open the diff page in a new tab. If disabled, the diff page will open in the current tab.
Realtime UI Updates Enabled - (Restart required if this is changed)
Enable or Disable Favicons next to the watch list
Number of items per page in the watch overview list, 0 to disable.
How "Checked" and "Changed" times are shown in the watch overview list.
"Collapsed icon rail" keeps the left navigation slim and reveals labels on mouse-over; "Always expanded" keeps labels visible.

Tip: "Residential" and "Mobile" proxy type can be more successful than "Data Center" for blocked websites.

Extra Proxies
"Name" will be used for selecting the proxy in the Watch Edit settings
SOCKS5 proxies with authentication are only supported with 'plain requests' fetcher, for other fetchers you should whitelist the IP access instead

Extra Browsers can be attached to further defeat CAPTCHA's on websites that are particularly hard to scrape.
Simply paste the connection address into the box, More instructions and examples here

Extra Browsers

AI-powered change monitoring

Connect an LLM to move from "something changed" to "only the thing you care about changed".

Intent filtering

Each watch or tag can carry a plain-text intent — "notify me only when the price drops" or "alert when the item goes out of stock". On every detected change the AI evaluates the diff against it and suppresses irrelevant noise.

Tip: intent evaluation benefits from a capable model — recommended qwen2.5:7b locally, or gpt-4o-mini / gemini-2.0-flash. Very small models (≤3B) may misjudge numeric comparisons.

AI Change Summary

Instead of raw diffs, receive plain-language summaries in notifications — "Price dropped from $89 to $67" or "3 new items added to the listing". Set a global default prompt here, or override per watch or tag.

Minimal cost

The AI sees only a unified diff of what changed — never full page HTML. Low-cost models like gpt-4o-mini or Gemini Flash handle this well, typically fractions of a cent per check.

AI Provider

Master switch — when off, all AI lookups are skipped even if a provider is configured below.
Third-party data transfer — please read

When AI features are active, change data from the websites you monitor — including page diffs and extracted text — is sent to an external AI provider of your choice.

  • You are solely responsible for ensuring this complies with the terms of service of each website you monitor.
  • You are solely responsible for compliance with applicable data-protection laws (e.g. GDPR) regarding any personal data that may appear in monitored content.
  • API costs charged by your chosen provider are your own responsibility; this software has no visibility into or control over those charges.
  • AI / LLM models are known to hallucinate — producing plausible-sounding but factually incorrect or entirely fabricated output with apparent confidence — and by design may omit or truncate relevant data during summarisation. AI output must never be relied upon as complete or accurate. This software is provided as-is with no warranty of any kind.
  • By enabling AI features you personally indemnify and hold harmless the creator(s) and contributor(s) of this software from any claims, damages, or liability arising from this data transfer or your use of AI features.

Default AI Change Summary

Used for all watches unless overridden by the watch or its tag/group.  Modify default prompt

Behaviour

Configure a provider first to unlock behaviour settings.

Token & Cost Tracking

No AI usage recorded yet.

Token budget tokens per month (0 = unlimited)
Max input characters characters — currently enforcing: 100,000
Max tokens per watch per period tokens — skips AI evaluation on a watch once its usage within the current period (monthly) hits this cap (0 = unlimited)

Uptime: 2 hours, 40 minutes, 37 seconds

Python version: 3.11.16

Plugins active:

  • wordcount_plugin - Word count plugin for content analysis.
  • levenshtein_plugin - Levenshtein distance and similarity plugin for text change detection.
  • llm_restock - LLM fallback plugin for price and restock info extraction.