PNG is the right format when you need lossless quality: UI snapshots, documentation images, visual archives, or anywhere text must stay crisp. Screenshotty renders the page in a real headless Chrome browser and returns the PNG directly, so you can embed the endpoint in an <img> tag or fetch it from your backend.
Unlike DIY headless-browser setups, there is nothing to host, patch, or scale. Pass the URL, get the PNG.
Try the free Website Screenshot toolcurl "https://api.screenshotty.link/api/v1/screenshot?url=https://example.com&format=image/png&full_page=true" \-H "X-Api-Key: YOUR_API_KEY" \--output screenshot.png
const response = await fetch("https://api.screenshotty.link/api/v1/screenshot", {method: "POST",headers: {"X-Api-Key": process.env.SCREENSHOTTY_API_KEY,"Content-Type": "application/json",},body: JSON.stringify({url: "https://example.com",format: "image/png",transparent_background: false,full_page: true,}),});const png = Buffer.from(await response.arrayBuffer());
Sharp text and exact colors at any viewport size, up to 4K (3840×2160) with retina device_scale_factor support.
Set transparent_background=true to strip the page background — ideal for capturing UI components or rendering assets.
Built-in ad blocking and cookie-banner blocking so your PNGs show content, not consent pop-ups.
Capture the entire scrollable page with full_page=true, or a single element with a CSS selector.
Send a GET request to https://api.screenshotty.link/api/v1/screenshot with your target url and format=image/png. The API renders the page in headless Chrome and returns the PNG. Get a free API key at screenshotty.link — 100 screenshots per month, no credit card required.
Yes. Pass transparent_background=true (PNG only) and the page background is removed — useful for capturing isolated components, charts, or rendering image assets.
Yes. Screenshotty includes 100 screenshots per month for free with no credit card required. Paid plans start at $9/month for 2,500 screenshots, with pay-as-you-go overage at $0.004 per screenshot.
Yes. Every capture runs in a real headless Chrome browser, so single-page apps, lazy-loaded images, and dynamic content render exactly as they do for a real visitor. You can also wait for a specific ready event or add a custom delay with wait_ms.