Try our Chrome extension
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;
- Rate us at AlternativeTo.net
- Star us on GitHub
- Follow us at Twitter/X
- G2 Software reviews
- Check us out on LinkedIn
- And tell your friends and colleagues :)
The more popular changedetection.io is, the more time we can dedicate to adding amazing features!
Many thanks :)
changedetection.io team
Not yet seconds ago
False
Not yet seconds ago
Triggered text Ignored text Blocked text
1 hour ago
* Change Detection.io CD IO
* Page Watches
* Watch Groups
* Import
* Browsers soon
* Search
* Queue
* Notifications
*
* Checking now:
*
* v0.60.10
* Running
* Alerts on
* Settings
*
* Toggle AI mode LLM Toggle light/dark mode
*
*
* Change Detection.io CD IO
* Page Watches
* Watch Groups
* Import
* Browsers soon
* Search
* Queue
* Notifications
*
* Checking now:
*
* v0.60.10
* Running
* Alerts on
* Settings
*
* Toggle AI mode LLM Toggle light/dark mode
* v0.60.10
Let us host your instance!
Try our Chrome extension
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;
* Rate us at AlternativeTo.net
* Star us on GitHub
* Follow us at Twitter/X
* G2 Software reviews
* Check us out on LinkedIn
* And tell your friends and colleagues :)
The more popular changedetection.io is, the more time we can dedicate to adding amazing features!
Many thanks :)
changedetection.io team
* General
* Fetching
* Global Filters
* UI Options
* API
* RSS
* Backups
* Time & Date
* CAPTCHA & Proxies
* AI / LLM
* Info
Time Between Check
Weeks
Days
Hours
Minutes
Seconds
Default recheck time for all watches, current system minimum is 3 seconds ( more info ).
Use time scheduler
Set a hourly/week day schedule
Schedule time limitsBusiness hours Weekends Reset
* Monday
Start At
0123456789101112131415161718192021222324 Hours
Run duration 01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 Minutes
* Tuesday
Start At
0123456789101112131415161718192021222324 Hours
Run duration 01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 Minutes
* Wednesday
Start At
0123456789101112131415161718192021222324 Hours
Run duration 01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 Minutes
* Thursday
Start At
0123456789101112131415161718192021222324 Hours
Run duration 01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 Minutes
* Friday
Start At
0123456789101112131415161718192021222324 Hours
Run duration 01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 Minutes
* Saturday
Start At
0123456789101112131415161718192021222324 Hours
Run duration 01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 Minutes
* Sunday
Start At
0123456789101112131415161718192021222324 Hours
Run duration 01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 Minutes
* Warning, one or more of your 'days' has a duration that would extend into the next day.
This could have unintended consequences.
* Optional timezone to run in
More help and examples about using the scheduler
Number of times the filter can be missing before sending a notification
After this many consecutive times that the CSS/xPath filter is missing, send a notification
Set to 0 to disable
Number of history items per watch to keep
Limit collection of history snapshots for each watch to this number of history items.
Set to empty to disable / no limit
Password
Password protection for your changedetection.io application.
Clear Snapshot History
Allow anonymous access to watch history page when password is enabled
Allow access to the watch change history page when password is enabled (Good for sharing the diff page)
Treat empty pages as a change?
When a request returns no content, or the HTML does not contain any text, is this considered a change?
Fetch Method
* Basic fast Plaintext/HTTP Client
* WebDriver Chrome/Javascript
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.
Wait seconds before extracting text
Number of fetch workers
Number of concurrent workers to process watches. More workers = faster processing but higher memory usage.
Currently running: 5 operational async workers (1 actively processing).
Random jitter seconds ± check
Example - 3 seconds random jitter could trigger up to 3 seconds earlier or up to 3 seconds later
Requests timeout in seconds
For regular plain requests (not chrome based), maximum number of seconds until timeout, 1-999.
Default User-Agent overrides
Plaintext requests
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 .
Tip: Connect using Bright Data proxies, find out more here.
Ignore whitespace
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
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 elements
* 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.
Ignore Text
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
Strip ignored lines
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.
API access token security check enabled
Restrict API access limit by using x-api-key header - required for the Chrome Extension to work
API Key 1c853715d8848df8d1fa216055137d8f
Regenerate API key
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 Webstore
Hide muted watches from RSS feed
Number of changes to show in watch RSS feed
Maximum number of history snapshots to include in the watch specific RSS feed.
Enable RSS reader mode
For watching other RSS feeds - When watching RSS/Atom feeds, convert them into clean text for better change detection.
RSS Content format
Plain TextHTMLHTML Color
Does your reader support HTML? Set it here
RSS body built from
System defaultNotification body
'System default' for the same template for all items, or re-use your "Notification Body" as the template.
RSS "System default" template override
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_open_url}} The Open Link Override set on the watch, otherwise the same as watch_url. Use this when the watched URL is an API endpoint or RSS feed but you want to link to the real page.
{{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-10-29T13:55:11.455769+00:00
Local Time & Date in Browser:
Default timezone for watch check scheduler
Open 'History' page in a new tab
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
Realtime UI Updates Enabled - (Restart required if this is changed)
Favicons Enabled
Enable or Disable Favicons next to the watch list
Disabling this can speed up your page fetches because the favicon does not need to be fetched.
Use page <title> in watch overview list
Enable watch "sharing"
This copies your watch to a temporary hosted database and returns a link to make sharing/copying the watch to other people
Pager size
Number of items per page in the watch overview list, 0 to disable.
Relative time format
Long (1 minute ago)Short (1m ago)
How "Checked" and "Changed" times are shown in the watch overview list.
Navigation sidebar
Expand on hoverAlways expandedStays minimal
"Collapsed icon rail" keeps the left navigation slim and reveals labels on mouse-over; "Always expanded" keeps labels visible.
BrightData offer world-class proxy services, "Data Center" proxies are a very affordable way to proxy your requests, whilst WebUnlocker can help solve most CAPTCHAs.
BrightData offer many many different types of proxies, it is worth reading about what is best for your use-case.
When you have registered, enabled the required services, visit the API example page, then select Python, set the country you wish to use, then copy+paste the access Proxy URL into the "Extra Proxies" boxes below.
The Proxy URL with BrightData should start with http://brd-customer...
When you sign up using https://brightdata.grsm.io/n0r16zf7eivq BrightData will match any first deposit up to $150
Collect public data at scale with industry-leading web scraping solutions and the world’s largest ethical proxy network.
Oxylabs also provide a WebUnlocker proxy that bypasses sophisticated anti-bot systems, so you don’t have to.
Serve over 195 countries, providing Residential, Mobile and ISP proxies and much more.
Use the promo code boost35 with this link https://oxylabs.go2cloud.org/SH2d for 35% off Residential, Mobile proxies, Web Unblocker, and Scraper APIs. Built-in proxies enable you to access data from all around the world and help overcome anti-bot solutions.
Tip: "Residential" and "Mobile" proxy type can be more successful than "Data Center" for blocked websites.
Extra Proxies
* Extra Proxies-0
* Name
Proxy URL
* Extra Proxies-1
* Name
Proxy URL
* Extra Proxies-2
* Name
Proxy URL
* Extra Proxies-3
* Name
Proxy URL
* Extra Proxies-4
* Name
Proxy URL
"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
* Extra Browsers-0
* Name
Browser connection URL
* Extra Browsers-1
* Name
Browser connection URL
* Extra Browsers-2
* Name
Browser connection URL
* Extra Browsers-3
* Name
Browser connection URL
* Extra Browsers-4
* Name
Browser connection URL
Overview Provider Prompts Behaviour Usage
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.
Configure AI Provider →
AI Provider
Enable AI / LLM features 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.
I have read and understood the above. I accept full responsibility and indemnify the creator(s) of this software.
Default AI Change Summary
Default AI Change Summary prompt
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: 23 minutes, 36 seconds
Python version: 3.11.17
Plugins active:
* conditions_default_plugin - No description available
* 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.
Select Language
Čeština Deutsch English (UK) English (US) Español Français Bahasa Indonesia Italiano 日本語 한국어 Polski Português (Brasil) Русский Türkçe Українська 中文 (简体) 繁體中文
Auto-detect from browser
Language support is in beta, please help us improve by opening a PR on GitHub with any updates.
Cancel
AI / LLM not configured
LLM-powered summaries are not yet enabled. Configure an AI provider in Settings to get started.
Go to AI / LLM Settings
Close
Search
URL, title or error text
Cancel Search
For now, Differences are performed on text, not graphically, only the latest screenshot is available.
Screenshot requires a Content Fetcher ( Sockpuppetbrowser, selenium, etc ) that supports screenshots.