Skip to content

Explainer

What is a screenshot API?

A screenshot API is a web service that loads any URL in a real browser and returns the rendered output — as an image, PDF, HTML snapshot, or video — via an HTTP request. Capture a single page in seconds, or submit thousands of URLs as a batch job and receive every screenshot automatically. You never run or maintain any browsers yourself.

1
API call per screenshot
URLs per batch job
5+
Output formats
16+
Countries supported

The definition

A browser you call over HTTP

Every time a screenshot API receives a request, it spins up a headless browser, navigates to your URL, executes all the JavaScript on the page, waits for network activity to settle, and then captures the result. The output — image, PDF, or video — is stored and returned to you via a URL or pushed to your storage.

Unlike a static web scraper, a screenshot API renders the page exactly as a real user would see it in Chrome — including dynamically loaded content, CSS animations, web fonts, third-party widgets, and lazy-loaded images. What you get back is a pixel-accurate representation of the live page.

The API layer adds reliability, scalability, geo-routing, and output format control on top of that rendering — so you submit a job and receive a finished asset, with no browser infrastructure to manage.

When volume is the requirement, the batch API accepts a file of URLs — a sitemap export, a product catalog, an ad network's landing page list — and processes every entry in parallel across a distributed browser fleet. Thousands of screenshots complete in minutes, with automatic retries on failures and a CSV index tracking the status of every URL. Results land directly in your S3 bucket, Google Drive folder, or any other connected storage destination as each capture finishes.

Real browser rendering

Chromium-based engine. JavaScript, CSS, fonts, and dynamic content all execute exactly as in a real browser session.

HTTP request/response

Trigger any capture with a single POST request. No SDK required — curl or any HTTP client works.

Async job model

Jobs are queued and processed asynchronously. Poll for the result, receive a webhook, or use the batch API to submit thousands of URLs in one call.

Elastic scale

A single screenshot completes in seconds. Batch jobs process thousands of URLs in parallel across a distributed browser fleet — no extra configuration.

Multiple output formats

PNG, JPEG, WebP, PDF, raw HTML, MP4, WebM, GIF — all generated from the same rendering pipeline on demand.

Delivery integrations

Push finished assets to S3, Google Drive, Dropbox, Slack, OneDrive, SharePoint, FTP, or your own webhook endpoint.

How it works

From API request to finished asset in four steps

1

You send an API request

POST the target URL plus your capture options — viewport size, country, output format, interaction steps — to the API endpoint. Authentication is via an API key in the request header.

2

A real browser loads the page

The API spins up a headless Chromium instance, navigates to the URL, executes any JavaScript on the page, runs your automation steps, and waits for the page to reach a stable state.

3

Outputs are generated

The browser captures the screenshot at the requested size and format. Companion outputs — PDF, HTML snapshot, or video recording — are generated in the same job if requested.

4

You retrieve or receive the result

Poll the job status endpoint until the capture is finished, or receive a webhook notification. Download the assets via URL or have them pushed directly to your storage integration.

Code Example

A screenshot in two requests

Submit the job, wait for it to finish, then download or redirect to the output URL. All SDKs wrap the polling loop for you — one waitFor call returns the finished result.

# 1. Request a screenshot
curl -X POST https://api.screenshotcenter.com/v1/screenshot \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url":     "https://example.com",
    "country": "us",
    "size":    "page",
    "format":  "png"
  }'

# → { "id": 12345, "status": "queued" }

# 2. Poll for the result
curl https://api.screenshotcenter.com/v1/screenshot/12345 \
  -H "X-API-KEY: YOUR_API_KEY"

# → { "status": "finished", "screenshot_url": "https://..." }

API vs. DIY

Screenshot API vs. running your own browser automation

Puppeteer and Playwright are great tools for one-off scripts and small internal jobs. But operating browser automation reliably in production — across scale, regions, and failure modes — requires substantial infrastructure work that a screenshot API abstracts away entirely.

