100% Free — Unlimited

The screenshot API
that's completely free

Pixel-perfect webpage captures powered by Chromium. Full-page, dark mode, element selectors, WebP. No API key. No limits. No catch.

Terminal
# Capture any webpage in one line
curl "https://pageshot.info/v1/screenshot?url=https://example.com" \
  --output screenshot.png
Unlimited Screenshots
<3s Avg capture
0 API Keys needed

How it works

Zero to screenshot in two steps. No signup. No API key. No credit cards.

1

Send a URL

Make a GET or POST request with any webpage URL and your options. No API key needed.

2

Get your screenshot

Receive a pixel-perfect PNG, JPEG, or WebP image. Typically under 3 seconds.

Built for developers

One API. Endless possibilities. Powered by Chromium for pixel-perfect accuracy.

Full Page Capture

Capture entire pages including content below the fold. No scroll limits, up to 15,000px height.

full_page: true

Dark Mode

Force dark color scheme on any website with a single parameter.

dark_mode: true

Ad Blocking

Remove ads and cookie banners for clean, professional screenshots.

block_ads: true

Device Emulation

Capture as any device. Custom viewport, scale factor, and user agent. From mobile to 4K.

width: 390, device_scale: 3

Element Selector

Capture specific elements using CSS selectors. Perfect for components and widgets.

selector: "#readme"

CSS Injection

Inject custom CSS before capture. Hide elements, change styles, add branding.

css: "nav { display: none }"

Fast & Reliable

Chromium-based rendering with smart wait strategies. Under 3s average capture time.

Secure by Default

SSRF protection, rate limiting, no internal network access. Your data stays yours.

Works with any language

Simple REST API. If it can make HTTP requests, it can take screenshots.

cURL
# Simple screenshot
curl "https://pageshot.info/v1/screenshot?url=https://example.com" \
  --output screenshot.png

# Full page, dark mode, no ads
curl "https://pageshot.info/v1/screenshot?url=https://news.ycombinator.com\
&full_page=true&dark_mode=true&block_ads=true&format=webp" \
  --output full-dark.webp
Node.js
const response = await fetch('https://pageshot.info/v1/screenshot', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://example.com',
    width: 1920,
    height: 1080,
    full_page: true,
    format: 'png'
  })
});

const buffer = Buffer.from(await response.arrayBuffer());
fs.writeFileSync('screenshot.png', buffer);
Python
import requests

response = requests.post('https://pageshot.info/v1/screenshot',
    json={
        'url': 'https://example.com',
        'width': 1920,
        'height': 1080,
        'full_page': True,
        'dark_mode': True,
        'format': 'png'
    }
)

with open('screenshot.png', 'wb') as f:
    f.write(response.content)
C#
using var client = new HttpClient();

var payload = new {
    url = "https://example.com",
    width = 1920, height = 1080,
    full_page = true, dark_mode = true
};

var response = await client.PostAsJsonAsync(
    "https://pageshot.info/v1/screenshot", payload);

var bytes = await response.Content.ReadAsByteArrayAsync();
await File.WriteAllBytesAsync("screenshot.png", bytes);

Try it live

Enter any public URL and watch the API capture it in real-time. No signup required.

Your screenshot will appear here Enter a URL and hit capture

FAQ

Everything you need to know about PageShot API.

How fast are screenshots captured?

Most screenshots complete in 1-3 seconds. Complex pages with heavy JavaScript may take up to 10 seconds. You can set a custom timeout per request.

Do you store my screenshots?

No. Screenshots are generated on-the-fly and streamed directly to you. We do not store, cache, or log your captured images.

What regions are your servers in?

Currently deployed in Azure West Europe. We plan to add US East and Asia Pacific regions for lower latency worldwide.

Is there a rate limit?

30 requests per minute per IP address. Rate limit headers are included in every response so you can track usage programmatically.

What output formats are supported?

PageShot supports PNG, JPEG, and WebP output formats. You can specify the format via the format parameter in your API request. WebP offers the best compression for web use.

Do I need to sign up to use PageShot?

No signup and no API key required. Just send a URL to our API endpoint and get your screenshot back. Start capturing in under 10 seconds.

Start capturing today

Completely free. No API key. No signup. No limits. Just screenshots.

Developer toolkit family

PageShot works beautifully alongside our other developer APIs.