Screenshot API

Getting started

Sign up, create an API Key, and capture your first Screenshot in under five minutes.

This guide gets you from zero to a working Screenshot in under five minutes.

1. Create an Account

Open the signup page and enter your email. We send a magic link — clicking it verifies your email and creates your Account.

On first signup, a Default API Key is created automatically. You can also create additional keys later from the API keys dashboard.

2. Copy your API Key

After signup, the success page shows your plaintext API Key exactly once. Copy it immediately — we never show the full key again.

Keys look like shot_… and are passed on every API request. If you lose the plaintext, revoke the key and create a new one from the dashboard.

3. Capture your first Screenshot

The API runs at http://localhost:8000 during local development (see the repo README.md for env setup). Production uses your deployed FastAPI host.

Save a PNG to disk with the simplest possible request — only url is required; everything else uses defaults (1280×720 viewport, PNG format, ad blocking on):

curl -X POST http://localhost:8000/screenshot \
  -H 'Authorization: Bearer shot_yourkey_here' \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com"}' \
  -o screenshot.png

A 200 OK response returns raw image bytes with Content-Type: image/png. Response headers include X-Request-Id, X-Render-Billable, and rate-limit / quota counters — see Rate limits & quotas.

4. Try JSON mode (optional)

To receive a hosted URL instead of raw bytes, set "response_type": "json":

curl -X POST http://localhost:8000/screenshot \
  -H 'Authorization: Bearer shot_yourkey_here' \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com","response_type":"json"}'

The JSON body includes url, expires_at, dimensions, and billing flags. See Storage for URL semantics and retention.

Next steps