zenrows.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.
Account
subscription
account.subscription
Read the plan behind the key: credits used and allowed, period end, per-product usage and the concurrency limit
Risk: read
plan full type
plan full type
api_key full type
api_key full type
Crawl
get
crawl.get
Read a crawl with its coverage and one page of results; poll it with the same cursor to collect new URLs
Risk: read
While the crawl runs
next_cursor is never null. Poll with the cursor to collect only the URLs you have not read.
Output
error full type
error full type
coverage full type
coverage full type
results full type
results full type
getContent
crawl.getContent
Read one kept page of a crawl, in the crawl’s output format
Risk: read
Output
list
crawl.list
List crawls, newest first, without their results
Risk: read
Output
crawls full type
crawls full type
start
crawl.start
Start a crawl from one URL: each page it opens is a billed Fetch request, and a crawl runs until its page limits stop it
Risk: write
The page limit is the cost cap, because each page opened is one billed Fetch request.
webhookUrl needs a ZenRows webhook signing key on the account and an https host that resolves publicly, and the URL cannot change after the start.
Output
error full type
error full type
coverage full type
coverage full type
results full type
results full type
stop
crawl.stop
Stop a running crawl. Pages already being fetched finish and are billed
Risk: write
Pages already in flight finish and are billed. Read the crawl until
next_cursor is null for its final results.
Output
Extract
allowance
extract.allowance
Read how many domain preparations this account has left this month
Risk: read
domains
extract.domains
List the sites Extract can handle today, with their verticals
Risk: read
domains full type
domains full type
getDomainStatus
extract.getDomainStatus
Read how far a domain preparation has got: preparing, ready or failed
Risk: read
Output
roles full type
roles full type
failure full type
failure full type
listPreparedDomains
extract.listPreparedDomains
List the domains this account submitted for preparation, with the monthly allowance
Risk: read
domains full type
domains full type
allowance full type
allowance full type
prepareDomain
extract.prepareDomain
Ask Zenrows to prepare a domain for Extract, which takes minutes and one slot of the monthly allowance; preparation is free and shared across accounts
Risk: write
Preparation is free and needs no credits, but it takes one slot of the monthly allowance and minutes to finish. Send
exampleUrls: a domain that is not already ready is refused without them. A failed attempt that Zenrows could not fetch does not use a slot. Poll extract.getDomainStatus rather than blocking.
Output
roles full type
roles full type
failure full type
failure full type
Fetch
browse
fetch.browse
Render a page and act on it before capture: fill fields, click, check, scroll or run JavaScript. Reaches the site, so it can change its state
Risk: write
A write: browser actions reach the site, so this is not available to a read-only caller. Needs
jsRender or mode: 'auto', and the whole sequence has 40 seconds.
jsInstructions full type
jsInstructions full type
cssExtract
fetch.cssExtract
Extract named fields from a page with your own CSS or XPath selectors, such as a title, a price and every link, on any site with no preparation
Risk: read
The answer is the extracted keys at the top level, not an Extract envelope. A selector that matched nothing comes back as an empty string rather than a missing key.
Output:
Record<string, JsonValue>
extract
fetch.extract
Turn a page into structured JSON with Extract: the site’s own field names, or a canonical Real Estate schema, on a domain prepared for it
Risk: read
Needs a domain prepared for Extract, or a 403 REQS007.
extract defaults to auto; extractFields narrows the fields and requires extract.
Output
jsonResponse
fetch.jsonResponse
Capture the page and the XHR and fetch calls it made, as a JSON envelope, from a rendered page
Risk: read
Needs
jsRender or mode: 'auto'. Selectors arrive under css_extractor.data and output filters under outputs, inside the envelope. Send one or the other: with both, ZenRows drops outputs.
Output
outputs
fetch.outputs
Pull typed data out of a page without parsing it: emails, phone numbers, links, headings, tables, metadata and more
Risk: read
Output:
Record<string, JsonValue>
page
fetch.page
Fetch one page through Zenrows: HTML by default, or Markdown and plaintext, with optional browser rendering, residential proxies, geolocation and resource blocking
Risk: read
Returns the page itself, so the body is text.
responseType picks HTML (the default), Markdown or plaintext; the PDF conversion is not exposed because this client cannot return a binary body.
Output
post
fetch.post
Send a POST to the target through Zenrows and return its answer. Reaches the site with the caller’s body, so the site’s state can change
Risk: write
The forwarded body reaches the target, so the site’s state can change.
jsRender cannot be combined with a JSON body, because ZenRows reads the body as a query parameter.
body full type
body full type
put
fetch.put
Send a PUT to the target through Zenrows and return its answer. Reaches the site with the caller’s body, so the site’s state can change
Risk: write
The forwarded body reaches the target, so the site’s state can change.
body full type
body full type