apyhub
DATA EXTRACTION · FILE MANIPULATION

Generate Webpage Screenshot API

Hosted on ApyHub

What it does

Capture Webpage Screenshot turns a URL into a PNG screenshot. Send a page URL, optionally add a delay, and get back either a binary PNG download or a signed storage link for the captured image.

Use the /download endpoint when you want the screenshot streamed directly as a file. It accepts url, delay, output, and quality, with delay capped at 10 and quality ranging from 1 to 5. Use /link when your workflow prefers a shareable upload URL; it accepts url, delay, and quality, and returns a data field containing the signed PNG URL.

Capture Webpage Screenshot is a fit for QA checks, visual regression pipelines, archiving page states, or grabbing screenshots for reports and support tickets. It works from a single page URL, so you can automate browser captures without building your own screenshot service.

▣ ENDPOINT 01 / 02
GET
Capture webpage screenshot and stream PNG download
http://localhost:8080/apyhub/capture-webpage-screenshot/download
QUICKSTARTGUIDE

Quickstart

Download a screenshot of a webpage by passing the page URL as a query parameter.

curl -X GET "http://localhost:8080/apyhub/capture-webpage-screenshot/download?url=https://apyhub.com" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a binary file containing the screenshot image.

TRY ITLIVE · 75 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Captures a screenshot of the webpage at the provided URL and returns it as a streamed PNG download. The request is configured through query parameters for the target URL and optional capture settings.

Query Parameter(s)

AttributeTypeMandatoryDescription
urlStringYesThe webpage URL to capture. Must be a valid URI.
delayIntegerNoDelay before capture, in seconds. Default: 3. Minimum: 0, maximum: 10.
outputStringNoOutput filename for the downloaded image. Default: output.png.
qualityIntegerNoScreenshot quality level. Default: 5. Minimum: 1, maximum: 5.

Response

Returns a binary string representing the downloaded screenshot file as PNG content. The success response is a streamed file download, not a JSON object.

ParameterTypeMandatoryDescription
binary payloadStringYesPNG file content returned by the endpoint.

Query parameters

Name
Type
Description
urlREQUIRED
string
delayOPTIONAL
integer
DEFAULT 3
outputOPTIONAL
string
DEFAULT output.png
qualityOPTIONAL
integer
DEFAULT 5
▣ ENDPOINT 02 / 02
GET
Capture webpage screenshot and return signed upload link
http://localhost:8080/apyhub/capture-webpage-screenshot/link
QUICKSTARTGUIDE

Quickstart

Capture a screenshot of a webpage by passing its URL as a query parameter.

curl -X GET "http://localhost:8080/apyhub/capture-webpage-screenshot/link?url=https://apyhub.com" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a data string field containing a signed cloud storage URL for the PNG screenshot.

{
  "data": "https://storage.example.com/web-screenshot/output.png?sig=abc"
}
TRY ITLIVE · 75 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Generates a screenshot of the webpage at the given URL and returns a signed upload link for the resulting PNG file.

Query Parameter(s)

AttributeTypeMandatoryDescription
urlStringYesWebpage URL to capture. Format: URI.
delayIntegerNoTime to wait before capturing the screenshot. Default: 3. Minimum: 0. Maximum: 10.
qualityIntegerNoScreenshot quality setting. Default: 5. Minimum: 1. Maximum: 5.

Response

Returns a JSON object with a data string field containing a signed cloud storage URL for the PNG screenshot.

AttributeTypeMandatoryDescription
dataStringYesSigned cloud storage URL for the PNG screenshot.

Query parameters

Name
Type
Description
urlREQUIRED
string
delayOPTIONAL
integer
DEFAULT 3
qualityOPTIONAL
integer
DEFAULT 5
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.