---
title: "Capture webpage screenshot"
method: POST
path: "/v1/live-fetch/webpage/screenshot"
tags: ["Web Research"]
---

# Capture webpage screenshot

`POST /v1/live-fetch/webpage/screenshot`

Captures a screenshot of a public webpage and returns a hosted image URL. Supports both viewport-only and full-page captures. The returned URL is permanent and does not expire.

<span>⚡ <strong>Rate limit:</strong> 60 requests per 1 minute</span>

<span>💰 <strong>Cost:</strong> 2 credits per screenshot&nbsp;<span title="Pricing shown is default pricing. Actual pricing may vary.">ⓘ</span></span>

<span>⏱ <strong>Recommended timeout:</strong> 1 minute&nbsp;<span title="Recommended timeout: set your HTTP client timeout to at least 1 minute for this endpoint.">ⓘ</span></span>

## Request body

- object
  - `apiKey` string, required — Your Fiber API key
  - `url` string, required — The URL of the webpage to capture (e.g. 'https://stripe.com/pricing'). Bare domains like 'stripe.com' are also accepted and will be treated as HTTPS.
  - `fullPage` boolean — If true, captures the entire scrollable page. Defaults to false (viewport only).
  - `format` 'mobile' | 'desktop' — Device format for the capture. 'mobile' uses a phone-sized viewport, 'desktop' uses a standard widescreen viewport. Defaults to 'desktop'.
  - `country` string, nullable — ISO 3166-1 alpha-3 country code for geo-located capture (e.g. 'USA', 'GBR', 'DEU'). If omitted, defaults to a US-based capture.

## Response `200`

Default Response

- object
  - `output` object, required
    - `screenshotUrl` string, uri, required — Hosted URL of the captured screenshot image in PNG format.
    - `pageUrl` string, uri, required — The final URL of the page that was screenshotted, after following any redirects. May differ from the input URL if the page redirects.
    - `pageTitle` string, nullable — The HTML title of the screenshotted page, if available.
    - `imageMediaType` 'image/png', required — MIME type of the screenshot image.
    - `capturedAt` string, required — ISO 8601 timestamp of when the screenshot was captured.
  - `chargeInfo` union, required
    - object — Credits were charged immediately for this operation
      - `method` 'charged-now', required
      - `creditsCharged` number, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits will be charged after the operation completes
      - `method` 'charging-later', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits that were charged for an asynchronous operation
      - `method` 'charged-for-async-process', required
      - `creditsCharged` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — No credits were charged for this operation
      - `method` 'free', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits were refunded for this operation
      - `method` 'credits-refunded', required
      - `creditsRefunded` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
  - `warnings` object[], nullable — Warnings about extraneous fields in request
    - `field` string, required — Full path to extraneous field (e.g., 'searchParams.ExtraField')
    - `message` string, required — Warning message
  - `advice` string[], nullable — Tips, recommendations, and suggestions for using this API effectively.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `402` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `429` — Default Response
- `500` — Default Response
- `503` — Default Response

---

[API](https://skmtc.net/fiber/apis/fiber-ai-api.md) · [All operations](https://skmtc.net/fiber/apis/fiber-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fiber/fiber-ai-api/revisions/c4f2d79876be/schema)
