100 Free Screenshots / Month

The screenshot API
developers actually like

Pixel-perfect webpage captures powered by Chromium. Full-page, dark mode, element selectors, WebP. 100 free screenshots every month, forever.

Terminal
# Capture any webpage in one line
curl "https://pageshot.info/v1/screenshot?url=https://github.com" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --output screenshot.png
0 Free / month
<3s Avg capture
0 Signup forms

How it works

Zero to screenshot in three steps. No signup forms. No credit cards.

1

Get your API key

Generate a key instantly. Any string with the ps_live_ prefix auto-registers on first use.

2

Send a URL

Make a GET or POST request with the webpage URL and your preferred options.

3

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://github.com" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --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" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --output full-dark.webp
Node.js
const response = await fetch('https://pageshot.info/v1/screenshot', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    url: 'https://github.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',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    json={
        'url': 'https://github.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();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");

var payload = new {
    url = "https://github.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

Using shared demo key (limited). Get your own free API key for 100 screenshots/month.

Simple pricing

Start free. Scale when ready. No credit card required.

Free

$0/month
  • 100 screenshots / month
  • PNG & JPEG formats
  • Custom viewport (up to 1920px)
  • Dark mode & ad blocking
  • REST API access
  • Community support
Start Free — No Card

Pro

$29/month
  • 5,000 screenshots / month
  • All Starter features
  • PDF export Soon
  • Webhook delivery Soon
  • Custom user agent
  • 4K resolution (3840px)
  • S3/R2 direct upload Soon
  • Priority support
Start Pro

Business

$79/month
  • 25,000 screenshots / month
  • All Pro features
  • Signed URLs Soon
  • Dedicated rendering pool
  • 99.9% uptime SLA
  • Custom domain CNAME Soon
  • Slack support channel
  • Invoice billing
Contact Sales

FAQ

Everything you need to know about PageShot API.

What happens when I hit the free tier limit?

You'll receive a 429 response with your current usage. Your access resumes at the start of the next calendar month. No surprise charges, ever.

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.

Can I upgrade or downgrade at any time?

Yes. Plan changes take effect immediately. If you upgrade mid-cycle, your new quota applies right away. Downgrades apply at the next billing cycle.

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?

Free tier: 30 requests per minute. Paid plans have higher limits. 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 forms required. Generate an API key with the ps_live_ prefix followed by any unique string. It auto-registers on first use. Start capturing in under 30 seconds.

Start capturing today

100 free screenshots per month. No credit card. No signup forms. Just start building.

Developer toolkit family

PageShot works beautifully alongside our other developer APIs.