# Site Spy > Documentation for Site Spy — monitor website changes with ease - [Welcome to Site Spy](https://docs.sitespy.app/docs/index.md): Monitor website changes with ease - [Installation](https://docs.sitespy.app/docs/getting-started/installation.md): Install the Site Spy browser extension (optional) - [Connecting to the Dashboard](https://docs.sitespy.app/docs/getting-started/connecting.md): Sign in to Site Spy and connect the browser extension - [Watching Pages](https://docs.sitespy.app/docs/extension/watching-pages.md): Add websites to your watchlist and monitor specific elements - [Notifications](https://docs.sitespy.app/docs/extension/notifications.md): Get notified when your watched pages change - [Timeline and Diff](https://docs.sitespy.app/docs/extension/timeline-and-diff.md): View change history and compare snapshots - [Extension Settings](https://docs.sitespy.app/docs/extension/settings.md): Configure the extension to your preferences - [Managing Watches](https://docs.sitespy.app/docs/dashboard/watches.md): View, recheck, and manage your watches from the web dashboard - [Choosing What to Watch](https://docs.sitespy.app/docs/dashboard/element-picker.md): Point at the part of a page you want watched instead of writing a selector - [Watch Settings](https://docs.sitespy.app/docs/dashboard/watch-settings.md): Configure individual watch options - [Watch Health & Failure Alerts](https://docs.sitespy.app/docs/dashboard/watch-health.md): How Site Spy detects a broken watch, tells you about it, and retries - [CSS & XPath Filters](https://docs.sitespy.app/docs/dashboard/css-xpath-filters.md): Monitor specific page sections using CSS selectors and XPath expressions - [Price & Restock Monitoring](https://docs.sitespy.app/docs/dashboard/price-and-restock.md): Track price drops and back-in-stock changes instead of page text - [Dashboard Settings](https://docs.sitespy.app/docs/dashboard/settings.md): Configure your Site Spy dashboard preferences - [Screenshot Capture](https://docs.sitespy.app/docs/dashboard/screenshots.md): Capture full-page screenshots alongside text monitoring - [Share Links](https://docs.sitespy.app/docs/dashboard/share-links.md): Share watch configurations with others via a link - [Import & Export](https://docs.sitespy.app/docs/dashboard/import-export.md): Bulk import URLs and export your watches - [RSS Feeds](https://docs.sitespy.app/docs/dashboard/rss.md): Follow website changes in any RSS reader - [Automatic Noise Repair](https://docs.sitespy.app/docs/dashboard/noise-repair.md): Adding ignore rules to a watch that keeps alerting about nothing - [AI Chat](https://docs.sitespy.app/docs/dashboard/ai-chat.md): Manage watches and check changes through natural language - [AI Features](https://docs.sitespy.app/docs/dashboard/ai-features.md): AI-powered change summaries, noise repair, and chat assistant - [Browser Steps](https://docs.sitespy.app/docs/dashboard/browser-steps.md): Monitor pages that require login or user interactions - [MCP Integration](https://docs.sitespy.app/docs/dashboard/mcp-integration.md): Connect Site Spy to Claude Code, Codex, OpenCode, Cursor, and other MCP-compatible tools - [Webhook Notifications](https://docs.sitespy.app/docs/dashboard/webhooks.md): Send change alerts to Discord, Slack, and 90+ services - [Email Notifications](https://docs.sitespy.app/docs/dashboard/email-notifications.md): Set up email alerts for website changes - [Telegram Notifications](https://docs.sitespy.app/docs/dashboard/telegram.md): Receive change alerts via Telegram - [Browser Push Notifications](https://docs.sitespy.app/docs/dashboard/push-notifications.md): Receive instant browser notifications when watched pages change - [Community Watches](https://docs.sitespy.app/docs/dashboard/community.md): Browse public monitoring setups and publish your own - [Team Management](https://docs.sitespy.app/docs/dashboard/team-management.md): Invite team members to share watches and collaborate - [Getting Support](https://docs.sitespy.app/docs/dashboard/support.md): Send a support request with the context needed to answer it - [Plans and Billing](https://docs.sitespy.app/docs/dashboard/billing.md): Site Spy pricing plans, features, and account management - [AI-Readable Documentation](https://docs.sitespy.app/llms.md): Access Site Spy documentation in formats optimized for AI assistants and coding agents - [FAQ](https://docs.sitespy.app/docs/faq.md): Frequently asked questions about Site Spy - [Acknowledgements](https://docs.sitespy.app/docs/acknowledgements.md): Open source projects that Site Spy is built on - [Site Spy API](https://docs.sitespy.app/api-reference/introduction.md): Automate watch management, retrieve change history, and integrate Site Spy into your own tools with the REST API. - [Get the current rating for an exact detected change](https://docs.sitespy.app/api-reference/change-feedback/get-the-current-rating-for-an-exact-detected-change.md) - [Create or replace the rating for an exact detected change](https://docs.sitespy.app/api-reference/change-feedback/create-or-replace-the-rating-for-an-exact-detected-change.md) - [Open the non-mutating signed feedback landing page](https://docs.sitespy.app/api-reference/change-feedback/open-the-non-mutating-signed-feedback-landing-page.md) - [Submit feedback using an exact signed change token](https://docs.sitespy.app/api-reference/change-feedback/submit-feedback-using-an-exact-signed-change-token.md) - [List all watches](https://docs.sitespy.app/api-reference/watch-management/list-all-watches.md): Return concise list of available web page change monitors (watches) and basic info - [Create a new watch](https://docs.sitespy.app/api-reference/watch-management/create-a-new-watch.md): Create a single web page change monitor (watch). Requires at least `url` to be set. - [Get single watch](https://docs.sitespy.app/api-reference/watch-management/get-single-watch.md): Retrieve web page change monitor (watch) information and set muted/paused status. Returns the FULL Watch JSON. - [Update watch](https://docs.sitespy.app/api-reference/watch-management/update-watch.md): Update an existing web page change monitor (watch) using JSON. Accepts the same structure as returned in [get single watch information](#operation/getWatch). - [Delete watch](https://docs.sitespy.app/api-reference/watch-management/delete-watch.md): Delete a web page change monitor (watch) and all related history - [Get watch history](https://docs.sitespy.app/api-reference/watch-history/get-watch-history.md): Get a list of all historical snapshots available for a web page change monitor (watch), use the key `timestamp` as the query argument for fetching a single watch history snapshot. - [Get the difference between two snapshots](https://docs.sitespy.app/api-reference/watch-history/get-the-difference-between-two-snapshots.md): Generate a difference (comparison) between two historical snapshots of a web page change monitor (watch). - [Get single snapshot](https://docs.sitespy.app/api-reference/snapshots/get-single-snapshot.md): Get single snapshot from web page change monitor (watch). Use 'latest' for the most recent snapshot. Use the Watch History API to get a list of timestamps to pass. - [Get a screenshot for a watch at a specific timestamp](https://docs.sitespy.app/api-reference/visual-diff/get-a-screenshot-for-a-watch-at-a-specific-timestamp.md): Returns the screenshot image (PNG/JPEG) for a watch that uses the `image_ssim_diff` processor. Requires Pro plan. - [Get rendered diff overlay image](https://docs.sitespy.app/api-reference/visual-diff/get-rendered-diff-overlay-image.md): Returns a rendered diff image (JPEG) showing changed areas highlighted in red. Compares two screenshot snapshots using OpenCV. Requires Pro plan. - [Get visual diff metadata](https://docs.sitespy.app/api-reference/visual-diff/get-visual-diff-metadata.md): Returns metadata about the visual diff comparison including change percentage, threshold setting, and available versions. Requires Pro plan. - [Get screenshot history timestamps](https://docs.sitespy.app/api-reference/screenshots/get-screenshot-history-timestamps.md): Returns the list of screenshot timestamps available for a watch with screenshot monitoring enabled. - [Get watch favicon](https://docs.sitespy.app/api-reference/favicon/get-watch-favicon.md): Get the favicon for a web page change monitor (watch) as displayed in the watch overview list. - [List all tags](https://docs.sitespy.app/api-reference/tag-management/list-all-tags.md): Return list of available tags/groups - [Create tag](https://docs.sitespy.app/api-reference/tag-management/create-tag.md): Create a single tag/group - [Get single tag](https://docs.sitespy.app/api-reference/tag-management/get-single-tag.md): Retrieve tag information, set notification_muted status, recheck all web page change monitors (watches) in tag. - [Update tag](https://docs.sitespy.app/api-reference/tag-management/update-tag.md): Update an existing tag using JSON - [Delete tag](https://docs.sitespy.app/api-reference/tag-management/delete-tag.md): Delete a tag/group and remove it from all web page change monitors (watches) - [Get notification URLs](https://docs.sitespy.app/api-reference/notifications/get-notification-urls.md): Return the notification URL list from the configuration - [Replace notification URLs](https://docs.sitespy.app/api-reference/notifications/replace-notification-urls.md): Replace all notification URLs with the provided list (can be empty) - [Add notification URLs](https://docs.sitespy.app/api-reference/notifications/add-notification-urls.md): Add one or more notification URLs to the configuration - [Delete notification URLs](https://docs.sitespy.app/api-reference/notifications/delete-notification-urls.md): Delete one or more notification URLs from the configuration - [Send a test notification](https://docs.sitespy.app/api-reference/notifications/send-a-test-notification.md): Send a test notification to verify webhook URL(s) are configured correctly. Available on all plans. - [Search watches](https://docs.sitespy.app/api-reference/search/search-watches.md): Search web page change monitors (watches) by URL or title text - [Import watch URLs with configuration](https://docs.sitespy.app/api-reference/import/import-watch-urls-with-configuration.md): Import a list of URLs to monitor with optional watch configuration. Accepts line-separated URLs in request body. - [List available proxies](https://docs.sitespy.app/api-reference/system-information/list-available-proxies.md): Proxies a watch can be checked from, for the `proxy` field. Keys and labels only; proxy URLs are never returned. - [Get system information](https://docs.sitespy.app/api-reference/system-information/get-system-information.md): Return information about the current system state - [Get user-specific settings](https://docs.sitespy.app/api-reference/user-settings/get-user-specific-settings.md): Retrieve the authenticated user's custom settings, including recheck interval preferences and email notification settings. - [Update user-specific settings](https://docs.sitespy.app/api-reference/user-settings/update-user-specific-settings.md): Update the authenticated user's custom settings, such as default recheck interval for new watches, email notification preferences, and global ignore patterns. - [Send a test email notification](https://docs.sitespy.app/api-reference/user-settings/send-a-test-email-notification.md): Send a test email to verify email notification settings are configured correctly. - [Get email verification status](https://docs.sitespy.app/api-reference/email-verification/get-email-verification-status.md): Get the current email address and verification status for your API key. - [Set, update, or disable email address](https://docs.sitespy.app/api-reference/email-verification/set-update-or-disable-email-address.md): Set or update the email address for your API key. A verification email will be sent to the provided address. The email must be verified before notifications can be sent. - [Ask whether to turn email notifications off (no auth)](https://docs.sitespy.app/api-reference/email-verification/ask-whether-to-turn-email-notifications-off-no-auth.md): Renders the confirmation page for the unsubscribe link carried by change notification emails. Changes nothing: mail scanners dereference every URL in a message, so the account is only muted by the POST the page submits. - [Turn email notifications off (no auth)](https://docs.sitespy.app/api-reference/email-verification/turn-email-notifications-off-no-auth.md): Mutes email notifications for the account the token belongs to. - [Ask whether to turn email notifications on (no auth)](https://docs.sitespy.app/api-reference/email-verification/ask-whether-to-turn-email-notifications-on-no-auth.md): Renders the confirmation page for the enable link carried by the welcome email. Changes nothing; the POST the page submits does. - [Turn email notifications on (no auth)](https://docs.sitespy.app/api-reference/email-verification/turn-email-notifications-on-no-auth.md): Unmutes email notifications for the account the token belongs to. - [Verify email address](https://docs.sitespy.app/api-reference/email-verification/verify-email-address.md): Verify an email address using the token from the verification email. This endpoint does not require authentication as the token serves as proof. - [Resend verification email](https://docs.sitespy.app/api-reference/email-verification/resend-verification-email.md): Resend the verification email for the email address associated with your API key. - [Get Telegram connection status](https://docs.sitespy.app/api-reference/telegram-notifications/get-telegram-connection-status.md): Get the current Telegram connection status for your API key, including any pending link. - [Generate Telegram connect link](https://docs.sitespy.app/api-reference/telegram-notifications/generate-telegram-connect-link.md): Generate a deep-link URL for connecting your Telegram account. Open the returned link in Telegram and tap Start to complete the connection. - [Remove Telegram notifications](https://docs.sitespy.app/api-reference/telegram-notifications/remove-telegram-notifications.md): Disconnect Telegram and stop receiving notifications. - [Send a test Telegram message](https://docs.sitespy.app/api-reference/telegram-notifications/send-a-test-telegram-message.md): Send a test notification to verify Telegram is configured correctly. - [Telegram webhook endpoint](https://docs.sitespy.app/api-reference/telegram-notifications/telegram-webhook-endpoint.md): Receives updates from the Telegram Bot API. This endpoint is called by Telegram when users interact with the bot (e.g. /start command). Not intended for direct use. - [Get the public VAPID key](https://docs.sitespy.app/api-reference/web-push-notifications/get-the-public-vapid-key.md): Returns the server's public VAPID key needed to subscribe to push notifications. - [Get web push subscription status](https://docs.sitespy.app/api-reference/web-push-notifications/get-web-push-subscription-status.md): Check whether the current API key has any active push subscriptions. - [Save a push subscription](https://docs.sitespy.app/api-reference/web-push-notifications/save-a-push-subscription.md): Store a browser push subscription for the current API key. - [Remove push subscription(s)](https://docs.sitespy.app/api-reference/web-push-notifications/remove-push-subscriptions.md): Remove a specific push subscription by endpoint, or remove all subscriptions if no endpoint is provided. - [Send a test push notification](https://docs.sitespy.app/api-reference/web-push-notifications/send-a-test-push-notification.md): Send a test push notification to all subscribed browsers. - [Generate a new API key](https://docs.sitespy.app/api-reference/api-key-management/generate-a-new-api-key.md): Generate a new unique API key for accessing the API. This endpoint does not require authentication. Each API key is associated with a unique user account. - [Get feature flags](https://docs.sitespy.app/api-reference/feature-flags/get-feature-flags.md): Retrieve the feature flags for the current API key. Feature flags control which features are enabled or disabled for specific users. - [Create an ALTCHA signup challenge](https://docs.sitespy.app/api-reference/authentication/create-an-altcha-signup-challenge.md): Create a signed proof-of-work challenge for the signup form. The solved payload must be submitted as the `altcha` field when registering. - [Register a new user account](https://docs.sitespy.app/api-reference/authentication/register-a-new-user-account.md): Create a new user account with email and password. An API key is automatically generated and linked to the account. This API key can be used for all subsequent authenticated requests. Signup requires a solved ALTCHA proof-of-work payload from `/auth/altcha-challenge`. - [Login to existing account](https://docs.sitespy.app/api-reference/authentication/login-to-existing-account.md): Authenticate with email and password to retrieve your API key. Use this API key for all subsequent authenticated requests. - [Login or register via social/OAuth provider](https://docs.sitespy.app/api-reference/authentication/login-or-register-via-socialoauth-provider.md): Authenticate a user via a social login provider (e.g., Google). If the user already exists, returns their API key. If the user doesn't exist, auto-creates an account and returns the new API key. This endpoint is intended to be called server-side from the NextAuth callback. - [Get current user info](https://docs.sitespy.app/api-reference/authentication/get-current-user-info.md): Retrieve information about the currently authenticated user. Requires a valid API key in the x-api-key header. - [Verify account email](https://docs.sitespy.app/api-reference/authentication/verify-account-email.md): Verify a user's account email using the token sent via email. Returns an HTML page with the verification result. - [Resend account verification email](https://docs.sitespy.app/api-reference/authentication/resend-account-verification-email.md): Resend the account verification email. Requires authentication. Rate limited to one request per 60 seconds. - [Request a password reset](https://docs.sitespy.app/api-reference/authentication/request-a-password-reset.md): Request a password reset token for the given email address. Always returns success to avoid leaking whether an email is registered. - [Reset password with token](https://docs.sitespy.app/api-reference/authentication/reset-password-with-token.md): Reset the user's password using a valid reset token obtained from the forgot-password endpoint. Tokens expire after 1 hour. - [Change password for authenticated user](https://docs.sitespy.app/api-reference/authentication/change-password-for-authenticated-user.md): Change the password for the currently authenticated user. Requires the current password for verification. - [Regenerate API key for authenticated user](https://docs.sitespy.app/api-reference/authentication/regenerate-api-key-for-authenticated-user.md): Regenerate the API key for the currently authenticated user. The old key is invalidated and all watches are migrated to the new key. Only works for API keys linked to a user account. - [Permanently delete user account](https://docs.sitespy.app/api-reference/authentication/permanently-delete-user-account.md): Permanently deletes the authenticated user's account and all associated data, including all watches, settings, notification configurations, and password reset tokens. This action cannot be undone. - [Get current plan and usage](https://docs.sitespy.app/api-reference/plan/get-current-plan-and-usage.md): Returns the subscription plan, limits, and watch usage for the authenticated API key. - [Submit the PMF (Sean Ellis) survey](https://docs.sitespy.app/api-reference/feedback/submit-the-pmf-sean-ellis-survey.md): Records a one-time Product-Market-Fit survey response for the authenticated user. Returns 409 if the user has already submitted. - [Create a Lemon Squeezy checkout session](https://docs.sitespy.app/api-reference/billing/create-a-lemon-squeezy-checkout-session.md): Creates a hosted checkout URL for upgrading to a paid plan. - [Lemon Squeezy webhook receiver](https://docs.sitespy.app/api-reference/billing/lemon-squeezy-webhook-receiver.md): Receives subscription lifecycle events from Lemon Squeezy. Called by Lemon Squeezy, not clients. - [Get customer billing portal URL](https://docs.sitespy.app/api-reference/billing/get-customer-billing-portal-url.md): Returns the Lemon Squeezy customer portal URL for managing the subscription. - [Get billing subscription status](https://docs.sitespy.app/api-reference/billing/get-billing-subscription-status.md): Returns the current subscription status and metadata. - [Get RSS feed settings](https://docs.sitespy.app/api-reference/rss-feeds/get-rss-feed-settings.md): Get the current user's RSS feed token and status. Use the returned token to construct RSS feed URLs for use in any RSS reader. - [Generate RSS feed token](https://docs.sitespy.app/api-reference/rss-feeds/generate-rss-feed-token.md): Generate (or regenerate) a personal RSS feed token. This token is used in RSS feed URLs to authenticate access. Only watches owned by this user will appear in the feeds. - [Revoke RSS feed token](https://docs.sitespy.app/api-reference/rss-feeds/revoke-rss-feed-token.md): Revoke the RSS feed token, disabling all RSS feed access for this user. ## OpenAPI Specs - [openapi](/api-reference/openapi.yaml)