๐Ÿ“ธ

Screenshot API

Capture perfect webpage screenshots with a single API call. Full-page, viewport, or custom dimensions โ€” PNG or JPEG output.

Get Free API Key Read Docs

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

ParameterTypeDefaultDescription
url *stringโ€”URL of the webpage to screenshot
widthinteger1280Viewport width (max 2560)
heightinteger800Viewport height (max 2048)
full_pagebooleanfalseCapture entire scrollable page
formatstringpngOutput: 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