> ## Documentation Index
> Fetch the complete documentation index at: https://docs.screenshotly.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Create an API key and make a verified Screenshotly request

# Quickstart

1. Sign up and open **Dashboard → API Tokens**.
2. Choose a workspace and generate a key. The plaintext key is shown once.
3. Send the key in `x-api-key` or as a Bearer token.

```bash theme={null}
curl --fail-with-body https://screenshotly.app/api/screenshot \
  -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{"url":"https://example.com","format":"png"}' \
  --output screenshot.png
```

Only successful captures consume monthly quota. Failed validation, rendering,
and delivery attempts remain visible in analytics but do not reduce the quota.

For work that must survive request timeouts, use a durable job:

```bash theme={null}
curl --fail-with-body https://screenshotly.app/api/jobs \
  -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Idempotency-Key: invoice-4821" \
  -H "content-type: application/json" \
  -d '{"url":"https://example.com","format":"pdf"}'
```

The response contains a job ID and status URL. Poll it until `SUCCEEDED`, then
download the result from its short-lived `resultUrl`. See [Async jobs](/api/async-jobs).

The machine-readable specification is available at `/api/openapi.json`. The
official typed clients are maintained publicly in
[screenshotly-js](https://github.com/itsmeasadali/screenshotly-js) and
[screenshotly-python](https://github.com/itsmeasadali/screenshotly-python).
