Introducing Highlights: the context that matters

Screenshot API

Capture pixel-perfect website screenshots from any URL with one call.

Choose viewport dimensions or full-page capture, wait for dynamic content, handle popups, select a light or dark color scheme, and control cache freshness.

Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo

What You Get

Request a screenshot alongside any other Scrape output. The image is returned as a data URL.

Full-page or viewport

Capture entire page or visible area

Capture controls

Set wait time, popup cleanup, theme, and cache age

Custom viewport

Capture responsive layouts at a width and height you choose

Image data URL

Receive PNG, JPEG, or WebP image data directly

How it works

We use headless Chrome to render websites pixel-perfectly.

  1. Send a URL

    With optional viewport, full-page, wait, popup, and theme controls

  2. Headless Chrome renders

    Full JavaScript support, animations, and dynamic content

  3. Image processed

    Encoded in the image format you select

  4. Image data returned

    Clean, high-quality image ready for immediate use

API response

Illustrative screenshot response; the sample image data is a placeholder

POST /v1/web/scrape

Request body

{
  "url": "https://example.com",
  "formats": {
    "screenshot": true
  },
  "screenshotParams": {
    "area": "viewport",
    "format": "png"
  }
}

Example response

{
  "url": "https://example.com/",
  "html": {
    "requested": false,
    "success": null,
    "data": null
  },
  "markdown": {
    "requested": false,
    "success": null,
    "data": null
  },
  "screenshot": {
    "requested": true,
    "success": true,
    "data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+aD1sAAAAASUVORK5CYII="
  },
  "images": {
    "requested": false,
    "success": null,
    "data": null
  },
  "bytes": {
    "requested": false,
    "success": null,
    "data": null
  },
  "parsed": {
    "type": "custom",
    "requested": false,
    "success": null,
    "data": null
  },
  "json": {
    "requested": false,
    "success": null,
    "data": null
  },
  "highlights": {
    "requested": false,
    "success": null,
    "data": null
  },
  "product": {
    "requested": false,
    "success": null,
    "data": null
  },
  "metadata": {
    "title": "Web context for AI",
    "language": "en"
  },
  "cache_metadata": {
    "status": "miss",
    "age_ms": 0
  },
  "request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91"
}

Frequently asked questions

Common questions about the Context.dev Screenshot API.

Am I billed for failed requests?
Most failed requests are not billed. Not-found responses (404) are billed at the request’s base price. Scrape can return a 200 with failed outputs: it charges when at least one output succeeds or the target page is missing. Check key_metadata.credits_consumed for the amount charged.
How do I take a screenshot of a website with the API?
Send a POST request to /v1/web/scrape with url and formats: { screenshot: true }. The API renders the page and returns an image data URL in screenshot.data. Use it as an image source or decode and store the image in your own storage.
Can the screenshot API capture full-page screenshots?
Yes. Set screenshotParams.area to fullPage, viewport, a selector object, or a rectangle with x, y, width, and height. The default area is viewport.
Does the API support mobile emulation?
Specify custom viewport width and height to exercise responsive layouts. The public request does not expose named device presets or a device-pixel-ratio control.
Can I choose the image format or quality?
Set screenshotParams.format to png, jpeg, or webp. The response contains a data URL with the matching image MIME type. There is no separate quality parameter.
How is this a Urlbox / ApiFlash / ScreenshotOne alternative?
Screenshots are a format of the unified Scrape API. Combine a screenshot with HTML, Markdown, images, or parsed fields in one request. Brand retrieval, styleguides, and other APIs use the same key.
Can I use the screenshot API for OG images and link previews?
Yes. Decode screenshot.data and upload the image to your own storage or CDN to provide the public URL used by social previews and link cards.
Is the screenshot API free?
The free tier includes 1,000 credits per month. A screenshot scrape starts at 1 credit, including any other requested formats. See pricing for plan limits and optional charges.

Ship an agent that actually knows things.

Free tier, 10-minute integration, and the same API powering agents at Mintlify, daily.dev, and Propane. No credit card to start.

1,000free credits

Every month. No credit card required.

Start for freeRead the docs