NewIntroducing semantic snapshotsPair every capture with structured DOM data →

Screenshot API

Screenshots from real Chromium, on demand

One POST renders any page and returns a clean image or PDF — with capture controls that make the result match your product, not a default viewport.

cURL
curl -X POST https://api.domscout.io/screenshot \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{ "url": "https://example.com", "format": "webp", "fullPage": true }'
Node.js
import { writeFile } from "node:fs/promises";

const response = await fetch("https://api.domscout.io/screenshot", {
  method: "POST",
  headers: { "Content-Type": "application/json", "x-api-key": "YOUR_API_KEY" },
  body: JSON.stringify({ url: "https://example.com", format: "webp", fullPage: true, responseType: "binary" }),
});
const image = Buffer.from(await response.arrayBuffer());
await writeFile("example.webp", image);
Python
import requests

response = requests.post("https://api.domscout.io/screenshot",
    headers={"Content-Type": "application/json", "x-api-key": "YOUR_API_KEY"},
    json={"url": "https://example.com", "format": "webp", "fullPage": True, "responseType": "binary"})
open("example.webp", "wb").write(response.content)
Request body
{
  "url": "https://example.com/docs/getting-started",
  "format": "pdf",
  "responseType": "binary",
  "width": 1280,
  "height": 720,
  "render": { "colorScheme": "dark", "reducedMotion": true }
}

Screenshot capabilities

Formats for every pipeline

PNG, JPEG, WebP, or PDF from the same endpoint, rendered by a real headless Chromium — the same engine that drew the page for the last person who visited it.

Full-page and element capture

Grab the visible viewport, the entire scrollable page, or a single element. Add capture padding and transparency when you need compositing room.

Viewports that match your audience

Desktop and mobile device presets, custom widths and heights, plus locale, timezone, and geolocation so the page renders the way your users see it.

Print-ready PDFs

Export any page as a styled PDF for archival, reports, or client deliverables — no separate rendering stack to maintain.

How the screenshot API works

Three steps between a URL and a file you can store. There is no browser to provision, no queue to drain, and no session to keep alive between calls.

  1. Step 1

    POST the URL and the shape you want

    One endpoint takes the page address plus the capture options: format, viewport, full-page or a single element selector, colour scheme, locale, and timezone. No session to open and no browser to keep warm.

  2. Step 2

    A real Chromium renders the page

    The same engine that drew the page for the last human visitor runs the JavaScript, loads the fonts, and settles the layout — so a single-page app produces the picture a user would have seen, not an empty shell.

  3. Step 3

    Take the bytes or the JSON

    Ask for responseType binary and the image or PDF comes back as the response body, ready to stream to disk or object storage. Ask for json and you get a stored capture with a URL, metadata, and the retention window your plan allows.

Screenshot API questions, answered

Formats, full-page capture, JavaScript rendering, mobile viewports, and PDF export.

PNG, JPEG, and WebP on every plan, including the free Hobby tier. PDF export and full-page capture are Pro+ features. All four come from the same endpoint — the format field decides which.

Give your product a browser.

Get clean web content and visual proof into your workflow in minutes.