Send a URL. Get a screenshot. Raw or beautiful. One API call, no browser to manage, no Puppeteer configs to debug at 2am.
Your alternative is 200 lines of Puppeteer config, a headless Chrome instance, and a prayer. We're not monsters.
curl https://api.nightglass.xyz/v1/screenshot \ -H "Authorization: Bearer ng_live_abc123..." \ -d '{"url": "https://stripe.com", "format": "png", "width": 1280}' \ -o stripe.png
const res = await fetch('https://api.nightglass.xyz/v1/screenshot', { method: 'POST', headers: { 'Authorization': `Bearer ${NIGHTGLASS_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://stripe.com', format: 'png', width: 1280 }) }); const screenshot = await res.blob();
import requests resp = requests.post( "https://api.nightglass.xyz/v1/screenshot", headers={"Authorization": f"Bearer {NIGHTGLASS_KEY}"}, json={"url": "https://stripe.com", "format": "png", "width": 1280} ) with open("stripe.png", "wb") as f: f.write(resp.content)
// Same endpoint. One extra param. CleanShot-quality output. const res = await fetch('https://api.nightglass.xyz/v1/screenshot', { method: 'POST', headers: { 'Authorization': `Bearer ${NIGHTGLASS_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://stripe.com', style: 'mockup', // the magic background: 'gradient', // or any hex colour padding: 64, borderRadius: 12, shadow: true, frame: 'browser', // 'browser' | 'phone' | 'none' }) }); const beautiful = await res.blob();
Built for developers who've been burned by screenshot APIs that promise the world, then deliver a 500 when you need them most.
CleanShot-quality presentation via API. Gradient backgrounds, rounded corners, browser frames, drop shadows. One param: style: "mockup".
Send raw HTML instead of a URL. Perfect for email template previews, invoice rendering, dynamic OG images, and anything you build on the fly.
Desktop, tablet, mobile. Set exact pixel dimensions. We render the page exactly as a real browser would — because we are one.
Warm browser pool, no cold starts. Most screenshots under 1.5 seconds. Full-page scrolls take a bit longer. Still faster than your CI pipeline.
Private IP blocking, DNS rebinding protection, protocol whitelisting. We block the sketchy stuff so you don't have to think about it.
Get title, description, OG tags, and favicon alongside your screenshot. One call builds a complete link preview card. No extra requests.
Every competitor makes you pick a plan. We don't. Pay for what you capture. That's it.
Half a cent. All features included. No subscriptions.
50 free screenshots on signup · $5 minimum top-up · Credits never expire
Get your API key50 free screenshots. No credit card. Takes 30 seconds. You were going to spend longer reading this paragraph.
Get your API key