Skip to main content
GET
cURL

Authorizations

x-api-key
string
header
required

API key for authentication. You can find your API key in the Site Spy dashboard under Settings → API.

Path Parameters

uuid
string<uuid>
required

Tag unique ID

Query Parameters

muted
enum<string>

Set mute state

Available options:
muted,
unmuted
recheck
enum<string>

Queue all web page change monitors (watches) with this tag for recheck

Available options:
true

Response

Tag information or operation result

uuid
string<uuid>
read-only

Unique identifier

date_created
integer | null
read-only

Unix timestamp of creation

owner_api_key
string | null
read-only

API key that owns this watch (multi-tenant isolation)

url
string<uri>

URL to monitor for changes

Maximum string length: 5000
title
string | null

Custom title for the web page change monitor (watch), not to be confused with page_title

Maximum string length: 5000
tag
string

Tag UUID to associate with this web page change monitor (watch)

Maximum string length: 5000
tags
string[]

Array of tag UUIDs

paused
boolean

Whether the web page change monitor (watch) is paused

paused_by
enum<string> | null
read-only

Non-null when paused=true was set automatically. Values:

  • plan_limit — owner exceeded their plan's watch cap; auto-deleted 30d after paused_at unless user upgrades or un-pauses. Null means the watch was paused manually by the user (no auto-delete).
Available options:
plan_limit,
null
paused_at
integer
read-only

Unix timestamp when auto-pause was applied. Starts the auto-delete clock for paused_by != null watches. 0 when never auto-paused.

notification_muted
boolean

Whether notifications are muted

method
enum<string>

HTTP method to use

Available options:
GET,
POST,
DELETE,
PUT
fetch_backend
string
default:system

Backend to use for fetching content. Common values:

  • system (default) - Use the system-wide default fetcher
  • html_requests - Fast requests-based fetcher
  • html_webdriver - Browser-based fetcher (Playwright/Puppeteer)
  • extra_browser_* - Custom browser configurations (if configured)
  • Plugin-provided fetchers (if installed)
Pattern: ^(system|html_requests|html_webdriver|extra_browser_.+)$
headers
object

HTTP headers to include in requests

body
string | null

HTTP request body

Maximum string length: 5000
proxy
string | null

Proxy configuration

Maximum string length: 5000
ignore_status_codes
boolean | null

Ignore HTTP status code errors (boolean or null)

webdriver_delay
integer | null

Delay in seconds for webdriver

webdriver_js_execute_code
string | null

JavaScript code to execute

Maximum string length: 5000
time_between_check
object

Time intervals between checks. All fields must be non-negative. At least one non-zero value required when not using default settings.

time_between_check_use_default
boolean
default:true

Whether to use global settings for time between checks - defaults to true if not set

notification_urls
string[]

Notification URLs for this web page change monitor (watch). Maximum 100 URLs.

Maximum array length: 100
Maximum string length: 1000
notification_title
string | null

Custom notification title

Maximum string length: 5000
notification_body
string | null

Custom notification body

Maximum string length: 5000
notification_format
enum<string>

Format for notifications

Available options:
text,
html,
htmlcolor,
markdown,
System default
track_ldjson_price_data
boolean | null

Whether to track JSON-LD price data

browser_steps
object[]

Browser automation steps. Maximum 100 steps allowed.

Maximum array length: 100
processor
enum<string>
default:text_json_diff

Optional processor mode to use for change detection. image_ssim_diff (screenshot monitoring) requires Pro plan. Defaults to text_json_diff if not specified.

Available options:
restock_diff,
text_json_diff,
image_ssim_diff
screenshot_enabled
boolean
default:false

When true, capture and store screenshots alongside text snapshots on each check. Requires Pro plan and fetch_backend set to a browser-based fetcher (e.g. html_webdriver).

include_filters
string[]

CSS/XPath selectors to extract specific content from the page

Maximum array length: 100
Maximum string length: 5000
subtractive_selectors
string[]

CSS/XPath selectors to remove content from the page

Maximum array length: 100
Maximum string length: 5000
ignore_text
string[]

Text patterns to ignore in change detection

Maximum array length: 100
Maximum string length: 5000
trigger_text
string[]

Text/regex patterns that must be present to trigger a change

Maximum array length: 100
Maximum string length: 5000
text_should_not_be_present
string[]

Text that should NOT be present (triggers alert if found)

Maximum array length: 100
Maximum string length: 5000
extract_text
string[]

Regex patterns to extract specific text after filtering

Maximum array length: 100
Maximum string length: 5000
trim_text_whitespace
boolean
default:false

Strip leading/trailing whitespace from text

sort_text_alphabetically
boolean
default:false

Sort lines alphabetically before comparison

remove_duplicate_lines
boolean
default:false

Remove duplicate lines from content

check_unique_lines
boolean
default:false

Compare against all history for unique lines

strip_ignored_lines
boolean | null

Remove lines matching ignore patterns

filter_text_added
boolean
default:true

Include added text in change detection

filter_text_removed
boolean
default:true

Include removed text in change detection

filter_text_replaced
boolean
default:true

Include replaced text in change detection

in_stock_only
boolean
default:true

Only trigger on in-stock transitions (restock_diff processor)

follow_price_changes
boolean
default:true

Monitor and track price changes (restock_diff processor)

price_change_threshold_percent
number | null

Minimum price change percentage to trigger notification

has_ldjson_price_data
boolean | null
read-only

Whether page has LD-JSON price data (auto-detected)

notification_screenshot
boolean
default:false

Include screenshot in notifications (if supported by notification URL)

filter_failure_notification_send
boolean
default:true

Send notification when filters fail to match content

use_page_title_in_list
boolean | null

Display page title in watch list (null = use system default)

history_snapshot_max_length
integer | null

Maximum number of history snapshots to keep (null = use system default)

Required range: 1 <= x <= 1000
time_schedule_limit
object

Weekly schedule limiting when checks can run

conditions
object[]

Array of condition rules for change detection logic (empty array when not set)

Maximum array length: 100
conditions_match_logic
enum<string>
default:ALL

Logic operator - ALL (match all conditions) or ANY (match any condition)

Available options:
ALL,
ANY
ai_alert_condition
string | null

Plain-English condition for AI smart alerts (Pro+ only). When set, AI evaluates each change against this condition and suppresses notifications that don't match. Example - "Only notify me if the price drops below $50".

Maximum string length: 500
last_ai_summary
string | null
read-only

AI-generated plain-English summary of the most recent change (Pro+ only, read-only — generated automatically when a change is detected).

track_what
string | null

User's monitoring intent, e.g. "price changes", "new job listings". Set by smart-configure or AI chat when the user describes what they want to track.

Maximum string length: 500
overrides_watch
boolean | null

Whether this tag's settings override watch settings for all watches in this tag/group.

  • true: Tag settings override watch settings
  • false: Tag settings do not override (watches use their own settings)
  • null: Not decided yet / inherit default behavior