Screenshot API
That Actually Works
Cookie banners, lazy loading, anti-bot protection — handled. Get pixel-perfect screenshots of any website with one API call.
Built for Developers
One API call. No browser management, no cookie handling, no proxy rotation. We solved the hard parts.
Cookie Banner Removal
10,000+ cookie consent patterns handled automatically. No more GDPR banners ruining your screenshots.
Anti-Bot Bypass
Stealth browser technology that works on sites protected by Cloudflare, DataDome, and other bot detectors.
Batch & Async
Submit up to 5,000 URLs in a single API call. Get results via webhooks or polling. Perfect for large-scale capture.
HTML to Image
Render HTML/CSS directly to PNG, JPEG, or WebP. Generate invoices, OG images, and email templates programmatically.
MCP for AI Agents
Connect Claude, ChatGPT, or any MCP-compatible AI agent. One config line — your agent can screenshot any website.
Upload to Your S3/R2
Screenshots uploaded directly to your AWS S3 or Cloudflare R2 bucket. No intermediate storage, no extra latency.
Smart Caching
Same URL twice? Instant response from cache in 300ms. Cached requests are free and don't count against your quota.
SPA & Lazy Loading
React, Vue, Angular — we scroll, wait, and capture everything. Even infinite scroll pages with lazy-loaded content.
From cURL to Production
in 2 Minutes
One endpoint. Any language. Paste the snippet and ship.
curl -X POST https://api.fastscreenshotapi.com/v1/screenshot \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","format":"png","full_page":true}' \
--output screenshot.pngconst response = await fetch('https://api.fastscreenshotapi.com/v1/screenshot', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://example.com',
format: 'png',
full_page: true,
response_type: 'json',
}),
});
const data = await response.json();
const imageBuffer = Buffer.from(data.screenshot, 'base64');import requests
import base64
response = requests.post(
'https://api.fastscreenshotapi.com/v1/screenshot',
headers={'X-Api-Key': 'YOUR_API_KEY'},
json={
'url': 'https://example.com',
'format': 'png',
'full_page': True,
'response_type': 'json',
},
)
data = response.json()
image_data = base64.b64decode(data['screenshot'])
with open('screenshot.png', 'wb') as f:
f.write(image_data)$response = Http::withHeaders([
'X-Api-Key' => 'YOUR_API_KEY',
])->post('https://api.fastscreenshotapi.com/v1/screenshot', [
'url' => 'https://example.com',
'format' => 'png',
'full_page' => true,
'response_type' => 'json',
]);
$data = $response->json();
$imageData = base64_decode($data['screenshot']);
file_put_contents('screenshot.png', $imageData);<img src="https://api.fastscreenshotapi.com/v1/screenshot?url=https://example.com&api_key=YOUR_API_KEY&format=png" />Simple, Transparent Pricing
Start free. Scale as you grow.
Free $0/mo 200/mo | Starter $12/mo 3,000/mo | Popular Pro $39/mo 20,000/mo | Business $89/mo 80,000/mo | Enterprise $249/mo 300,000/mo | |
|---|---|---|---|---|---|
| PNG, JPEG, WebP, PDF | |||||
| Full-page capture | |||||
| Cookie banner removal | |||||
| Block ads | |||||
| Smart caching | |||||
| Lazy loading handling | |||||
| Signed download URLs | |||||
| Custom viewport & device | |||||
| Retina/2x support | |||||
| Custom CSS injection | — | ||||
| Hide page elements | — | ||||
| Anti-bot bypass | — | ||||
| HTML rendering | — | ||||
| Async screenshots | — | ||||
| Webhook delivery | — | ||||
| Batch API | — | up to 100 URLs | up to 500 URLs | up to 1,000 URLs | up to 5,000 URLs |
| Custom Headers | — | — | |||
| Custom Cookies | — | — | |||
| Upload to your S3/R2 | — | — | |||
| Zapier, Make, n8n | |||||
| Geo targeting (BYOP / Managed) | — | ||||
| Priority rendering queue | — | — | — | ||
| Dedicated support | — | — | — | — |
Need more screenshots?
We offer custom plans for high-volume needs. Let's find the right solution for you.
Contact us