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:
# 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}/historyAuthentication
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.
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}")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.
# 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.
| Plan | Requests / day | MCP write access | Price |
|---|---|---|---|
| Free | 100 | Read-only | €0 |
| Starter | 1,000 | Full | €4/mo |
| Pro | 10,000 | Full + bulk ops | €8/mo |
| Business | 50,000 | Full + bulk ops | €99/mo |
Webhooks
Site Spy uses Apprise for notifications, supporting 90+ services. For webhooks, configure a notification URL in the format:
# 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:
| Method | Endpoint | Description |
|---|---|---|
| GET | /watch | List all watches |
| POST | /watch | Create a watch |
| GET | /watch/{uuid} | Get watch details |
| PUT | /watch/{uuid} | Update watch config |
| DELETE | /watch/{uuid} | Delete a watch |
| GET | /watch/{uuid}/history | Change history timestamps |
| GET | /watch/{uuid}/history/{ts} | Snapshot at timestamp |
| GET | /watch/{uuid}/difference/{from}/{to} | Diff between timestamps |
| GET | /search?q=term | Search watches |
| GET | /tags | List 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.