Shotbot. A camera for the web.Eyes for your AI agents.

In production since 2008. Built and hosted in France, GDPR-compliant by design.

Square screenshot motmet.studioMobile screenshot rijksmuseum.nlTablet portrait screenshot linear.appTablet landscape screenshot permalink.fr

Create a screenshot

0 / 10 captures today · 10 remaining
Capturing…
Advanced options
PNG, WebP, AVIF, mobile viewport, dark mode, HiDPI, full page, PDF… Log in Free account →

Without account: 10 screenshots/day · Stored 12 months · Free account: 200/month + rendering options + API · Shotbot Pro: 5,000/month + PNG/WebP/PDF

12s
Average processing time
18
years of continuous service
200
free screenshots a month

Real render examples

Thousands of sites captured by a real Chromium browser, with JavaScript executed.

See all examples

Real renders, no partnerships · brands and content belong to their respective owners · removal request

Features

Formats & resolutions

JPG, PNG, WebP, AVIF or PDF. Viewport from 360 to 1920 px, HiDPI ×2, full page or ratio crop.

Decorative frames

Browser chrome, drop shadow, mobile, tablet, rounded corners or Shotbot branding. Generated and applied automatically, no editing.

Scheduled screenshots

Automatic every 6h, 24h, 7d or month. Built-in email delivery Pro.

Batch

Up to 500 URLs in a single request, 5,000 with Shotbot Pro. Asynchronous results with HTTP callback.

Render regions

5 servers: Paris (included), Montreal, Singapore, Sydney, Hanoi. Real local IPs for geolocated renders Pro.

White label

Callback mode: Shotbot pushes the screenshot to your server over HTTP POST. No Shotbot URL in your product. Included free.

How it works

One URL is enough

Via the API, the form above, or in a batch of up to 500 URLs.

Real browser rendering

Page loaded in Chromium, JavaScript executed, initial load awaited. Options: dark mode, ad blocking, cookie handling, SPA wait (0-30 s).

Image in seconds

JPEG, PNG, WebP, AVIF or PDF. Viewport 280-3840 px, HiDPI ×2, full page.

Integration

# One screenshot, one call
curl -s -X POST https://api.shotbot.net/capture \
  -H 'Content-Type: application/json' \
  -d '{"key":"YOUR_KEY","url":"https://test.shotbot.net"}'
$response = json_decode(file_get_contents(
  'https://api.shotbot.net/capture',
  context: stream_context_create(['http' => [
    'method'  => 'POST',
    'header'  => 'Content-Type: application/json',
    'content' => json_encode([
      'key' => 'YOUR_KEY',
      'url' => 'https://test.shotbot.net',
    ]),
  ]])
), true);
echo $response['image']; // CDN URL
import requests
r = requests.post('https://api.shotbot.net/capture', json={
  'key': 'YOUR_KEY', 'url': 'https://test.shotbot.net'
})
print(r.json()['image'])  # URL CDN
const r = await fetch('https://api.shotbot.net/capture', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ key: 'YOUR_KEY', url: 'https://test.shotbot.net' })
});
const { image } = await r.json();
console.log(image); // CDN URL
Response in seconds · polling token included Integration examples →

Use cases

2008
18 years of screenshots in production, without interruption.

Launched in 2008, Shotbot has lived through the Flash era, the mobile boom, JavaScript SPAs, Consent Management Platforms and the modern web. Independent, hosted in France, GDPR-compliant. Your data is stored in France.

Free, and beyond

Free

200 free screenshots every month. No card, no commitment, no hidden terms. For heavier use, top-ups start at a few euros.

Not ready yet? The form above works without an account (10 screenshots/day).

Shotbot Pro

PNG/WebP/AVIF formats · 4K viewports · ad blocking · priority queue · batch of up to 5,000 URLs.

JavaScript wait up to 30 s, injected cookies, CSS selector and geolocated render regions. No commitment, cancel anytime.