See how ScreenshotPro intelligently captures and transforms web pages
Get started in minutes with our developer-friendly REST API
const response = await fetch('https://api.screenshotpro.io/v1/screenshot', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://example.com',
full_page: true,
block_ads: true,
dark_mode: false,
viewport: { width: 1920, height: 1080 }
})
});
const data = await response.json();
console.log('Screenshot URL:', data.screenshot_url);
import requests
response = requests.post(
'https://api.screenshotpro.io/v1/screenshot',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'url': 'https://example.com',
'full_page': True,
'block_ads': True,
'dark_mode': False,
'viewport': {'width': 1920, 'height': 1080}
}
)
data = response.json()
print(f'Screenshot URL: {data["screenshot_url"]}')
<?php
$ch = curl_init('https://api.screenshotpro.io/v1/screenshot');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'url' => 'https://example.com',
'full_page' => true,
'block_ads' => true,
'dark_mode' => false,
'viewport' => ['width' => 1920, 'height' => 1080]
]));
$response = curl_exec($ch);
$data = json_decode($response, true);
echo "Screenshot URL: {$data['screenshot_url']}\n";
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
payload := map[string]interface{}}{
"url": "https://example.com",
"full_page": true,
"block_ads": true,
"dark_mode": false,
"viewport": map[string]int{"width": 1920, "height": 1080},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://api.screenshotpro.io/v1/screenshot", bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
fmt.Println("Screenshot captured successfully")
}
require 'net/http'
require 'json'
uri = URI('https://api.screenshotpro.io/v1/screenshot')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = {
url: 'https://example.com',
full_page: true,
block_ads: true,
dark_mode: false,
viewport: { width: 1920, height: 1080 }
}.to_json
response = http.request(request)
data = JSON.parse(response.body)
puts "Screenshot URL: #{data['screenshot_url']}"
Everything you need to capture perfect screenshots at scale
Remove distractions with 50,000+ blocking rules. Capture clean, professional screenshots without ads, banners, or cookie notices.
Automatically render any website in dark mode. Perfect for documentation, testing, and showcasing dark themes.
Capture entire web pages in a single screenshot. Automatically scrolls and stitches content beyond the viewport.
Inject custom styles or scripts before capture. Hide elements, change layouts, or trigger interactions programmatically.
Test responsive designs across devices. Emulate mobile, tablet, and desktop viewports with accurate rendering.
Connect with Zapier, Airtable, Make, Bubble, and n8n. Automate screenshot workflows without writing code.
Official SDKs and integrations for your favorite languages and platforms
See what developers are saying about ScreenshotPro
"ScreenshotPro has been rock-solid for our preview card generation. The API is intuitive, the documentation is excellent, and the uptime is exactly as advertised. Highly recommended!"
"We switched from another provider and haven't looked back. The caching alone has saved us thousands in API costs. Support is responsive and actually understands technical issues."
"Finally, a screenshot API that just works. No more dealing with browser inconsistencies or timeout issues. The Python SDK made integration a breeze. Worth every penny."
"Transparent pricing, reliable service, and great developer experience. We've been using ScreenshotPro for 6 months and it's been flawless. The mobile device emulation is spot-on."
"Integrating ScreenshotPro into our monitoring pipeline was straightforward. The API response times are consistently fast, and the image quality is excellent. No complaints whatsoever."
"Best screenshot API I've used. The customization options (blocking ads, injecting CSS) are powerful. Documentation is clear with plenty of examples. Customer for life!"
Join thousands of developers who trust ScreenshotPro
Start Free Trial →