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
| Endpoint | Description |
|---|---|
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.