Skip to main content
Ssnap Docs

Quickstart

From sign-up to your first captured screenshot.

Create an account

Sign up at ssnap.cc with an email and password, or with Google. A personal team is created for you automatically, because every API key, screenshot and subscription belongs to a team, not to an individual user.

Subscribe to a plan

Open Subscriptions in your dashboard and pick a plan. Captures require an active subscription: without one, the API answers 402 with code subscription_required.

See Plans and billing for allowances and prices.

Create an API key

Go to API keys, give the key a name, and optionally an expiry date.

The key is shown once, at creation. Ssnap stores only a SHA-256 hash of it, so a lost key cannot be recovered. Delete it and create a new one.

Capture a page

Binary response
curl -G https://ssnap.cc/api/v1/screenshot \
  -H "Authorization: Bearer $SSNAP_API_KEY" \
  --data-urlencode "url=https://example.com" \
  --data-urlencode "format=png" \
  --data-urlencode "full_page=true" \
  --output example.png

By default the response body is the image. Ask for a link instead with response=url:

Signed url response
curl -G https://ssnap.cc/api/v1/screenshot \
  -H "Authorization: Bearer $SSNAP_API_KEY" \
  --data-urlencode "url=https://example.com" \
  --data-urlencode "response=url"
Response
{
  "url": "https://ssnap.cc/screenshots/0193.../file?expires=...&signature=...",
  "cached": false
}

The returned link is signed and valid for 24 hours.

Go async for slow pages

Pass a callback_url and the request returns immediately with 202; the finished capture is POSTed to your endpoint.

curl -X POST https://ssnap.cc/api/v1/screenshot \
  -H "Authorization: Bearer $SSNAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","callback_url":"https://your-app.com/hooks/ssnap"}'

See Async callbacks for the payload and signature scheme.

Next steps