Screenshots where
Chromium cannot run

Serverless and edge runtimes cap bundle size, block subprocesses, or ship no browser at all. Every guide below is one fetch call to GET /v1/screenshot, in that runtime's own idiom, with the key read from a secret.

200 renders a month, no card.

What every guide has in common

One request

GET https://app.snap-render.com/v1/screenshot with url and options as query parameters, X-API-Key in a header. The body is the image or PDF.

Free cache hits

Pass cache=true and cache_ttl in seconds. Repeat requests inside the window are served from the cache and do not count against your monthly quota.

Predictable errors

400 for bad or blocked URLs, 401 for a bad key, 429 for RATE_LIMITED or QUOTA_EXCEEDED, 502 when the target is down. Every body is { error: { code, message, status } }.

Framework guides on the blog: Next.js route handlers, Django, Laravel, Rails, WordPress. Language quickstarts: all SDKs.

Or skip the setup entirely

Everything in this guide is one GET request with SnapRender. No browser to babysit, no timeouts to tune.

200 screenshots a month free. First render in under a minute.

Keep the browser out of your deploy

Get a free API key, 200 renders a month, no card.