Screenshot API

Screenshot any website. One API call.

Exact viewports or the full page, in PNG, JPEG or WebP, with cookie banners and ads hidden. Get back a hosted link, base64 or the raw image.

1 credit per screenshot · PNG · JPEG · WebP
Captured today

These websites were captured today using the Screenshot API.

github.com/trending
Loading screenshot
Screenshot of GitHub Trending on desktop, captured today
1920 × 1080 · WebPCaptured today by the Screenshot API
The call that made this imagePOST /v1/screenshot
{
  "url": "https://github.com/trending",
  "viewport_width": 1920,
  "viewport_height": 1080,
  "format": "webp",
  "output": "url"
}

Screenshot API options

Capture any webpage as a high-fidelity image. Choose the viewport, format and rendering options to get exactly the output you need.

Any viewport size

320px to 3,840px width and height.

viewport_width

Full page capture

Scroll the entire page, even lazy-loaded content.

full_page

PNG · JPEG · WebP

Choose your format and control the compression quality.

format

Retina display

1x, 1.5x, 2x or 3x pixel density.

device_scale_factor

Hide popups and ads

Remove cookie banners and ad overlays automatically.

hide_popups

Transparent backgrounds

Perfect for compositing, in PNG and WebP.

hide_background

Smart page loading

Wait for a selector, network idle or a custom delay.

wait_until

Hosted URLs or raw bytes

Get a hosted link, base64 or the binary image directly.

output

Screenshot API request builder

Set the options on the left and the code on the right follows, in JavaScript, Python, cURL or a plain GET URL.

Request builder
URL
Width
Height
Format
Quality
Output
const response = await fetch('https://api.simplescraper.io/v1/screenshot', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    url: 'https://github.com/trending',
    viewport_width: 1920,
    viewport_height: 1080,
    format: 'webp',
    output: 'url',
    quality: 80,
    hide_popups: true
  })
});

const data = await response.json();
console.log(data.screenshot);
OutputWhat comes backKept
base64JSON with the image as base64 text, plus the page title and size. The default.Not stored, unless you add store
urlJSON with a public link to the hosted image.30 days
binaryThe raw image bytes with an image content type, and no JSON.Not stored, unless you add store

How the Screenshot API works

Authenticate with your API key, send a URL and the options you want, and the image comes back in the same response.

1

Send the URL

POST it with your API key, or use a GET request with query parameters.

2

Choose the shot

Set the viewport, format, full page and page-loading options.

3

Get the image

A hosted link, base64 text or the raw bytes, in one response.

FAQ

What image formats does the Screenshot API support?

PNG, JPEG, and WebP. PNG gives lossless quality and supports transparency. JPEG is smaller with adjustable quality (1-100). WebP offers the best compression-to-quality ratio. Choose the format that fits your use case.

Can I capture screenshots without writing code?

Yes. Every scraping run saves a screenshot of each page it visits, which you can open from the run in your dashboard. To capture any address on demand, the Screenshot API takes one request with the page URL.

Can I capture full-page screenshots of long pages?

Yes. Set full_page to true and the API scrolls the entire page, including lazy-loaded content, and captures everything in a single image. Works on pages of any length.

How do I hide cookie popups and ads in screenshots?

Set hide_popups to true and the API automatically removes cookie consent banners, newsletter overlays, and common ad elements before capturing. For ads specifically, set hide_ads to true.

What viewport sizes are supported?

Any width and any height from 320px to 3,840px. Common presets include desktop (1920x1080), laptop (1280x800), tablet (768x1024), and mobile (375x812). You can also set device_scale_factor for retina captures at 1x, 1.5x, 2x, or 3x.

How long are hosted screenshot URLs available?

Hosted screenshot URLs (output=url) are available for 30 days. For permanent storage, use output=binary or output=base64 and store the images yourself.

How many screenshots can I capture in bulk?

There is no batch limit: send one request per page, as many side by side as you need. Each screenshot costs 1 credit.

Take your first screenshot by API today.

Sign up, copy your API key and capture any page. 100 free credits to start.

Start free
No credit card · or read the Screenshot API docs