AspectScreenshot APIDIY (Puppeteer / Playwright)
Setup timeMinutes — one API key and an HTTP requestDays to weeks of infrastructure work
Browser managementFully managed — no browser fleet to maintainYou manage updates, crashes, and scaling
Geo routingBuilt-in — pass a country code per requestRequires a proxy network and custom logic
ReliabilityRetries, stall detection, and queue-backed jobsYou build and maintain the retry logic
Output formatsPNG, JPEG, WebP, PDF, HTML, MP4, WebM, GIFWhatever you implement — often just PNG
ScalingElastic — handles traffic spikes automaticallyYou provision and scale browser workers
Storage deliveryNative S3, Google Drive, Dropbox, Slack, and moreYou implement each integration yourself

Building your own pipeline makes sense when you need deep custom control or have very specific constraints. A screenshot API is the right choice when you want reliable, production-grade capture without the maintenance burden.

Capabilities

What a modern screenshot API can do

A basic screenshot API returns an image of a URL. A production-grade one handles geo-routing, authentication, output variants, and direct storage delivery.

Output Formats

One rendering pipeline, every format you need

Request multiple output formats from the same job. The browser renders once; the API produces all requested outputs and returns them together in the job result.

🖼️

PNG / JPEG / WebP

format

The primary screenshot output. Full-page or viewport capture at your requested dimensions and pixel density.

📄

PDF

pdf=true

Text-searchable, print-quality PDF with configurable paper format, orientation, and margins.

🗂️

HTML snapshot

html=true

The fully-rendered HTML source of the page after JavaScript execution — useful for content parsing and archival.

🎬

MP4 / WebM / GIF

video=true

A screencast recording of the page load and interaction sequence. Control quality, duration, and playback speed.

Try ScreenshotCenter free

Get 500 free captures. No credit card required. Connect your first integration, send your first request, and have a screenshot in your hands in under five minutes.

Frequently asked questions

What is a screenshot API?

A screenshot API is a web service that accepts a URL and returns a browser-rendered capture of that page — as an image, PDF, HTML snapshot, or video. It handles browser management, JavaScript execution, and output generation so you don't have to maintain your own browser infrastructure.

How is a screenshot API different from building my own Puppeteer or Playwright setup?

A screenshot API is a fully managed service. You send HTTP requests and receive outputs — no browser fleet to install, update, or scale. Puppeteer and Playwright are powerful libraries, but operating them in production requires handling crashes, version updates, memory limits, concurrency, and retries yourself. A screenshot API handles all of that for you.

Can a screenshot API capture pages behind a login?

Yes. The automation steps parameter lets you script the login flow — click the login button, type credentials, submit the form, wait for the page to load — before the screenshot is taken. Alternatively, inject session cookies directly to skip the login form entirely.

What output formats can a screenshot API return?

Screenshot APIs typically return PNG, JPEG, or WebP images. ScreenshotCenter also supports full-page PDF generation, raw HTML snapshots, and video recordings (MP4, WebM, GIF) — all from the same job.

Can I route screenshot captures through a specific country?

Yes. ScreenshotCenter routes each request through a browser client in the country you specify. The captured page reflects what a real visitor in that country sees — including localised pricing, language, legal banners, and geo-restricted content.

How do I receive the output — do I have to poll?

You can either poll the status endpoint until the job is finished, or configure a webhook URL to receive a POST notification when the capture completes. Outputs can also be pushed directly to S3, Google Drive, Dropbox, Slack, and other integrations.

Can I take screenshots of thousands of URLs at once?

Yes. The batch API accepts a file of URLs and processes them in parallel with automatic retries. Results are tracked in a CSV index and pushed to your connected storage destination as each capture finishes.

Is a screenshot API suitable for production use at scale?

Yes. ScreenshotCenter uses a distributed queue backed by Redis/BullMQ with priority lanes, stall detection, exponential backoff retries, and elastic browser workers. It is designed to handle bursty and high-volume capture workloads reliably.