---
title: "Capture a screenshot of a website"
method: GET
path: "/v1/screenshot"
---

# Capture a screenshot of a website

`GET /v1/screenshot`

## Request

- Base URL: `https://app.snap-render.com`
- URL: `https://app.snap-render.com/v1/screenshot`
- Auth: API key in header `X-API-Key`

Takes a screenshot of any URL and returns it as a binary image or JSON with base64 data URI. Set response_type=json for AI agent integrations. Supports device emulation, dark mode, ad blocking, cookie banner removal, and caching.

## Query parameters

- `url` string, uri, required
- `format` 'png' | 'jpeg' | 'webp' | 'pdf'
- `width` integer
- `height` integer
- `full_page` 'true' | 'false'
- `quality` integer
- `delay` integer
- `dark_mode` 'true' | 'false'
- `block_ads` 'true' | 'false'
- `block_cookie_banners` 'true' | 'false'
- `device` 'iphone_14' | 'iphone_15_pro' | 'pixel_7' | 'ipad_pro' | 'macbook_pro'
- `hide_selectors` string
- `click_selector` string
- `user_agent` string
- `cache` 'true' | 'false'
- `cache_ttl` integer
- `response_type` 'binary' | 'json'

## Response `200`

Screenshot captured successfully

- object
  - `url` string: The captured URL
  - `format` string: Image format used
  - `width` integer: Viewport width
  - `height` integer: Viewport height
  - `image` string: Base64 data URI of the screenshot (e.g., data:image/png;base64,...)
  - `size` integer: Image size in bytes
  - `cache` 'HIT' | 'MISS': Cache status
  - `responseTime` string: Render time (e.g., '1234ms')
  - `remainingCredits` integer: Remaining screenshots this billing period

## Other responses

- `400`: Invalid parameters or blocked URL
- `401`: Invalid or missing API key
- `429`: Rate limited or quota exceeded

---

[API](https://skmtc.dev/snap-render/apis/snaprender-screenshot-api.md) · [All operations](https://skmtc.dev/snap-render/apis/snaprender-screenshot-api/llms.txt) · [OpenAPI document](https://skmtc.dev/snap-render/apis/snaprender-screenshot-api/revisions/420ff88deeb2?raw)
