Site SpySite Spy
← Site Spy

Developers

Build on top of Site Spy with our REST API and MCP server. Monitor websites, detect changes, and get structured diffs programmatically.

Quick Start

Get your API key from Settings → API in the dashboard. Then start making requests:

bash
# List all your watches
curl -H "x-api-key: YOUR_KEY" \
  https://detect.coolify.vkuprin.com/api/v1/watch

# Create a new watch
curl -X POST -H "x-api-key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "title": "Example"}' \
  https://detect.coolify.vkuprin.com/api/v1/watch

# Get change history timestamps
curl -H "x-api-key: YOUR_KEY" \
  https://detect.coolify.vkuprin.com/api/v1/watch/{uuid}/history

Authentication

All API requests require an API key passed via the x-api-key header. You can also pass it as an api_key query parameter.

python
import requests

API_KEY = "your-api-key-here"
BASE = "https://detect.coolify.vkuprin.com/api/v1"

# List all watches
resp = requests.get(f"{BASE}/watch",
    headers={"x-api-key": API_KEY})
watches = resp.json()

# Create a watch
resp = requests.post(f"{BASE}/watch",
    headers={"x-api-key": API_KEY},
    json={"url": "https://example.com", "title": "My Monitor"})
watch_uuid = list(resp.json().keys())[0]
print(f"Created watch: {watch_uuid}")
javascript
const API_KEY = "your-api-key-here";
const BASE = "https://detect.coolify.vkuprin.com/api/v1";

// List all watches
const res = await fetch(`${BASE}/watch`, {
  headers: { "x-api-key": API_KEY },
});
const watches = await res.json();

// Create a watch
const created = await fetch(`${BASE}/watch`, {
  method: "POST",
  headers: {
    "x-api-key": API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    url: "https://example.com",
    title: "My Monitor",
  }),
});

MCP Server

Site Spy has a native MCP (Model Context Protocol) server that lets AI assistants like Claude and Cursor monitor websites directly. No competitor offers this.

Add to Claude Code / Cursor
# Install globally
npx -y @anthropic-ai/claude-code mcp add site-spy -- \
  npx -y @site-spy/mcp-server

# Or add to .mcp.json manually
{
  "mcpServers": {
    "site-spy": {
      "command": "npx",
      "args": ["-y", "@site-spy/mcp-server"],
      "env": {
        "SITE_SPY_API_KEY": "your-api-key-here"
      }
    }
  }
}

Available MCP Tools

list_watchesFree

List all monitored websites

get_watchFree

Get full details of a watch

get_diffFree

Compare content between timestamps

get_change_historyFree

Browse change timestamps

search_watchesFree

Search by URL or title

list_tagsFree

List available tags

create_watchPaid

Start monitoring a URL

update_watchPaid

Change watch settings

delete_watchPaid

Remove a watch

trigger_recheckPaid

Force immediate recheck

Rate Limits

API rate limits are enforced per API key. The MCP server uses the same limits. Exceeding the limit returns HTTP 429.

PlanRequests / dayMCP write accessPrice
Free100Read-only€0
Starter1,000Full€4/mo
Pro10,000Full + bulk ops€8/mo
Business50,000Full + bulk ops€99/mo

Webhooks

Site Spy uses Apprise for notifications, supporting 90+ services. For webhooks, configure a notification URL in the format:

Webhook URL formats
# Generic webhook (POST with JSON payload)
json://your-server.com/webhook

# Slack
slack://TokenA/TokenB/TokenC

# Discord
discord://WebhookID/WebhookToken

# Telegram
tgram://BotToken/ChatID

# Email
mailto://user:pass@smtp.gmail.com?to=you@example.com

The webhook payload includes the watch UUID, URL, title, diff content, and timestamps. Configure via the API: PUT /watch/{uuid} with notification_urls.

Full API Reference

The complete OpenAPI 3.0 specification covers all endpoints including watches, tags, notifications, search, history, diffs, screenshots, RSS feeds, billing, and user settings.

Key endpoints:

MethodEndpointDescription
GET/watchList all watches
POST/watchCreate a watch
GET/watch/{uuid}Get watch details
PUT/watch/{uuid}Update watch config
DELETE/watch/{uuid}Delete a watch
GET/watch/{uuid}/historyChange history timestamps
GET/watch/{uuid}/history/{ts}Snapshot at timestamp
GET/watch/{uuid}/difference/{from}/{to}Diff between timestamps
GET/search?q=termSearch watches
GET/tagsList all tags

The full interactive API documentation is available at /api/v1/full-spec.

Ready to build?

Get your free API key and start monitoring websites in minutes.