Skip to main content
POST
JSON
1 Credit With actions: 2 Credits PDF OCR: +1 Credit per recovered page Set formats to choose outputs. Each requested output returns requested: true with its data; outputs you did not request return data: null. One credit covers every format in the request, including cache hits. See Scrape a webpage for content controls, freshness, and dynamic pages, or the format guides for screenshots, images, and bytes.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <API_KEY>. Keys have full access by default.

Body

application/json
url
string<uri>
required

The URL to scrape.

Pattern: ^https?://
formats
object
required

Outputs to return. Enable at least one; omitted formats are false.

sharedParams
object

Shared browser and content settings. Content filters leave screenshots and original bytes unchanged.

markdownParams
object

Markdown options. Requires formats.markdown: true.

screenshotParams
object

Screenshot options. Requires formats.screenshot: true.

imageParams
object

Image options. Requires formats.images: true.

parseParams
object

Required when formats.parse is true.

maxAgeMs
integer
default:86400000

Maximum age of each cached output. Defaults to 1 day; 0 fetches fresh and updates the requested outputs. Compatible outputs are shared with the individual scrape endpoints. Image results with hosted files refresh after 23 hours; other outputs retain their own freshness.

Required range: 0 <= x <= 2592000000
zdr
enum<string>
default:disabled

Zero data retention. Bypasses caches and uploads; excludes request/response content and tags from logs. Must be enabled for your organization.

Available options:
enabled,
disabled
timeoutOpts
object

Total deadline, including navigation, actions, waiting, and all outputs. Defaults to 60000 milliseconds with behavior fail. Use return-partial to capture the current page state and return captured images if image processing cannot finish before the deadline; these responses set isPartial and are not cached. Every requested format must still be available. Fixed waits must fit before a response reserve of up to 5000 milliseconds (at most one quarter of the timeout) when using return-partial.

tags
string[]

Labels for tracking request usage. Not retained when zdr is enabled.

Maximum array length: 20
Required string length: 1 - 50
Example:

Response

All six outputs are present. Unrequested outputs have requested: false and data: null. Every requested output must succeed.

url
string<uri>
required

Final URL after redirects and browser actions.

Pattern: ^https?://
html
object
required

Rendered HTML after content filters.

markdown
object
required

Markdown after content filters.

screenshot
object
required

An image data URL. Use directly as an image src.

images
object
required

Images after content filters. Empty when none are found.

bytes
object
required

Original HTTP response body. Waiting, actions, and content filters never change it.

parsed
object
required

Fields produced by parseParams.rules, after shared content filters.

metadata
object
required

Page details, when available.

cache_metadata
object
required

Cache outcome for this response. Composite responses are hits only when every cache-controlled fetch contributing to the output was a hit; age_ms is the oldest contributing hit.

request_id
string<uuid>
required

Unique id of this API call, also sent in the X-Request-Id response header. Quote it when contacting support about a failed request.

Example:

"3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91"

isPartial
boolean

Present when return-partial captures a page that is still loading or returns images before image processing finishes. Partial responses are not cached.

key_metadata
object

Credit usage, included whenever a valid API key is provided.