Buy credits one-time and use them whenever — credits never expire. Great for agencies, side projects, and one-off batches.
One API for screenshots and PDFs. Buy credits once, use them whenever — credits never expire. Or pick a monthly plan. No subscription required.
100 free renders / month · no credit card · cancel anytime
Add screenshots and PDFs to any app in minutes.
# Screenshot a URL → PNG curl -X POST https://screenshotapis.org/v1/screenshot \ -H "X-Api-Key: sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com", "format": "png"}' \ --output screenshot.png # Render HTML → PDF curl -X POST https://screenshotapis.org/v1/pdf \ -H "X-Api-Key: sk_live_your_key" \ -H "Content-Type: application/json" \ -d '{"html": "<h1>Hello</h1>", "format": "A4"}' \ --output document.pdf
# pip install screenshotapis from screenshotapis import Client client = Client("sk_live_your_key") # Screenshot png = client.screenshot("https://example.com") with open("screenshot.png", "wb") as f: f.write(png) # PDF pdf = client.pdf(html="<h1>Invoice #42</h1>") with open("invoice.pdf", "wb") as f: f.write(pdf)
// npm install screenshotapis import Client from "screenshotapis"; import fs from "fs"; const client = new Client("sk_live_your_key"); // Screenshot const png = await client.screenshot({ url: "https://example.com" }); fs.writeFileSync("screenshot.png", Buffer.from(png)); // PDF const pdf = await client.pdf({ html: "<h1>Invoice #42</h1>" }); fs.writeFileSync("invoice.pdf", Buffer.from(pdf));
package main import ( "bytes"; "io"; "net/http"; "os" ) func main() { body := []byte(`{"url":"https://example.com","format":"png"}`) req, _ := http.NewRequest("POST", "https://screenshotapis.org/v1/screenshot", bytes.NewReader(body)) req.Header.Set("X-Api-Key", "sk_live_your_key") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) data, _ := io.ReadAll(resp.Body) os.WriteFile("screenshot.png", data, 0644) }
Production-ready from day one.
PNG, JPEG, or WebP. Full-page or viewport. Retina-quality. Perfect for link thumbnails and visual regression.
A4, Letter, Legal, Tabloid. Custom margins and headers. Great for invoices and report generation.
Pass a CSS selector to capture just one element. Render dynamic social cards from your own HTML.
Render any public URL or inject your own HTML directly — no hosting required.
Block ads, trackers, and cookie banners for clean captures. One flag, 40+ ad networks blocked.
Inject custom CSS or JavaScript before capture. Hide elements, change styles, run setup code.
Powered by Playwright + Chromium. Sub-second renders. Custom wait strategies and user agents.
Get results async. Add a webhook_url and we POST the render result when it's ready. HMAC-signed.
Click any card to render it in the demo above — live, with our API.
1 credit = 1 render. Pick a monthly plan, or buy credits one-time and use them whenever.
Buy credits one-time and use them whenever — credits never expire. Great for agencies, side projects, and one-off batches.
Need more? Contact us for volume pricing.