Fast, affordable Screenshot API. ScreenshotOne compatible.
🌐 Website: shotapi.io
# Take a screenshot
curl "https://api.shotapi.io/take?url=https://example.com" > screenshot.png
# Full page screenshot
curl "https://api.shotapi.io/take?url=https://example.com&full_page=true" > full.png
# Custom viewport
curl "https://api.shotapi.io/take?url=https://example.com&viewport_width=1920&viewport_height=1080" > hd.pngTake a screenshot of any URL.
| Parameter | Type | Default | Description |
|---|---|---|---|
url |
string | required | URL to screenshot |
format |
string | png |
Output format: png, jpeg, webp, pdf |
viewport_width |
int | 1280 |
Browser viewport width |
viewport_height |
int | 1024 |
Browser viewport height |
full_page |
boolean | false |
Capture entire scrollable page |
device_scale_factor |
float | 1 |
Device scale (2 for retina) |
image_quality |
int | 80 |
Quality 0-100 (jpeg/webp only) |
delay |
int | 0 |
Wait seconds before capture |
selector |
string | - | CSS selector to capture |
dark_mode |
boolean | false |
Render in dark mode |
Content-Type: image/png
X-Screenshot-Duration-Ms: 1234
Cache-Control: public, max-age=3600
ShotAPI is designed as a drop-in replacement for ScreenshotOne.
// Just change the base URL
const BASE_URL = "https://api.shotapi.io"; // was: api.screenshotone.com
// Same parameters work
const url = `${BASE_URL}/take?url=https://example.com&format=png&full_page=true`;# Clone
git clone https://github.com/shotapi/api.git
cd api
# Install
npm install
npx playwright install chromium
# Run
npm run devdocker build -t shotapi .
docker run -p 3000:3000 shotapifly launch
fly deploy- 100 requests/day - No API key required
- Rate limited by IP
| Plan | Price | Requests/mo |
|---|---|---|
| Free | $0 | 3,000 |
| Starter | $9/mo | 10,000 |
| Pro | $29/mo | 50,000 |
MIT