Shotbot. A camera for the web.Eyes for your AI agents.
In production since 2008. Built and hosted in France, GDPR-compliant by design.
Already have an account? Sign in →
Create a screenshot
Without account: 10 screenshots/day · Stored 12 months · Free account: 200/month + rendering options + API · Shotbot Pro: 5,000/month + PNG/WebP/PDF
Real render examples
Thousands of sites captured by a real Chromium browser, with JavaScript executed.
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.
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
Use cases
Legal archiving
Every screenshot is timestamped and kept as an immutable archive. Court-admissible visual proof, a traceable record of how a site changes.
Learn more →E-commerce & catalogues
Capture up to 500 product pages in a single request. Mobile viewports, ultra-compact AVIF for your CDN.
Learn more →Visual monitoring
Automatic scheduled screenshots (6h, 24h, 7d, monthly) plus batch to feed your own change-detection tools.
Learn more →AI agents & automation
MCP server, OpenAPI 3.1 spec, batch and callbacks. Built for AI agents in production.
Learn more →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.











































































































































































