Screenshot API Code Examples
Copy-paste ready code examples in cURL, JavaScript, Python, PHP, Ruby, and Go. Get started capturing screenshots in minutes.
API Endpoint
GET https://api.rasterwise.com/v1/get-screenshot
Basic Screenshot
The simplest API call - just provide your API key and the URL to capture.
curl -G "https://api.rasterwise.com/v1/get-screenshot" \
--data-urlencode "apikey=YOUR_API_KEY" \
--data-urlencode "url=https://example.com"
const apiKey = 'YOUR_API_KEY';
const targetUrl = 'https://example.com';
const params = new URLSearchParams({
apikey: apiKey,
url: targetUrl
});
const response = await fetch(
`https://api.rasterwise.com/v1/get-screenshot?${params}`
);
const data = await response.json();
console.log(data.screenshotImage); // URL to screenshot
import requests
api_key = 'YOUR_API_KEY'
target_url = 'https://example.com'
response = requests.get(
'https://api.rasterwise.com/v1/get-screenshot',
params={
'apikey': api_key,
'url': target_url
}
)
data = response.json()
print(data['screenshotImage']) # URL to screenshot
<?php
$apiKey = 'YOUR_API_KEY';
$targetUrl = 'https://example.com';
$params = http_build_query([
'apikey' => $apiKey,
'url' => $targetUrl
]);
$response = file_get_contents(
"https://api.rasterwise.com/v1/get-screenshot?{$params}"
);
$data = json_decode($response, true);
echo $data['screenshotImage']; // URL to screenshot
require 'net/http'
require 'json'
require 'uri'
api_key = 'YOUR_API_KEY'
target_url = 'https://example.com'
uri = URI('https://api.rasterwise.com/v1/get-screenshot')
uri.query = URI.encode_www_form({
apikey: api_key,
url: target_url
})
response = Net::HTTP.get(uri)
data = JSON.parse(response)
puts data['screenshotImage'] # URL to screenshot
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
func main() {
apiKey := "YOUR_API_KEY"
targetUrl := "https://example.com"
params := url.Values{}
params.Add("apikey", apiKey)
params.Add("url", targetUrl)
resp, _ := http.Get(
"https://api.rasterwise.com/v1/get-screenshot?" + params.Encode(),
)
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Println(data["screenshotImage"])
}
Full Page Screenshot
Capture the entire scrollable length of a webpage with fullpage=true.
curl -G "https://api.rasterwise.com/v1/get-screenshot" \
--data-urlencode "apikey=YOUR_API_KEY" \
--data-urlencode "url=https://example.com/long-page" \
--data-urlencode "fullpage=true" \
--data-urlencode "width=1280"
const params = new URLSearchParams({
apikey: 'YOUR_API_KEY',
url: 'https://example.com/long-page',
fullpage: 'true',
width: '1280'
});
const response = await fetch(
`https://api.rasterwise.com/v1/get-screenshot?${params}`
);
const data = await response.json();
// data.screenshotImage contains the full page screenshot
import requests
response = requests.get(
'https://api.rasterwise.com/v1/get-screenshot',
params={
'apikey': 'YOUR_API_KEY',
'url': 'https://example.com/long-page',
'fullpage': 'true',
'width': '1280'
}
)
data = response.json()
# data['screenshotImage'] contains the full page screenshot
PDF Generation
Generate a PDF document from any webpage with format=pdf.
curl -G "https://api.rasterwise.com/v1/get-screenshot" \
--data-urlencode "apikey=YOUR_API_KEY" \
--data-urlencode "url=https://example.com/article" \
--data-urlencode "format=pdf" \
--data-urlencode "pdfFormat=A4"
const params = new URLSearchParams({
apikey: 'YOUR_API_KEY',
url: 'https://example.com/article',
format: 'pdf',
pdfFormat: 'A4'
});
const response = await fetch(
`https://api.rasterwise.com/v1/get-screenshot?${params}`
);
const data = await response.json();
console.log(data.pdfFile); // URL to PDF file
import requests
response = requests.get(
'https://api.rasterwise.com/v1/get-screenshot',
params={
'apikey': 'YOUR_API_KEY',
'url': 'https://example.com/article',
'format': 'pdf',
'pdfFormat': 'A4'
}
)
data = response.json()
print(data['pdfFile']) # URL to PDF file
Custom Viewport Size
Capture mobile, tablet, or custom dimensions with width and height.
# iPhone 14 viewport
curl -G "https://api.rasterwise.com/v1/get-screenshot" \
--data-urlencode "apikey=YOUR_API_KEY" \
--data-urlencode "url=https://example.com" \
--data-urlencode "width=390" \
--data-urlencode "height=844" \
--data-urlencode "deviceScaleFactor=3"
// iPhone 14 viewport
const params = new URLSearchParams({
apikey: 'YOUR_API_KEY',
url: 'https://example.com',
width: '390',
height: '844',
deviceScaleFactor: '3' // Retina 3x
});
const response = await fetch(
`https://api.rasterwise.com/v1/get-screenshot?${params}`
);
# iPhone 14 viewport
import requests
response = requests.get(
'https://api.rasterwise.com/v1/get-screenshot',
params={
'apikey': 'YOUR_API_KEY',
'url': 'https://example.com',
'width': '390',
'height': '844',
'deviceScaleFactor': '3' # Retina 3x
}
)
Element Screenshot
Capture a specific element using CSS selector with selector.
# Capture just the main article content
curl -G "https://api.rasterwise.com/v1/get-screenshot" \
--data-urlencode "apikey=YOUR_API_KEY" \
--data-urlencode "url=https://example.com/blog-post" \
--data-urlencode "selector=article.main-content"
// Capture just the main article content
const params = new URLSearchParams({
apikey: 'YOUR_API_KEY',
url: 'https://example.com/blog-post',
selector: 'article.main-content'
});
const response = await fetch(
`https://api.rasterwise.com/v1/get-screenshot?${params}`
);
# Capture just the main article content
import requests
response = requests.get(
'https://api.rasterwise.com/v1/get-screenshot',
params={
'apikey': 'YOUR_API_KEY',
'url': 'https://example.com/blog-post',
'selector': 'article.main-content'
}
)
Hide Elements
Remove unwanted elements like ads, popups, or chat widgets with hideSelector.
# Hide ads, popups, and chat widgets
curl -G "https://api.rasterwise.com/v1/get-screenshot" \
--data-urlencode "apikey=YOUR_API_KEY" \
--data-urlencode "url=https://example.com" \
--data-urlencode "hideSelector=.ads, #popup, .chat-widget, .cookie-banner" \
--data-urlencode "hideCookieBanners=true"
// Hide ads, popups, and chat widgets
const params = new URLSearchParams({
apikey: 'YOUR_API_KEY',
url: 'https://example.com',
hideSelector: '.ads, #popup, .chat-widget, .cookie-banner',
hideCookieBanners: 'true'
});
const response = await fetch(
`https://api.rasterwise.com/v1/get-screenshot?${params}`
);
# Hide ads, popups, and chat widgets
import requests
response = requests.get(
'https://api.rasterwise.com/v1/get-screenshot',
params={
'apikey': 'YOUR_API_KEY',
'url': 'https://example.com',
'hideSelector': '.ads, #popup, .chat-widget, .cookie-banner',
'hideCookieBanners': 'true'
}
)
Custom JavaScript Injection
Run JavaScript before capturing with js parameter. Perfect for interacting with the page.
# Click "Accept cookies" and expand collapsed sections
curl -G "https://api.rasterwise.com/v1/get-screenshot" \
--data-urlencode "apikey=YOUR_API_KEY" \
--data-urlencode "url=https://example.com" \
--data-urlencode "js=document.querySelector('.accept-cookies')?.click(); document.querySelectorAll('.expand-btn').forEach(b => b.click());" \
--data-urlencode "waitTime=2000"
// Click "Accept cookies" and expand collapsed sections
const customJs = `
document.querySelector('.accept-cookies')?.click();
document.querySelectorAll('.expand-btn').forEach(b => b.click());
`;
const params = new URLSearchParams({
apikey: 'YOUR_API_KEY',
url: 'https://example.com',
js: customJs,
waitTime: '2000' // Wait 2s for animations
});
const response = await fetch(
`https://api.rasterwise.com/v1/get-screenshot?${params}`
);
# Click "Accept cookies" and expand collapsed sections
import requests
custom_js = """
document.querySelector('.accept-cookies')?.click();
document.querySelectorAll('.expand-btn').forEach(b => b.click());
"""
response = requests.get(
'https://api.rasterwise.com/v1/get-screenshot',
params={
'apikey': 'YOUR_API_KEY',
'url': 'https://example.com',
'js': custom_js,
'waitTime': '2000' # Wait 2s for animations
}
)
Wait Options
Control when to capture with waitUntil and waitTime.
# Wait for network to be completely idle, plus 3 extra seconds
curl -G "https://api.rasterwise.com/v1/get-screenshot" \
--data-urlencode "apikey=YOUR_API_KEY" \
--data-urlencode "url=https://example.com/dashboard" \
--data-urlencode "waitUntil=networkidle0" \
--data-urlencode "waitTime=3000"
// Wait for network to be completely idle, plus 3 extra seconds
const params = new URLSearchParams({
apikey: 'YOUR_API_KEY',
url: 'https://example.com/dashboard',
waitUntil: 'networkidle0', // Or: networkidle2, domcontentloaded, load
waitTime: '3000' // Additional 3s wait
});
const response = await fetch(
`https://api.rasterwise.com/v1/get-screenshot?${params}`
);
| waitUntil Value | Description |
|---|---|
| load | Wait for load event (default) |
| domcontentloaded | Wait for DOMContentLoaded event |
| networkidle2 | Wait until fewer than 2 network connections for 500ms |
| networkidle0 | Wait until no network connections for 500ms (strictest) |
API Parameters Reference
Complete list of available parameters
| Parameter | Type | Description |
|---|---|---|
| apikey | string | Your API key (required) |
| url | string | URL to capture (required) |
| width | number | Viewport width in pixels (default: 1280) |
| height | number | Viewport height in pixels (default: 800) |
| fullpage | boolean | Capture entire scrollable page |
| format | string | Output format: png, jpeg, webp, pdf |
| selector | string | CSS selector for element screenshot |
| hideSelector | string | CSS selectors to hide (comma-separated) |
| hideCookieBanners | boolean | Auto-hide cookie consent banners |
| js | string | JavaScript to execute before capture |
| css | string | CSS to inject before capture |
| waitUntil | string | When to consider page loaded |
| waitTime | number | Additional wait time in ms |
| deviceScaleFactor | number | Pixel density (1, 2, or 3 for retina) |
Ready to Start Capturing Screenshots?
Get your API key and start capturing screenshots in minutes. Plans start at $5/month with 2,500 screenshots included.