Different jobs need different image formats. Link previews want small JPEGs, documentation wants lossless PNGs, and modern frontends want WebP. Screenshotty exposes them all through a single format parameter: image/png, image/jpeg, image/webp, image/gif, image/jp2, image/tiff, or application/pdf.
Every capture supports the same options — custom viewports up to 4K, full-page scrolling capture, CSS-selector cropping, geo-targeting, and dark-mode rendering — regardless of output format.
Try the free Website Screenshot toolimport requestsresponse = requests.get("https://api.screenshotty.link/api/v1/screenshot",params={"url": "https://example.com","format": "image/webp","viewport_width": 1280,"viewport_height": 800,},headers={"X-Api-Key": "YOUR_API_KEY"},)with open("screenshot.webp", "wb") as f:f.write(response.content)
PNG, JPEG, WebP, GIF, JP2, TIFF, and PDF from the same endpoint — switch with a single parameter.
Mobile (390×844) to 4K (3840×2160), with device presets and retina scaling via device_scale_factor.
Force light_mode=dark or light to capture both themes of the same page — great for marketing assets.
Get the binary image back directly, or response_type=json to receive a hosted URL you can pass around.
PNG (lossless, supports transparency), JPEG (smallest files), WebP (modern web), GIF, JP2, TIFF, and PDF. Set the format parameter to any of them on the same endpoint.
Yes. The GET endpoint accepts all options as query parameters, so a signed request URL can be used directly as an image src, or use response_type=json to get a hosted image URL.
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.