Website screenshots via API

One GET request. Any URL. Get back a pixel-perfect screenshot as PNG, JPEG or WebP. No Puppeteer setup, no browser management, no headaches.

pixelshot.dev
Enter a URL and hit Capture to see a live preview
How it works

Three steps. That's it.

No SDKs to install. No dependencies. Just HTTP.

01

Get your API key

Sign up with your email. Instant key, no credit card.

02

Make a request

Send a GET with your key and target URL:
/api/screenshot?url=...

03

Get your image

Receive the screenshot as binary. Display it, store it, process it.

Code Examples

Works with any language

If it can make HTTP requests, it works with PixelShot.

cURL
Python
Node.js
PHP
# Basic screenshot curl "https://pixelshot.dev/api/screenshot?key=YOUR_KEY&url=https://stripe.com" \ -o screenshot.png # Full page, dark mode, WebP format curl "https://pixelshot.dev/api/screenshot?key=YOUR_KEY \ &url=https://github.com&full=true&dark=true&format=webp" \ -o github.webp
# pip install requests import requests r = requests.get("https://pixelshot.dev/api/screenshot", params={ "key": "YOUR_KEY", "url": "https://stripe.com", "width": 1280, "format": "png" }) with open("screenshot.png", "wb") as f: f.write(r.content)
const res = await fetch( `https://pixelshot.dev/api/screenshot?key=YOUR_KEY&url=https://stripe.com` ); const buffer = Buffer.from(await res.arrayBuffer()); fs.writeFileSync("screenshot.png", buffer); console.log("Remaining:", res.headers.get("x-remaining"));
$url = "https://pixelshot.dev/api/screenshot?" . http_build_query([ 'key' => 'YOUR_KEY', 'url' => 'https://stripe.com', 'format' => 'png' ]); file_put_contents('screenshot.png', file_get_contents($url));
Features

Everything you need, nothing you don't

📐

Custom Viewport

Width, height, and scale factor. Up to 4K retina resolution.

🎨

PNG · JPEG · WebP

Choose your format. Adjustable quality for JPEG and WebP.

📜

Full Page Capture

Scroll the entire page and capture everything, not just the fold.

🌙

Dark Mode

Force prefers-color-scheme: dark on any site with one param.

Custom Delay

Wait for lazy-loaded content, animations, or SPAs to render.

🔒

HTTPS Everywhere

All traffic encrypted. Your URLs and screenshots stay private.

Pricing

Start free, scale when ready

No credit card required. Upgrade anytime.

Free
$0 /mo
For side projects and testing
  • 100 screenshots/month
  • All formats & features
  • Custom viewport
  • Full page & dark mode
Get Started

Get your API key

Free. Instant. No credit card.