Per URL, changedetection.io is the cheapest thing in the category and it is not close. The costs it does not charge you for are the server and the IP address, and on a protected retailer those are the two that decide whether the watch works.
If you are looking for a changedetection.io alternative on price, stop now, because you will not find one. Their hosted plan is $8.99 a month for up to 5,000 URLs. The software itself is Apache-2.0 on GitHub, so self-hosting costs nothing but a server. That works out at under a fifth of a US cent per URL per month. The reason to look elsewhere is the two costs it leaves off the invoice. The machine it runs on, and the IP address it runs from. All figures here were read from changedetection.io and its GitHub repository on 10 September 2026.
Two products share the name and they are priced completely differently. The hosted service is one plan at $8.99 a month, sold as "Cancel anytime" with "5,000 URL watches included". Yearly billing is advertised as two months free. There is no free tier and no trial period stated on the page. The self-hosted project is the same codebase under Apache-2.0, at 33.8k stars on GitHub, installed by Docker or pip.
| Hosted | Self-hosted | |
|---|---|---|
| Price | $8.99 a month | Free, Apache-2.0 |
| URLs | Up to 5,000 | Whatever your server takes |
| Re-check | "from 5~ minutes (per runner)" | Your setting, your hardware |
| Chrome for JavaScript pages | One real browser included | A second container you run |
| Proxies | European, USA and Tor included | You buy and configure them |
| Notifications | "Over 85 different notification types" | The same, via the Apprise library |
Set that against Visualping, one of the two tools changedetection.io names itself an open-source alternative to. Visualping's Personal 5K is $35 a month for 20 pages, read from its pricing page on 10 September 2026. That is $1.75 a page. changedetection.io is $0.0018. Same job, nearly a thousand times the price per page. Our Visualping alternative page has the arithmetic on the check allowances, and the five-tool comparison puts all of them in one table.
Because the price is per subscription and the speed is per runner. The homepage says re-check times "from 5~ minutes (per runner - with the ability to easily add more Chrome Browsers)". The 5,000 URLs and the five minutes are two separate allowances. One runner works through its queue at whatever rate it manages. Their own fix for wanting it faster is to add more browsers, which means more machine and more money.
For a Warhammer pre-order or a Pokemon drop, five minutes is already too slow, and that is before the queue. A limited run can be gone in ninety seconds. Every tool here has a version of that problem, ours included. Why restock alerts arrive too late sets out where each delay comes from. The point here is narrower: the 5,000-URL figure answers a different question from the one a restock buyer is asking.
This is what decides whether restock monitoring on a real UK retailer works at all, and the price comparison hides it completely. changedetection.io is straight about the problem in its own tutorial:
Some websites restrict access based on geographic location or traffic patterns, leading to blocked requests and incomplete monitoring.
The fix it offers is a proxy scanner. It tries your proxies and tells you which ones get through, which is a useful thing to have. It does assume you already own some, and the README recommends buying them: "We recommend and use Bright Data global proxy services". Bright Data's own proxy pricing page, read on 10 September 2026, lists residential at $4.00 a GB pay as you go. That is marked as half off an $8 list rate. The cheapest datacenter plan on the same page is 10 IPs for $18 a month.
So the $8.99 subscription buys roughly 2.2GB of residential traffic at today's discounted rate. The cheapest datacenter bundle costs twice the subscription. On a Cloudflare or DataDome shop the proxy is not an optional extra, it is the thing that makes the watch work. Our page on why a website says verify you are human explains why a fetcher gets a hard block where a browser gets a puzzle. That is the mechanism underneath all of this.
changedetection.io reads the page. Its README describes the restock feature as an option that "will extract any meta-data in the HTML page and give you many options to follow the pricing of the product". That means product schema markup and page text. It is a smart approach, and it works on any shop that publishes that markup, whatever platform the shop runs on.
We read the shop instead. On a Shopify store that is the product feed, on WooCommerce the Store API, on Magento and BigCommerce their GraphQL endpoints. Stock arrives as a field per variant rather than as a region of a page that moved. The difference shows up on the shops that hide it. Patagonia's listing feed only carries in-stock SKUs, so a size returning is a row appearing rather than a word changing. Seasalt says outright that a sold-out line is unlikely to restock, while returns keep reappearing on the page anyway.
| Coverage | How stock is read | Per-size detection | When a shop redesigns | Bot walls | |
|---|---|---|---|---|---|
| changedetection.io | Any URL on the internet | Metadata and text in the page HTML | Only if the page publishes it | The filter may need rewriting | Bring your own proxies |
| StockWatch | Supported platforms and named shops | The shop's own product API | Yes, where the shop exposes variants | The API rarely moves with the theme | Handled per site in the plugin |
Plenty, and pretending otherwise would be daft when the source code is public. It points at any page on the internet, which we cannot do outside the platforms we support. It is Apache-2.0, so your watch list and your history stay on your own machine and nobody can change the pricing on you. Browser Steps will log in and click through a flow before it reads the page. Its notifications run through Apprise, which covers Telegram, Matrix, ntfy, Slack, Office 365 and dozens more. We do Discord, email, push and Telegram, and stop there.
If you want to watch 300 documentation pages, a competitor's careers board and a council planning portal, self-host it. That is the job it was built for and it does it very well.
When you do not want to run a server. Or when the shops you watch sit behind a bot wall and the thing you want sells out in under five minutes. Those sound like two problems and they are one. Somebody has to keep a clean, fast route into a shop that would rather not be read, and self-hosting makes that your job.
StockWatch is 5 monitors free with a 60-second floor and 30 emails a month. Standard is £4 a month for 50 monitors at 15 seconds, and Power is £20 a month for unlimited monitors at 5 seconds. Nothing is metered by check count, so a monitor running every 60 seconds all month costs the same as one running once a day. On the free plan you still supply the network path yourself, which is the same constraint changedetection.io has. On the paid plans it is our bill instead of yours.
Find out what the shop runs on
Add /products.json to a Shopify domain, or look for wp-json on a WooCommerce one. If it answers, there is a product feed behind the page you were diffing.
Paste the product link
One box takes a product URL and routes it to the plugin that owns that shop. There is no monitor type to pick and no CSS selector to write.
Set the interval to what your plan allows
60 seconds on free, 15 on Standard, 5 on Power. There is no monthly check budget to ration.
Point it at Discord or Telegram
A webhook lands in a channel in about a second. Email is slower, and the free plan includes 30 a month.
Keep the self-hosted instance for everything else
Documentation, forums, job boards, council portals and anything outside a supported shop. The two tools are not really competing for the same watch.
The self-hosted version is, under the Apache-2.0 licence, and you run it on your own hardware. The hosted service is a single plan at $8.99 a month for up to 5,000 URLs. No free tier was advertised on the site as of 10 September 2026.
The hosted plan advertises re-check times "from 5~ minutes (per runner - with the ability to easily add more Chrome Browsers)". Self-hosted you pick the interval. The practical floor is whatever your server and your IP address will stand before a shop starts refusing you.
Not on its own. Its answer to a 403 is a proxy scanner that tests proxies you have supplied, and its README recommends buying them from Bright Data or Oxylabs. That is a fair design decision for an open-source project. It does mean the real cost of watching a protected shop is the proxy bill rather than the software.
Yes. There is a "Re-stock & Price detection for single product pages" option that pulls metadata out of the page HTML. The site has tutorials for UNIQLO, Ubiquiti, BestBuy and Kmart. It works on any shop that publishes that metadata, which is most of them.
For plain pages, easily. For protected retail sites, work out the proxy bill first. Bright Data residential was $4.00 a GB pay as you go on 10 September 2026, at half off the $8 list rate. A few gigabytes a month costs more than every hosted plan named on this page.
Watch a product for free 5 monitors, 60-second checks, no card. Paste a product link and we work out the rest.