Capture pixel-perfect screenshots programmatically. Stealth technology bypasses bot detection. Simple REST endpoint, instant results.
Built for developers who need reliable, high-quality screenshots without the hassle.
Powered by Camoufox anti-detection browser. Bypass CAPTCHAs and bot protection automatically.
Optimized rendering engine delivers screenshots in milliseconds, not seconds.
Mobile, tablet, desktop — capture any viewport from 320px to 4K resolution.
Capture entire scrollable pages or just the visible viewport — your choice.
Your data never stored. Screenshots delivered directly via secure API.
One endpoint, one API key. Integrate in minutes with any language.
Simple REST API that just works. No SDKs required.
# cURL example
curl -X GET "https://api.screenshotforge.dev/v1/screenshot" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "url=https://example.com" \
-d "width=1280" \
-d "height=800" \
-d "format=png" \
--output screenshot.png
| Parameter | Type | Description |
|---|---|---|
url required |
string | The URL to capture (must include https://) |
width optional |
integer | Viewport width in pixels (default: 1280, max: 3840) |
height optional |
integer | Viewport height in pixels (default: 800, max: 2160) |
format optional |
string | Output format: png, jpeg, webp (default: png) |
fullPage optional |
boolean | Capture full scrollable page (default: false) |
delay optional |
integer | Wait time in ms before capture (default: 0, max: 10000) |
quality optional |
integer | JPEG/WebP quality 1-100 (default: 80) |
const response = await fetch( 'https://api.screenshotforge.dev/v1/screenshot', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://example.com', width: 1280, height: 800, format: 'png' }) } ); const imageBlob = await response.blob();
import requests response = requests.get( 'https://api.screenshotforge.dev/v1/screenshot', headers={'Authorization': 'Bearer YOUR_API_KEY'}, params={ 'url': 'https://example.com', 'width': 1280, 'height': 800, 'format': 'png' } ) with open('screenshot.png', 'wb') as f: f.write(response.content)
Pay for what you use. No hidden fees, no surprises.
50 screenshots/month
Perfect for trying out the API
500 screenshots/month
~$0.02 per screenshot
5,000 screenshots/month
~$0.006 per screenshot
Unlimited screenshots
For high-volume production use
All prices in AUD. Questions? Contact us