Favicon of changedetection.io

changedetection.io

Open-source, self-hosted website change detection tool. Monitor pages for price, stock, or content changes and get alerts via Discord, Slack, email, and more.

Open Source Alternative to:
changedetection.io website screenshot
changedetection.io GitHub repository preview

changedetection.io is a self-hosted application for tracking changes on web pages and getting notified when they happen. It's built for developers, sysadmins, and anyone who wants to monitor prices, stock levels, job postings, government notices, or any other page content without relying on a paid SaaS service. It runs as a Docker container or Python package and stores watch data locally.

Key features

  • Multiple fetchers: switch per-watch between a fast non-JS HTTP fetcher and a Chrome-based fetcher (Playwright or WebDriver) for JavaScript-heavy sites.
  • Filtering and targeting: use CSS selectors, XPath 1/2, JSONPath, or jq to isolate the exact part of a page or JSON response you care about.
  • Visual Selector: click on page elements in a browser view to define what to monitor, instead of writing selectors by hand.
  • Browser Steps: script interactions like logging in, clicking buttons, or filling forms before the change check runs.
  • Restock and price tracking: extract product metadata automatically and set alerts for price drops, price ranges, percentage changes, or back-in-stock events.
  • Conditional triggers: fire notifications only when a value crosses a threshold or a keyword appears/disappears.
  • Scheduling: limit checks to specific timezones, days of the week, or business hours, with shortcut presets for common schedules.
  • Notifications via Apprise: send alerts to Discord, Slack, Telegram, email, Microsoft Teams, custom webhooks, and many other services, with Jinja2 templating for message content.
  • PDF monitoring: track text changes, filesize, and checksums in PDF files.
  • JSON API monitoring: parse and diff JSON responses, including JSON embedded inside HTML (like schema.org product data).
  • RSS output: turn watched changes into an RSS feed.
  • Chrome extension: add the current page you're browsing directly to your running instance.

Ideal use cases

  • Tracking price drops or restocks on e-commerce product pages, including sneakers, collectibles, or electronics.
  • Watching government, university, or company pages for updates that don't show up in any mailing list or RSS feed.
  • Monitoring job boards or a company's careers page for new postings with specific keywords.
  • Detecting changes in JSON APIs, useful for gluing together services that lack webhooks.
  • Watching legal documents, terms of service, or security advisories for unannounced edits.
  • Building your own change-triggered automation by pairing the webhook/JSON notification output with another system.
  • Not a good fit if you need a fully managed service with zero maintenance, though a hosted subscription option exists outside the open-source project. It also isn't built for high-frequency (sub-minute) monitoring at scale across thousands of URLs without tuning proxy and fetcher settings yourself.
  • Not ideal if the target site requires solving CAPTCHAs or has aggressive anti-bot measures that even a Chrome-based fetcher and proxy can't get past.

Installation

Docker Compose (recommended):

docker compose up -d

Docker standalone:

docker run -d --restart always -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io

Use the :latest tag for the stable release or :dev for the current master branch. An alternate image is available at ghcr.io/dgtlmoon/changedetection.io.

Python pip:

pip3 install changedetection.io
changedetection.io -d /path/to/empty/data/dir -p 5000

After install, visit http://127.0.0.1:5000 to reach the UI. Windows users can follow the dedicated wiki instructions. To update a Docker install, pull the latest image, remove the old container, and run it again, or use docker compose pull && docker compose up -d if using compose.

Frequently asked questions

Share:

Stars
35.1K
Forks
2.2K
Last commit
1 day ago
Repository age
6 years
License
Apache-2.0
Self-hosted
Yes
Activity score
84/100
View Repository
Ad
Favicon

 

  
 

Similar to changedetection.io

Favicon

 

  
 
Favicon

 

  
 
Favicon