Screenshot API
Capture perfect webpage screenshots with a single API call. Full-page, viewport, or custom dimensions โ PNG or JPEG output.
Quick Start
curl -X POST https://batian.icu/api/v1/screenshot \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "width": 1280, "full_page": true}' \
-o screenshot.png
Features
Full-Page Capture
Capture the entire scrollable page, not just the viewport. Perfect for archiving, SEO snapshots, and visual regression testing.
Custom Viewport
Set exact width and height for mobile, tablet, or desktop screenshots. Test responsive designs programmatically.
PNG & JPEG Output
Choose lossless PNG for quality or JPEG for smaller file sizes. JPEG quality adjustable (default 85).
Warm Browser Pool
No cold starts. 2 Chromium instances always ready. Average response time <3 seconds.
Use Cases
๐ Social Media Preview Cards โ Generate Open Graph images from any URL. Use with your blog, e-commerce, or SaaS product.
๐งช Visual Regression Testing โ Screenshot your app after every deploy. Compare against baseline to catch visual bugs before users do.
๐ SEO & Competitive Analysis โ Screenshot competitor landing pages on a schedule. Track design changes, pricing updates, new features.
๐ฐ Content Archiving โ Archive webpage snapshots for compliance, journalism, or research. What did that page look like on June 9, 2026?
๐ค Automated Reports โ Generate dashboard screenshots for daily/weekly reports. Embed in emails, PDFs, or Slack notifications.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
url * | string | โ | URL of the webpage to screenshot |
width | integer | 1280 | Viewport width (max 2560) |
height | integer | 800 | Viewport height (max 2048) |
full_page | boolean | false | Capture entire scrollable page |
format | string | png | Output: png or jpeg |
Code Examples
Python
import requests
resp = requests.post(
"https://batian.icu/api/v1/screenshot",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"url": "https://example.com", "width": 1280, "full_page": True}
)
with open("screenshot.png", "wb") as f:
f.write(resp.content)
print(f"Remaining: {resp.headers['X-Usage-Remaining']}")
JavaScript (Node.js)
const resp = await fetch("https://batian.icu/api/v1/screenshot", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({ url: "https://example.com", width: 1280, full_page: true })
});
const buffer = Buffer.from(await resp.arrayBuffer());
require("fs").writeFileSync("screenshot.png", buffer);
Start capturing screenshots in 30 seconds
100 free screenshots every month. No credit card. Instant API key.
Get Free API Key