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
Query Parameters
string
Filter watches by tag name (not UUID)
string
default:""
Set to
"1" to trigger recheck of all watchesResponse Fields
string
Unique identifier for the watch
string
The raw URL being monitored (may contain Jinja2 templates)
string
The rendered URL (Jinja2 processed) - always use this for display
string
Custom title for the watch
string
HTML
<title> tag from the pagearray
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 checkedExample
Create a Watch
endpoint
/api/v1/watch
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_diffstring
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, secondsboolean
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/
Path Parameters
string
required
UUID of the watch
Query Parameters
string
Set to
"1" or "true" to trigger immediate recheckstring
Set to
"paused" or "unpaused" to change pause statestring
Set to
"muted" or "unmuted" to change mute stateExample
Update a Watch
endpoint
/api/v1/watch/
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/
Path Parameters
string
required
UUID of the watch to delete
Example
Get Watch History
endpoint
/api/v1/watch//history
Path Parameters
string
required
UUID of the watch
Example
Get Single Snapshot
endpoint
/api/v1/watch//history/
Path Parameters
string
required
UUID of the watch
string | integer
required
Unix timestamp or
"latest" for most recent snapshotQuery Parameters
string
Set to
"1" to return raw HTML instead of processed textExample
Get Snapshot Diff
endpoint
/api/v1/watch//difference//
Path Parameters
string
required
UUID of the watch
string | integer
required
Starting timestamp or
"previous" for second-most-recentstring | integer
required
Ending timestamp or
"latest" for most recentQuery Parameters
string
default:"text"
Output format:
text, html, htmlcolor, or markdownboolean
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
Path Parameters
string
required
UUID of the watch
Example
Search Watches
endpoint
/api/v1/search
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
Find watches by domain
Find watches by domain
Search for all watches monitoring a specific domain:
Filter by tag
Filter by tag
Search within a specific tag group:
Partial URL matching
Partial URL matching
Enable partial matching for more flexible searches: