Check job status
/api/v1/screenshots/{job_uuid}Returns the current state of a job. Poll every 5 seconds until status is completed or failed. A failed capture still answers 200: the success field describes the capture, not the call, and only transport and admission problems answer with an error status.
Direct API access is not open during the beta. API keys created in the dashboard authenticate nothing — no request anywhere is accepted with one — and screenshots are captured from the dashboard instead.
These pages describe the capture service the dashboard talks to. Read every request below as the shape of the interface that will open, not as a call you can make today.
{
"success": true,
"job_uuid": "a818dd25-d93e-4148-8aed-9ebb109ceeda",
"status": "completed",
"url": "https://example.com",
"final_url": "https://example.com/",
"page_title": "Example Domain",
"image_url": "https://api.previewapi.dev/storage/screenshots/a818dd25.png",
"width": 1280,
"height": 800,
"format": "png",
"image_bytes": 184223,
"duration_ms": 3410,
"created_at": "2026-08-05T09:12:44Z",
"completed_at": "2026-08-05T09:12:48Z"
}{
"success": false,
"job_uuid": "a818dd25-d93e-4148-8aed-9ebb109ceeda",
"status": "failed",
"error": "Page did not finish loading within 30s",
"error_code": "PAGE_TIMEOUT"
}Polling guidance
- Poll every 5 seconds. That is the interval the dashboard uses.
- Stop polling on
completed,failed, or after 2 minutes. image_urlis stable for the life of the image, so it can be stored or hotlinked — but see retention below.
Image retention
Stored images are swept after the service's retention window, 14 days at present. After that the job reports image_expired and the URL stops resolving, so copy the image into your own storage if you need it for longer. Credits are tracked on your account rather than on the job body — see Credits.