---
title: "POST /screenshot"
method: POST
path: "/screenshot"
tags: ["screenshot"]
---

# POST /screenshot

`POST /screenshot`

Capture a full-page screenshot of a website

## Request body

- ScreenshotDto
  - `url` string, required — Target URL
  - `device` 'desktop' | 'mobile' — Device type to emulate. Defaults to desktop.
  - `proxyCountry` string — Proxy country code to route the request
  - `type` 'png' | 'jpeg' | 'webp' — File type of screenshot. Defaults to png.
  - `fullPage` boolean — Take full-page screenshot
  - `blockAds` boolean — Block ads on the page
  - `hideCookie` boolean — Hide cookie popups
  - `skipCaptcha` boolean — Try to bypass captcha
  - `addTimestamp` boolean — Add timestamp watermark
  - `pageHeight` number — Height of the page (for partial screenshot)
  - `viewportWidth` number — Width of the viewport
  - `viewportHeight` number — Height of the viewport
  - `theme` 'light' | 'dark' | 'auto' — Theme to use for rendering
  - `removeBackground` boolean — Remove background from screenshot
  - `highlightLinks` boolean — Highlight links on the page
  - `delay` number — Delay before taking screenshot (in seconds)
  - `disableAnimations` boolean — Disable animations on the page
  - `quality` number — Image quality (for JPEG/WEBP)
  - `scaleFactor` number — Device scale factor
  - `captureBeyondViewport` boolean — Capture beyond viewport if possible

## Response `200`

Successfully captured screenshot

- ScreenshotResponseDto
  - `timestamp` number, required — Timestamp of the request in milliseconds
  - `apiStatus` 'success' | 'failure', required — API status message
  - `apiCode` number, required — API status code
  - `meta` ScreenshotMetaDto, required
    - `url` string, required — The target URL that was captured
    - `type` string, required — File type of screenshot
    - `device` string, required — Device type used
    - `fullPage` boolean, required — Whether full-page screenshot was taken
    - `blockAds` boolean, required — Whether ads were blocked
    - `hideCookie` boolean, required — Whether cookie popups were hidden
    - `skipCaptcha` boolean, required — Whether captcha was bypassed
    - `addTimestamp` boolean, required — Whether timestamp watermark was added
    - `proxyCountry` string — Proxy country used, if any
    - `pageHeight` number — Height of the page
    - `viewportWidth` number — Width of the viewport
    - `viewportHeight` number — Height of the viewport
    - `theme` string — Theme used
    - `removeBackground` boolean — Whether background was removed
    - `highlightLinks` boolean — Whether links were highlighted
    - `delay` number — Delay before screenshot
    - `disableAnimations` boolean — Whether animations were disabled
    - `quality` number — Image quality (JPEG/WEBP)
    - `scaleFactor` number — Device scale factor
    - `captureBeyondViewport` boolean — Capture beyond viewport
    - `test` TestMetaDto, required
      - `id` string, required — Unique test identifier
  - `data` string, required — Screenshot URL or base64 string

## Other responses

- `400` — Bad request (e.g. invalid URL or parameters)
- `500` — Internal server error while capturing screenshot

---

[API](https://skmtc.net/geekflare/apis/geekflare-api.md) · [All operations](https://skmtc.net/geekflare/apis/geekflare-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/geekflare/geekflare-api/versions/936993afc936/schema)
