Set up monitors that capture screenshots on a schedule and automatically detect visual changes between captures. Each snapshot includes a change flag and pixel-diff percentage. Get webhook notifications when pages change. Perfect for competitor monitoring, price tracking, content watching, and uptime verification.
# 1. Create a monitor (checks every 60 minutes)
curl -X POST "https://snapapi.tech/v1/monitors" \
-H "x-api-key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"url":"https://example.com","name":"Example Homepage","interval_minutes":60,"webhook_url":"https://yoursite.com/hooks/snap"}'
# 2. List snapshots — each has changed + diff_percent fields
curl "https://snapapi.tech/v1/monitors/MONITOR_ID/snapshots" \
-H "x-api-key: YOUR_KEY"// Create a monitor
const monitor = await fetch("https://snapapi.tech/v1/monitors", {
method: "POST",
headers: { "x-api-key": "YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
url: "https://competitor.com/pricing",
name: "Competitor Pricing Page",
interval_minutes: 60,
webhook_url: "https://yourapp.com/webhooks/changes"
})
}).then(r => r.json());
// Poll for changes
const { snapshots } = await fetch(
`https://snapapi.tech/v1/monitors/${monitor.id}/snapshots`,
{ headers: { "x-api-key": "YOUR_KEY" } }
).then(r => r.json());
const changed = snapshots.filter(s => s.changed);
console.log(`${changed.length} changes detected`);
changed.forEach(s => console.log(` ${s.captured_at}: ${s.diff_percent?.toFixed(1)}% diff`));import requests
API_KEY = "YOUR_KEY"
BASE = "https://snapapi.tech"
HEADERS = {"x-api-key": API_KEY}
# Create a monitor
monitor = requests.post(f"{BASE}/v1/monitors", headers=HEADERS, json={
"url": "https://example.com",
"name": "Example Monitor",
"interval_minutes": 60
}).json()
# Check for changes
result = requests.get(
f"{BASE}/v1/monitors/{monitor['id']}/snapshots",
headers=HEADERS
).json()
for snap in result["snapshots"]:
if snap.get("changed"):
print(f"Change detected at {snap['captured_at']}: {snap.get('diff_percent', 0):.1f}% diff")Capturing screenshot...
We run Chromium so you don't have to. No Puppeteer, no Selenium, no drivers.
Choose your format. Set quality. Get optimized output.
9 device presets — iPhone, Pixel, iPad, desktop. One parameter.
Scroll the entire page and stitch into one image. Automatic.
Capture a specific element by CSS selector instead of the whole page.
Emulate prefers-color-scheme: dark to capture dark-themed pages.
1. Sign up for a free API key — 100 screenshots/month, no credit card required.
2. Make a GET request to /v1/screenshot with your URL and API key.
3. Receive a pixel-perfect screenshot as a binary image, or JSON with metadata if meta=true.
That's it. No browser installation, no Chromium management, no headless infrastructure to maintain.