Capture the entire scrollable page, not just the visible viewport.
Request
curl -X POST https://api.snapopa.com/capture \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"isFullPage": true
}'
const response = await fetch('https://api.snapopa.com/capture', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://example.com',
isFullPage: true,
}),
});
const data = await response.json();
console.log(data.data.fileUrl);
import requests
response = requests.post(
'https://api.snapopa.com/capture',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
json={
'url': 'https://example.com',
'isFullPage': True,
}
)
data = response.json()
print(data['data']['fileUrl'])
With Custom Viewport Width
Control the width while capturing full height:
{
"url": "https://example.com",
"isFullPage": true,
"viewport": {
"width": 1280,
"height": 800
}
}
With isFullPage: true, the height is automatically determined by the page content.
Use Cases
- Archiving - Capture complete page content
- Documentation - Screenshot entire articles or docs
- Testing - Visual regression testing
- PDFs - Generate complete page PDFs
With Wait for Content
For pages with lazy-loaded content:
{
"url": "https://example.com",
"isFullPage": true,
"waitUntil": "networkidle",
"timeout": 60000
}
Full page captures can be resource-intensive:
- Increase timeout - Long pages need more time
- Use
networkidle - Ensures lazy content loads
- Consider WebP - Better compression for large images
- Enable caching - Avoid redundant captures
{
"url": "https://example.com",
"isFullPage": true,
"format": "webp",
"quality": 85,
"waitUntil": "networkidle",
"responseCache": {
"enabled": true,
"ttl": 86400
}
}