Skip to main content

Watch Management

Watches are the core of changedetection.io - each watch monitors a single URL for changes. Use these endpoints to create, retrieve, update, and delete watches programmatically.

List All Watches

endpoint
/api/v1/watch
Retrieve a list of all watches with basic information.

Query Parameters

string
Filter watches by tag name (not UUID)
string
default:""
Set to "1" to trigger recheck of all watches

Response Fields

string
Unique identifier for the watch
string
The raw URL being monitored (may contain Jinja2 templates)
The rendered URL (Jinja2 processed) - always use this for display
string
Custom title for the watch
string
HTML <title> tag from the page
array
Array of tag UUIDs associated with this watch
integer
Unix timestamp of last check
integer
Unix timestamp of last detected change
string | boolean
Last error message, false if no error, null if never checked

Example


Create a Watch

endpoint
/api/v1/watch
Create a new watch to monitor a URL.

Request Body

string
required
URL to monitor (must use http://, https://, or ftp:// protocol)
string
Custom title for the watch
array
Array of tag UUIDs to associate with this watch
string
Single tag UUID (alternative to tags array)
string
default:"text_json_diff"
Processor mode: text_json_diff or restock_diff
string
default:"system"
Fetcher to use: system, html_requests, html_webdriver, or extra_browser_*
boolean
default:false
Whether the watch is paused
boolean
default:false
Whether notifications are muted
array
Array of notification URLs (Apprise format)
object
Check interval with fields: weeks, days, hours, minutes, seconds
boolean
default:true
Use global check interval settings
array
CSS/XPath selectors to extract content
array
CSS/XPath selectors to remove content
array
Text patterns to ignore in change detection
array
Text patterns that must be present to trigger

Example


Get a Single Watch

endpoint
/api/v1/watch/
Retrieve complete information about a specific watch.

Path Parameters

string
required
UUID of the watch

Query Parameters

string
Set to "1" or "true" to trigger immediate recheck
string
Set to "paused" or "unpaused" to change pause state
string
Set to "muted" or "unmuted" to change mute state

Example


Update a Watch

endpoint
/api/v1/watch/
Update an existing watch. Only include fields you want to change.

Path Parameters

string
required
UUID of the watch to update

Request Body

Accepts the same fields as Create Watch. Only specified fields will be updated.
integer
Unix timestamp to mark the watch as viewed (set higher than last_changed)

Example


Delete a Watch

endpoint
/api/v1/watch/
Delete a watch and all its history.

Path Parameters

string
required
UUID of the watch to delete

Example


Get Watch History

endpoint
/api/v1/watch//history
Get a list of all available snapshots for a watch.

Path Parameters

string
required
UUID of the watch

Example


Get Single Snapshot

endpoint
/api/v1/watch//history/
Retrieve a specific snapshot by timestamp.

Path Parameters

string
required
UUID of the watch
string | integer
required
Unix timestamp or "latest" for most recent snapshot

Query Parameters

string
Set to "1" to return raw HTML instead of processed text

Example


Get Snapshot Diff

endpoint
/api/v1/watch//difference//
Compare two snapshots and get the differences.

Path Parameters

string
required
UUID of the watch
string | integer
required
Starting timestamp or "previous" for second-most-recent
string | integer
required
Ending timestamp or "latest" for most recent

Query Parameters

string
default:"text"
Output format: text, html, htmlcolor, or markdown
boolean
default:false
Enable word-level diffing (vs line-level)
boolean
default:false
Return raw diff without formatting
boolean
default:true
Show only changed lines (no context)
boolean
default:false
Ignore whitespace-only changes
boolean
default:true
Include removed content
boolean
default:true
Include added content
boolean
default:true
Include replaced content

Example


Get Watch Favicon

endpoint
/api/v1/watch//favicon
Retrieve the favicon for a watch.

Path Parameters

string
required
UUID of the watch

Example

Search Watches

endpoint
/api/v1/search
Search for watches by URL or title text. Useful for finding specific monitors in large deployments.

Query Parameters

string
required
Search query to match against watch URLs and titles
string
Tag name to limit search results (name not UUID)
boolean
default:"false"
Allow partial matching of URL query (set to 1 or true)

Response

Returns matching watches with basic information:
string
Unique identifier for the watch
string
URL being monitored
string
Custom title for the watch
integer
Unix timestamp of last check
integer
Unix timestamp of last detected change
string
Most recent error message (if any)
boolean
Whether changes have been viewed

Examples

Use Cases

Search for all watches monitoring a specific domain:
Search within a specific tag group:
Enable partial matching for more flexible searches: