API Online — 99.9% Uptime

Screenshot any website
in one API call.

Capture pixel-perfect screenshots and extract Open Graph metadata. Fast rendering. Simple pricing. No browser management headaches.

terminal
# 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"
  }
}

Everything you need

One API, two endpoints, zero complexity. Built for developers who value their time.

Pixel-Perfect Screenshots

Full page or viewport. Custom dimensions. Device emulation. Dark mode. PNG or JPEG. You choose.

OG Metadata Extraction

Title, description, image, favicon, Twitter cards — extracted from any URL in structured JSON.

Sub-Second Renders

Most screenshots captured in under 2 seconds. Synchronous responses — no polling, no webhooks needed.

SSRF Protected

Private IPs blocked by default. No access to internal networks. Safe to use in production.

Developer-First

Simple REST API. Works with curl. No SDK required. JSON or binary responses. Your choice.

Dark Mode Capture

Set dark_mode: true to capture sites in their dark theme. One parameter.

Try it now

Enter any URL and watch it capture in real-time.

Simple, transparent pricing

Start free. Scale as you grow. No hidden fees.

Free

$0 /month
  • 100 screenshots/month
  • OG metadata extraction
  • All formats & options
Get Started

Starter

$19 /month
  • 5,000 screenshots/month
  • OG metadata extraction
  • Priority rendering
Get Started

Business

$149 /month
  • 100,000 screenshots/month
  • OG metadata extraction
  • Priority rendering
  • Dedicated support
Get Started

Works with everything

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());