Properties
| Name | Type | Description |
|---|---|---|
| url | string | The URL to screenshot. Must be http(s). |
| fullPage | boolean | Capture the entire scrollable page instead of just the viewport. Default off. |
| waitFor | number | Extra milliseconds to let the page settle before capture. |
| timeout | number | Overall time budget for the request, in milliseconds. |
| maxAge | number | Reuse a stored screenshot if it is younger than this many milliseconds. Defaults to 7 days, so a repeated request returns the stored PNG with `cached: true` without re-rendering — which also means it |
| viewport | string | Screen size to render at. Defaults to desktop (1920x1080). Ignored when width/height are given explicitly. |
| viewportWidth | number | Exact viewport width in pixels. Overrides `viewport`. |
| viewportHeight | number | Exact viewport height in pixels. Overrides `viewport`. With fullPage the capture still extends to the full page height. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/hydrafetch-com/json-schema/hydrafetch-com-screenshot-request-dto-schema.json",
"title": "ScreenshotRequestDto",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/hydrafetch-com-openapi.json#/components/schemas/ScreenshotRequestDto",
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL to screenshot. Must be http(s)."
},
"fullPage": {
"type": "boolean",
"description": "Capture the entire scrollable page instead of just the viewport. Default off."
},
"waitFor": {
"type": "number",
"minimum": 0,
"maximum": 30000,
"description": "Extra milliseconds to let the page settle before capture."
},
"timeout": {
"type": "number",
"minimum": 1000,
"maximum": 100000,
"description": "Overall time budget for the request, in milliseconds."
},
"maxAge": {
"type": "number",
"minimum": 0,
"description": "Reuse a stored screenshot if it is younger than this many milliseconds. Defaults to 7 days, so a repeated request returns the stored PNG with `cached: true` without re-rendering — which also means it returns immediately and does not apply `waitFor`. Pass 0 to force a fresh capture."
},
"viewport": {
"type": "string",
"enum": [
"desktop",
"laptop",
"tablet",
"mobile"
],
"description": "Screen size to render at. Defaults to desktop (1920x1080). Ignored when width/height are given explicitly."
},
"viewportWidth": {
"type": "number",
"minimum": 320,
"maximum": 3840,
"description": "Exact viewport width in pixels. Overrides `viewport`."
},
"viewportHeight": {
"type": "number",
"minimum": 240,
"maximum": 2160,
"description": "Exact viewport height in pixels. Overrides `viewport`. With fullPage the capture still extends to the full page height."
}
},
"required": [
"url"
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/hydrafetch-com-screenshot-request-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.