Screenshot any website
with one GET request.

Render public URLs to PNG or PDF. Smart network-idle waiting captures async-loaded content without arbitrary sleeps — you get the page your users actually see.

# PNG screenshot, 1280×800
curl -o shot.png "https://728029.xyz/screenshot?url=https://example.com&width=1280&height=800"

# Full-page PDF
curl -o page.pdf "https://728029.xyz/pdf?url=https://example.com"

Features

Smart waiting

Network-idle detection waits until the page stops loading (500 ms quiet window, 10 s cap), so heavy JS pages render completely while light pages stay fast.

Full-page capture

full=1 captures the entire scrollable document, not just the viewport.

HTML rendering

POST your own HTML — invoices, reports, tickets — and get back a pixel-perfect PNG or PDF render with full CJK font support.

PDF export

Same rendering pipeline, print-ready PDF output with backgrounds preserved.

SSRF-hardened

Private IP ranges and cloud metadata endpoints are blocked at both the application and firewall layers.

Simple & stateless

No SDK required. Anything that can make an HTTP request can use ShotAPI.

API reference

EndpointDescription
GET /screenshot?url=&width=&height=&full=&delay= URL → PNG (viewport 100–4096px, default 1280×720)
POST /screenshot/html HTML body → PNG (max 2 MB)
GET /pdf?url= URL → PDF
POST /pdf/html HTML body → PDF
GET /healthz Health check

Open beta

ShotAPI is currently in open beta and free to use within rate limits (60 requests/minute per IP). Production plans will be offered through RapidAPI — watch this page.