How to Take a Screenshot of Any Website with One API Call
No browser installation. No Puppeteer. No chromedriver version pinning. One API call, one PNG back.
curl -X POST https://api.pagebolt.dev/v1/screenshot \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}' \
--output screenshot.png
That's it. screenshot.png lands in your current directory.
Get an API key free at pagebolt.dev — 100 requests/month, no credit card.
Full-page screenshot
Capture the entire scrollable page, not just the visible viewport:
curl -X POST https://api.pagebolt.dev/v1/screenshot \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"fullPage": true
}' \
--output fullpage.png
Remove cookie banners and ads
Most pages have cookie consent popups that ruin screenshots. Block them:
curl -X POST https://api.pagebolt.dev/v1/screenshot \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"fullPage": true,
"blockBanners": true,
"blockAds": true
}' \
--output clean.png
blockBanners removes GDPR popups (CookieBot, OneTrust, etc.) automatically.
Mobile screenshot
curl -X POST https://api.pagebolt.dev/v1/screenshot \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"viewportDevice": "iphone_14_pro"
}' \
--output mobile.png
25+ device presets: iphone_14_pro, ipad_pro, samsung_galaxy_s23, macbook_pro_16, and more.
JPEG or WebP instead of PNG
curl -X POST https://api.pagebolt.dev/v1/screenshot \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"format": "jpeg",
"quality": 85
}' \
--output screenshot.jpg
JPEG is 3–5× smaller than PNG for photos. WebP is smaller still.
Screenshot a page behind a login
curl -X POST https://api.pagebolt.dev/v1/screenshot \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://app.example.com/dashboard",
"cookies": ["session=abc123; Domain=example.com"]
}' \
--output dashboard.png
Copy the session cookie value from your browser's DevTools (Application → Cookies) after logging in.
Screenshot in Node.js
import fs from 'fs';
const res = await fetch('https://api.pagebolt.dev/v1/screenshot', {
method: 'POST',
headers: {
'x-api-key': process.env.PAGEBOLT_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://example.com',
fullPage: true,
blockBanners: true
})
});
fs.writeFileSync('screenshot.png', Buffer.from(await res.arrayBuffer()));
Screenshot in Python
import requests
res = requests.post(
'https://api.pagebolt.dev/v1/screenshot',
headers={'x-api-key': 'YOUR_API_KEY'},
json={'url': 'https://example.com', 'fullPage': True, 'blockBanners': True}
)
with open('screenshot.png', 'wb') as f:
f.write(res.content)
When the site blocks headless browsers
Some sites detect and block headless browsers, returning a blank page or CAPTCHA. Add stealth: true:
curl -X POST https://api.pagebolt.dev/v1/screenshot \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"stealth": true,
"fullPage": true
}' \
--output screenshot.png
Stealth mode masks browser fingerprints so bot-detection walls don't trigger.
Step up: record a narrated video instead
Screenshots show state. If you need to show a flow — a signup, a checkout, a multi-step process — record a narrated video instead:
curl -X POST https://api.pagebolt.dev/v1/video \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"steps": [
{"action": "navigate", "url": "https://yourapp.com"},
{"action": "click", "selector": "#get-started"},
{"action": "screenshot", "name": "result"}
],
"audioGuide": {
"enabled": true,
"voice": "nova",
"script": "Welcome. {{2}} Click Get Started."
}
}' \
--output demo.mp4
Same API key. One call. MP4 with AI narration.
Get Started Free
100 screenshots/month, no credit card
Screenshots, PDFs, OG images, narrated videos — all from the same API key.
Get Your Free API Key →