v0.44
Default time for all watches, when the watch does not have a specific time setting.
Example - 3 seconds random jitter could trigger up to 3 seconds earlier or up to 3 seconds later
After this many consecutive times that the CSS/xPath filter is missing, send a notification
Set to 0 to disable
Password protection for your changedetection.io application.
Allow access to view watch diff page when password is enabled (Good for sharing the diff page)
Base URL used for the {{ base_url }} token in notifications and RSS links.
Default value is the ENV var 'BASE_URL' (Currently ""), read more here.
Number of items per page in the watch overview list, 0 to disable.
Note: This will automatically apply to all existing watches.
When a page contains HTML, but no renderable text appears (empty page), is this considered a change?
  • Use AppRise URLs for notification to just about any service! Please read the notification services wiki here for important configuration notes.
  • discord:// only supports a maximum 2,000 characters of notification text, including the title.
  • tgram:// bots cant send messages to other bots, so you should specify chat ID of non-bot user.
  • tgram:// only supports very limited HTML and can fail when extra tags are sent, read more here (or use plaintext/markdown format)
  • gets://, posts://, puts://, deletes:// for direct API calls (or omit the "s" for non-SSL ie get://)
  • Accepts the {{token}} placeholders listed below
Title for all notifications
Body for all notifications
Format for all notifications

You can use Jinja2 templating in the notification title, body and URL.

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 title of the watch.
{{watch_tag}} The watch label / tag
{{preview_url}} The URL of the preview page generated by changedetection.io.
{{diff_url}} The URL of the diff output for the watch.
{{diff}} The diff output - only changes, additions, and removals
{{diff_added}} The diff output - only changes and additions
{{diff_removed}} The diff output - only changes and removals
{{diff_full}} The diff output - full difference output
{{current_snapshot}} The current snapshot value, useful when combined with JSON or CSS filters
{{triggered_text}} Text that tripped the trigger from filters

URLs generated by changedetection.io (such as {{diff_url}}) require the BASE_URL environment variable set.
Your BASE_URL var is currently ""
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

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'.


Tip: Connect using BrightData Proxies, find out more here.
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.
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 selector before text conversion.
  • Add multiple elements or CSS selectors per line to ignore multiple parts of the HTML.
Note: This is applied globally in addition to the per-watch rules.
  • 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
  • Use the preview/show current tab to see ignores

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

Restrict API access limit by using x-api-key header


API Key e5a363d386f36ca26120786220a184fc

Tip: You can connect to websites using BrightData proxies, their service WebUnlocker will solve most CAPTCHAs, whilst their Residential Proxies may help to avoid CAPTCHA altogether.

It may be easier to try WebUnlocker first, WebUnlocker also supports country selection.

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 example URL 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

"Name" will be used for selecting the proxy in the Watch Edit settings