Render any webpage as a high-quality screenshot in WebP, PNG, or JPEG. Full-page or viewport — shotAPI handles rendering, caching, and delivery so you don't have to.
A modern, developer-friendly API for rendering web pages into images. Built for scale from day one.
Capture entire web pages from top to bottom, not just the viewport. Perfect for archiving, previews, and social cards.
Scroll captureChoose between WebP (smallest files), PNG (lossless), or JPEG (compatible everywhere). Set quality on a per-request basis.
WebP · PNG · JPEGHeadless Chromium instances with a warm-pool architecture. Most requests complete in under 200 milliseconds.
<200ms avgA single POST endpoint with intuitive JSON parameters. No SDK required — works with any language that speaks HTTP.
RESTful1,000 screenshots per month completely free. No time limit, no hidden charges. Upgrade only when you need more.
1K / month freeAutomatic in-memory and disk caching with configurable TTL. Repeated captures of the same URL are instant.
Configurable TTLStart for free. Scale as you grow. No surprise bills — you only pay for what you use.
A simple REST API that works with any programming language. Here's how to get started.
# Capture a webpage as a PNG screenshot curl -X POST https://api.shotapi.dev/v1/capture \ -H "Authorization: Bearer sk_demo_..." \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com", "format": "png", "full_page": true }'
# Capture with custom viewport and WebP output curl -X POST https://api.shotapi.dev/v1/capture \ -H "Authorization: Bearer sk_demo_..." \ -H "Content-Type: application/json" \ -d '{ "url": "https://news.ycombinator.com", "format": "webp", "width": 1280, "height": 800, "quality": 85 }'
{
"success": true,
"data": {
"url": "https://cdn.shotapi.dev/c/abc123.png",
"format": "png",
"size_bytes": 247890,
"width": 1920,
"height": 1080,
"cached": false,
"render_ms": 187
}
}
Get started in under 30 seconds. No credit card required for the free tier.