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

Getting started

The Snapshot Archive API gives you programmatic control over website screenshot capture, monitoring, and visual change detection. Instead of using the dashboard manually, you can automate everything — create monitors, trigger captures, download screenshots, and receive webhook notifications when pages change.

API access is available on Starter plans and above. You interact with the API over HTTPS using standard REST conventions: JSON request bodies, Bearer token authentication, and predictable HTTP status codes.

Base URLhttps://api.snapshotarchive.com/v1

Quick start: your first screenshot in 4 steps

This walkthrough takes you from zero to a downloaded screenshot. Each step builds on the previous one — the IDs you need always come from the response of the step before.

1. Get your API key

Go to Dashboard → API Keys and create a new key. Copy the key immediately — for security reasons, the full key is only shown once. You'll include it in every API request as a Bearer token.

2. Create a monitor

A monitor tells Snapshot Archive which URL to capture and how often. When you create one, the API returns the monitor object with its id — you'll use this ID to trigger captures and retrieve snapshots.

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",
    "frequency_minutes": 720,
    "device_type": "desktop",
    "viewport_width": 1920,
    "viewport_height": 1080
  }'

3. Trigger a snapshot

Creating a monitor sets up the schedule, but you can also trigger a capture right away. The API returns 202 Accepted with a snapshot_id — the capture happens asynchronously in the background and typically finishes within 10–30 seconds.

bash
# Use the monitor ID returned from step 2 (e.g. 42)
curl -X POST https://api.snapshotarchive.com/v1/monitors/42/trigger \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

# Response: {"data": {"message": "Snapshot queued successfully.", "snapshot_id": "9e8f7a6b-..."}}

4. Get the result

Poll the snapshot endpoint using the snapshot_id from step 3. Once the status field changes from pending to completed, you can download the screenshot image, PDF, or HTML source.

bash
# Poll until status is "completed" or "failed"
curl https://api.snapshotarchive.com/v1/snapshots/9e8f7a6b-... \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

# Once completed, download the screenshot
curl -L https://api.snapshotarchive.com/v1/snapshots/9e8f7a6b-.../screenshot \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o screenshot.png
Where do IDs come from? Every ID you need comes from a previous API response — you never need to look them up manually. If you already have monitors in the Dashboard, use GET /v1/monitors to get their IDs programmatically.