API Documentation
Generate website screenshots with one GET request.
Endpoint
GET
/api/screenshotGenerate screenshot image| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Target HTTP/HTTPS URL. |
width | number | No | Viewport width. Default 1280. |
height | number | No | Viewport height. Default 720. |
format | png | jpeg | webp | No | Output image format. Default png. |
quality | 1-100 | No | JPEG/WebP quality. Default 80. |
fullPage | boolean | No | Capture full scroll height. Default false. |
delay | ms | No | Delay before capture, max 5000. Default 0. |
Required header: x-api-key: your_api_key
Auth and Billing Endpoints
POST
/api/keysCreate API key for an emailGET
/api/keys?email=you@example.comList keys for an emailGET
/api/usageCurrent monthly usage and remaining quota (requires x-api-key header)POST
/api/checkoutCreate Lemon Squeezy checkout URLPOST
/api/webhooks/lemonsqueezyLemon Squeezy webhook receiverExamples
curl
curl -L "https://your-domain.com/api/screenshot?url=https%3A%2F%2Fexample.com&width=1280&height=720&format=png" \
-H "x-api-key: your_api_key" \
--output screenshot.pngJavaScript
const params = new URLSearchParams({
url: "https://example.com",
width: "1280",
height: "720",
format: "webp",
quality: "80",
fullPage: "true",
});
const res = await fetch(`/api/screenshot?${params.toString()}`, {
headers: { "x-api-key": "your_api_key" },
});
const blob = await res.blob();Pricing Limits
| Plan | Price | Requests / Month |
|---|---|---|
| Free | ₩0 | 50 |
| Starter | ₩7,000 | 5,000 |
| Pro | ₩27,000 | 30,000 |