Capture pixel-perfect screenshots and extract Open Graph metadata. Fast rendering. Simple pricing. No browser management headaches.
# Capture a screenshot
curl -X POST https://cwick.us/v1/screenshot \
-H "X-API-Key: cw_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "width": 1920, "height": 1080}' \
--output screenshot.png
# Extract Open Graph metadata
curl "https://cwick.us/v1/og?url=https://github.com" \
-H "X-API-Key: cw_live_your_key_here"
{
"data": {
"title": "GitHub",
"description": "Where the world builds software",
"image": "https://github.githubassets.com/images/...",
"favicon": "https://github.githubassets.com/favicons/favicon.svg"
}
}
One API, two endpoints, zero complexity. Built for developers who value their time.
Full page or viewport. Custom dimensions. Device emulation. Dark mode. PNG or JPEG. You choose.
Title, description, image, favicon, Twitter cards — extracted from any URL in structured JSON.
Most screenshots captured in under 2 seconds. Synchronous responses — no polling, no webhooks needed.
Private IPs blocked by default. No access to internal networks. Safe to use in production.
Simple REST API. Works with curl. No SDK required. JSON or binary responses. Your choice.
Set dark_mode: true to capture sites in their dark theme. One parameter.
Enter any URL and watch it capture in real-time.
Start free. Scale as you grow. No hidden fees.
No SDK needed. Just HTTP.
curl -X POST https://cwick.us/v1/screenshot \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}' \
--output screenshot.png
const response = await fetch('https://cwick.us/v1/screenshot', {
method: 'POST',
headers: {
'X-API-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://example.com',
width: 1920,
height: 1080,
format: 'jpeg',
}),
});
const blob = await response.blob();
// Use the screenshot...
import requests
response = requests.post(
'https://cwick.us/v1/screenshot',
headers={'X-API-Key': 'YOUR_API_KEY'},
json={
'url': 'https://example.com',
'width': 1920,
'height': 1080,
}
)
with open('screenshot.png', 'wb') as f:
f.write(response.content)
$response = Http::withHeaders([
'X-API-Key' => 'YOUR_API_KEY',
])->post('https://cwick.us/v1/screenshot', [
'url' => 'https://example.com',
'width' => 1920,
'height' => 1080,
]);
Storage::put('screenshot.png', $response->body());