Screenshots & PDFs
with one API call

Turn any URL or raw HTML into pixel-perfect screenshots and print-ready PDFs. Headless Chrome, managed for you. No browser farms, no Puppeteer babysitting.

curl -X POST https://api.snapforge.org/v1/screenshot \
  -H "x-api-key: sf_..." \
  -H "content-type: application/json" \
  -d '{"url": "https://example.com", "fullPage": true}' \
  --output shot.png

Why SnapForge

🧾 Invoices & reports

Send your HTML template, get a print-ready PDF back. Perfect for invoices, contracts and exports — no wkhtmltopdf hacks.

🖼 Social & OG images

Render dynamic Open Graph images and link previews from a URL or HTML snippet, at any viewport and scale factor.

📸 Monitoring & archiving

Capture full-page screenshots of competitor pages, dashboards or legal evidence on a schedule.

API documentation

Authentication

Pass your key in the x-api-key header on every request.

POST /v1/screenshot

{
  "url": "https://example.com",   // or "html": "<h1>Hi</h1>"
  "width": 1280, "height": 800,   // viewport (100–3840 / 100–2160)
  "fullPage": false,
  "format": "png",                // png | jpeg
  "quality": 80,                  // jpeg only
  "scale": 1,                     // deviceScaleFactor 1–3
  "delay": 0,                     // extra ms to wait (max 10000)
  "waitUntil": "load"             // load | networkidle
}

Returns the binary image. Response headers expose x-quota-used / x-quota-limit.

POST /v1/pdf

{
  "html": "<h1>Invoice #42</h1>",  // or "url": "https://..."
  "pageFormat": "A4",             // A0–A6, Letter, Legal, Tabloid
  "landscape": false,
  "margin": "1cm",
  "printBackground": true
}

Returns the binary PDF.

GET /v1/usage

Returns your plan, monthly usage and quota as JSON.

Errors

StatusMeaning
401Missing or invalid API key
403Target host not allowed (private network)
413HTML payload over 2 MB
429Monthly quota exhausted — upgrade your plan

Pricing

Free

€0/mo
  • 100 renders / month
  • Screenshots + PDFs
  • No credit card
Get started
POPULAR

Starter

€9/mo
  • 2,000 renders / month
  • Full-page & high-DPI
  • Email support
Subscribe

Pro

€29/mo
  • 10,000 renders / month
  • Priority rendering queue
  • Priority support
Subscribe

Subscribe with the same email as your API key — your quota upgrades automatically within a minute of checkout.

Frequently asked questions

What is SnapForge and how does it work?

SnapForge is a REST API that turns any URL or raw HTML into a screenshot (PNG/JPEG) or a print-ready PDF. Behind each request we run a real headless Chrome browser, so pages render exactly as they would for a visitor — fonts, CSS, web fonts and JavaScript included. You send one HTTP POST, you get the binary file back.

Do I need a credit card to try it?

No. The Free plan includes 100 renders per month and only requires an email address to generate your API key. You can upgrade later from the pricing section — your quota is bumped automatically within a minute of checkout.

What counts as one render?

Every successful screenshot or PDF response counts as one render against your monthly quota. Failed requests (invalid input, unreachable target page, render errors) are automatically refunded and do not consume quota. Your current usage is returned on every response in the x-quota-used and x-quota-limit headers, or via GET /v1/usage.

Can I render raw HTML instead of a URL?

Yes. Both /v1/screenshot and /v1/pdf accept either a url or an html field (up to 2 MB). Sending your own HTML is the typical workflow for invoices, reports and dynamic Open Graph images: render your template server-side, post it, get the file back.

Does it work with JavaScript-heavy pages and SPAs?

Yes. Pages are rendered in headless Chrome with JavaScript enabled. For single-page apps, set "waitUntil": "networkidle" so we wait until network activity settles, and add a delay (up to 10 seconds) if the page needs extra time for animations or late-loading content.

What happens when I reach my monthly quota?

Requests over the limit return HTTP 429 with a clear error message — we never silently bill you for overages. Upgrade to a higher plan to raise the limit instantly, or wait for the quota to reset at the start of the next month.

How do plan upgrades and cancellations work?

Subscriptions are handled by Stripe. Subscribe with the same email you used for your API key and your quota upgrades automatically — no key change, no redeploy. You can cancel anytime; your plan simply drops back to Free at the end of the billing period.

Do you store the pages or files I render?

No. Screenshots and PDFs are generated on the fly, streamed back in the response and never written to disk. We only keep minimal metadata (timestamp, render duration, output size) for quota accounting and abuse prevention.

Why not just run Puppeteer or Playwright myself?

You can — until you have to keep Chrome patched, manage memory leaks and zombie processes, scale concurrent browsers, and debug fonts in Docker. SnapForge manages the browser fleet for you, so a screenshot stays what it should be: one HTTP call.