Send raw HTML, Markdown, or a URL. Get back a PDF rendered in real Chrome with ads and cookie banners already removed. No browser to manage, nothing to install.
POST up to 2 MB of your own HTML and CSS. External images, Google Fonts, flexbox, and grid render exactly as they do in the browser. Markdown input works too.
Point the same endpoint at any public URL and get the rendered page back as a PDF. One GET request, no body needed.
Set full_page to true and the whole scrolled page lands in the PDF as one continuous page, up to 65,000 pixels tall. Lazy-loaded content included.
Ads and cookie consent banners are blocked by default, so archived pages and reports show content, not pop-ups. Dark mode and device emulation work too.
The same endpoint that captures screenshots produces PDFs. Change one parameter.
URL to PDF (cURL)
curl "https://app.snap-render.com/v1/screenshot?url=https://example.com&format=pdf&full_page=true" \ -H "X-API-Key: YOUR_API_KEY" \ --output page.pdf
Raw HTML to PDF (cURL)
curl -X POST "https://app.snap-render.com/v1/screenshot" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"html": "<h1>Invoice #1042</h1><p>Total: $290</p>", "format": "pdf", "width": 1240}' \
--output invoice.pdf
Node.js
import { SnapRender } from 'snaprender';
import { writeFileSync } from 'fs';
const snap = new SnapRender({ apiKey: 'YOUR_API_KEY' });
const pdf = await snap.capture({
html: renderTemplate(order), // your own HTML string
format: 'pdf',
width: 1240,
});
writeFileSync('order.pdf', pdf);
Python
from snaprender import SnapRender
snap = SnapRender(api_key="YOUR_API_KEY")
pdf = snap.capture(
url="https://example.com/report",
format="pdf",
full_page=True,
)
with open("report.pdf", "wb") as f:
f.write(pdf)
SnapRender PDFs are pixel-accurate snapshots of the rendered page wrapped as a PDF document. What you see in Chrome is exactly what lands in the file: fonts, gradients, embedded images, the lot. That is the right shape for archives, visual records, compliance snapshots, sharable previews, and design sign-offs.
The trade-off, stated plainly: the PDF does not contain a selectable text layer. If your use case is text documents that need copy-paste, search, or accessibility tooling (contracts, generated invoices for accounting systems), a text-layout PDF engine serves you better. If your use case is "make this page a document that looks exactly right," this API does it in one request.
| Parameter | What it does |
|---|---|
| format=pdf | Switches output from image to PDF |
| url | html | markdown | Exactly one source: a public URL, raw HTML (2 MB), or Markdown (500 KB) |
| full_page=true | Capture the entire scrolled page, not just the viewport |
| width | Page width in pixels (320 to 3,840); 1240 approximates A4 at 150 dpi |
| block_ads, block_cookie_banners | Both on by default for clean documents |
| dark_mode, device, delay | Force dark rendering, emulate a device, or wait for late content |
Full parameter reference in the API docs.
Screenshots as an API call
Send a GET request, get a PNG back. Ads and cookie banners blocked by default.
200 free renders a month. Paid plans start at $9.
200 free renders per month. Every format included. No credit card required.