Docs / Getting started
Response Format
Successful captures return 200 OK with JSON. The image itself is hosted by us and served from the image_url.
Success body
200 OK · application/json
{
"status": "done",
"image_url": "https://screenshotink.com/shots/9f/9f2k1x….png",
"width": 1440,
"height": 8260,
"format": "png",
"bytes": 1984412,
"render_ms": 1840,
"cached": false,
"expires_at": "2026-07-12T14:03:00Z"
}
| Field | Type | Description |
|---|---|---|
status | string | Always done on 200 — errors never return 200. |
image_url | string | Direct, hot-linkable URL of the stored image. Unguessable 128-bit token. |
width / height | int | Actual pixel dimensions of the stored image (after any scaled_width/max_height). |
format | string | png or jpeg. |
bytes | int | File size in bytes. |
render_ms | int | Wall-clock render time. Cached repeats report the original render's time. |
cached | bool | true when served from the 24h same-parameters cache — not billed. |
expires_at | string | ISO-8601 UTC. The image is deleted after your plan's retention window (30/90/365 days). |
warnings | string[] | Optional. Non-fatal notices — e.g. a parameter accepted but not applied yet. |
Caching
Repeat a request with identical parameters within 24 hours and you get the stored render back free, marked "cached": true. Force a fresh render with nocache=true (billed normally).
Storage & hot-linking
Images live on EU infrastructure and are served with long-lived cache headers — embed image_url directly in reports, dashboards or emails. If you need the file beyond your retention window, download and store your copy.