ScreenshotNeo

BlogGuides

Is Urlwatch Free to Use, and What Does It Cost to Run?

Urlwatch is free software; your running costs depend on where it runs, how often it checks, and which notification services you choose.

By the ScreenshotNeo team4 October 20266 min read

Yes. The urlwatch project is free software you can install with pip. It does not have a universal monthly subscription price. Your cost depends on where you run it, how often it checks pages, and whether your notification method or optional features have separate costs. If you use a computer you already keep on, you may have no new hosting expense; an always-available rented server has whatever price its provider charges. The project documentation does not publish a representative monthly total.

There is also a separate hosted service called URLWatch.io. Its plans are not fees for the urlwatch open-source project.

What is urlwatch?

urlwatch periodically retrieves and filters job output, compares it with a saved prior result, and reports changes. Reports can include the changed URL and a unified diff. A job can fetch a URL, use a headless browser for JavaScript-heavy pages, or run a shell command. Filters support different kinds of output, including HTML, PDF, JSON, calendar, binary, and text.

It is typically scheduled with cron on Unix-like systems or Task Scheduler on Windows. The handbook recommends not running it more often than every 30 minutes. That is scheduling guidance, not a charge or a guarantee that a particular site permits that frequency.

What can running it cost?

Cost area When it may cost money What to check
Machine or hosting You rent an always-on server or use a paid hosting plan. Use the provider’s current price for the machine and any storage or network charges. The urlwatch docs do not prescribe a server size or price.
Scheduling frequency More frequent checks may increase compute or network use and load on the monitored site. Choose an interval appropriate for the page and respect the project’s guidance not to run more often than every 30 minutes.
Notifications A selected email or messaging provider has its own pricing or account terms. Check the provider directly. Reporter choices include terminal, email, Slack, Discord, Telegram, Matrix, Pushover, XMPP, shell, and others.
Optional capabilities A feature needs an additional package or an external service. Check the current dependency documentation for browser jobs, selected reporters, PDF text extraction, OCR, and JSON jq filtering.

The project has required Python package dependencies as well as additional packages for selected optional functions. Those packages are software dependencies; the docs do not say that special hardware is required. Third-party service charges, where applicable, are separate from the software’s license and installation.

Install and schedule urlwatch

The current installation instructions use Python 3.9 or newer and pip. The handbook identifies itself as urlwatch 2.29; package requirements and versions can change, so check the current official pages when setting up a new installation.

  1. Install Python 3.9 or newer.
  2. Install or upgrade urlwatch:
python -m pip install --upgrade urlwatch
  1. Run urlwatch --edit to configure the jobs you want to monitor, following the current handbook’s configuration format.
  2. Run urlwatch manually and confirm that the jobs and reporters work.
  3. Schedule it with cron or Windows Task Scheduler at an interval suitable for your use case. Keep the process’s configuration and state available to the scheduled account.

Required dependencies listed in the project documentation include PyYAML, minidb, requests, keyring, platformdirs, lxml, and cssselect. Let pip install the dependencies declared for the version you install rather than assuming this list will remain unchanged.

Estimate your own monthly cost

There is no single urlwatch price to multiply by a usage count. Estimate the incremental cost for your own setup:

  1. Choose where it runs. If you already have a suitable machine available, count any added electricity or operational cost that matters to you. If you rent a server, use that provider’s current monthly charge.
  2. Choose a schedule. The schedule determines how often jobs run. More frequent runs can consume more resources and generate more requests.
  3. Choose reporters. Terminal output has no messaging-provider account; email and third-party messaging integrations may have separate terms or fees.
  4. Add optional dependencies only when needed. Check whether browser automation, PDF extraction, OCR, or another optional function changes your software or infrastructure requirements.
  5. Include maintenance. Someone must keep the host available, update the installation, preserve its state, and respond if jobs or notifications stop working. This is operational effort rather than a published urlwatch fee.

For example, a person scheduling checks on an existing always-on computer and using terminal reports may have no new hosting or notification bill. A deployment on a rented server with a paid notification provider will have costs set by those providers. Neither example implies a standard monthly total.

urlwatch versus a hosted monitoring service

With urlwatch, you choose the machine, schedule, configuration, and reporters, and you maintain its availability and updates. A hosted service may bundle infrastructure and monitoring under a subscription, but its limits, check intervals, notification options, and monitored behavior depend on that service’s plan.

URLWatch.io is a distinct hosted monitoring service with its own advertised plans. Do not treat those plan prices as the cost of installing or running the thp/urlwatch project. Compare the current plan details directly if considering that service.

When a screenshot API is a better fit

Urlwatch is for detecting changes in retrieved or filtered output. If the task is to capture a page as an image or PDF, ScreenshotNeo is the ScreenshotNeo option to try first: it removes cookie banners, popups, and chat widgets before capture, and only clean shots are billed. A screenshot is a visual record; it is not a replacement for urlwatch’s change comparison and notification workflow.

Or skip the browser setup

If your monitoring workflow needs a screenshot rather than a text change report, a single GET request can capture a page. See the ScreenshotNeo API documentation for options and request details.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);

ScreenshotNeo removes cookie banners, popups, and chat widgets before the shot. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. Sign up for 1,000 free screenshots a month, no card required.

Troubleshooting urlwatch costs and setup

Symptom or question Likely cause What to do
A command or import is missing after installation. The active Python environment differs from the one where pip installed urlwatch, or installation did not complete. Use the same interpreter for installation and execution, such as python -m pip install --upgrade urlwatch, and consult the current installation instructions.
A browser job or specialized filter fails. An optional dependency for that feature may not be installed or configured. Check the current dependencies page for that specific capability and install only what it requires.
Scheduled runs produce no expected report. The scheduler may run as a different user, with a different environment, configuration path, or state directory. Run the command as the scheduled account, verify its paths and environment, and inspect scheduler output and reporter configuration.
Email or chat notifications fail. Reporter credentials, provider settings, or account terms may have changed. Validate the reporter configuration and credentials; check the provider’s current requirements and any separate costs.
The monthly cost is unclear. Hosting, notification, and optional feature expenses are being conflated with the project itself. Separate the software installation from provider bills, then total only the resources and services your deployment actually uses.
A search result shows a subscription price for “URLWatch.” It may refer to URLWatch.io, a different hosted service. Confirm whether the page is about URLWatch.io or the thp/urlwatch project before applying its price.

FAQ

Is urlwatch open source?

The current Homebrew formula lists the project’s license as BSD-3-Clause. Check current project and package metadata when licensing is material to your use.

Do I need to pay for a server?

No particular paid server is specified by the project. You can schedule it on a suitable machine you already operate, or choose a host whose price and availability fit your needs.

Does the project charge per URL or check?

The project documentation describes installable software and scheduled jobs, not a per-check subscription. Hosting, notification, or other third-party charges remain separate.

Is URLWatch.io the same as urlwatch?

No. URLWatch.io is a separate hosted service; its advertised plans are not urlwatch project fees.

Where should I verify current requirements?

Use the project’s current installation guide, handbook, and dependency page. Version and package requirements can change.

Official references