▪ Free plan: 3 websites with daily snapshots, no card required → ▪ ▪ Free plan: 3 websites, no card →

Create monitor

Create a monitor

Creates a new monitor that will capture screenshots of the given URL on a recurring schedule. The minimum required fields are url, frequency_minutes, device_type, viewport_width, and viewport_height. Everything else is optional and lets you fine-tune the capture behavior.

The API validates the frequency against your plan — for example, Starter plans can capture at most once per day (1440 minutes), while Business plans allow hourly captures (60 minutes). If you request a frequency your plan doesn't support, you'll receive a frequency_not_allowed error.

POST/v1/monitors

Request body

FieldTypeRequiredDescription
urlstringYesURL to monitor (max 2048 chars, must be a valid URL)
namestringNoDisplay name (max 255 chars)
project_idintegerNoAssign to a project
frequency_minutesintegerYesCapture interval in minutes (min 60, depends on plan)
device_typestringYesdesktop or mobile
viewport_widthintegerYesViewport width in pixels (320–3840)
viewport_heightintegerYesViewport height in pixels (480–2160)
full_pagebooleanNoCapture full scrollable page (default: false)
delay_secondsintegerNoWait before capture, 0–30 seconds
wait_for_selectorstringNoCSS selector to wait for before capturing
hide_selectorsarrayNoCSS selectors to hide (max 20 items)
click_selectorstringNoCSS selector to click before capturing
clip_selectorstringNoCSS selector to clip screenshot to
disable_animationsbooleanNoDisable CSS animations and transitions
http_auth_userstringNoHTTP Basic auth username
http_auth_passwordstringNoHTTP Basic auth password
custom_headersarrayNoCustom HTTP headers (max 20), each with name and value
cookiesarrayNoCookies to set (max 20), each with name, value, domain
diff_enabledbooleanNoEnable visual change detection
diff_threshold_percentnumberNoChange threshold to trigger alerts (0–100)
watermark_enabledbooleanNoAdd timestamp watermark to screenshots
alert_enabledbooleanNoEnable change alerts
alert_emailstringNoEmail for change notifications
alert_webhook_urlstringNoWebhook URL for change notifications
alert_slack_webhook_urlstringNoSlack incoming webhook URL
alert_discord_webhook_urlstringNoDiscord webhook URL
bash
curl -X POST https://api.snapshotarchive.com/v1/monitors \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "url": "https://example.com",
    "name": "Example Homepage",
    "project_id": 1,
    "frequency_minutes": 360,
    "device_type": "desktop",
    "viewport_width": 1920,
    "viewport_height": 1080,
    "full_page": true,
    "hide_selectors": [".cookie-banner", "#popup"],
    "diff_threshold_percent": 5,
    "alert_enabled": true,
    "alert_email": "[email protected]"
  }'
Dashboard showing the 'Hacker News' monitor created via API
Monitors created via API appear in your dashboard with status, project, change detection settings, alerts, and frequency.