Skip to main content
Every 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
Input: empty object Costs no credits and does not count against the concurrency limit, so it is safe to call after a failure to see where the credits stand. Output

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
Input While the crawl runs next_cursor is never null. Poll with the cursor to collect only the URLs you have not read. Output

getContent

crawl.getContent Read one kept page of a crawl, in the crawl’s output format Risk: read
Input Output

list

crawl.list List crawls, newest first, without their results Risk: read
Input Output

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
Input 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

stop

crawl.stop Stop a running crawl. Pages already being fetched finish and are billed Risk: write
Input 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
Input: empty object Costs no credits. Output

domains

extract.domains List the sites Extract can handle today, with their verticals Risk: read
Input: empty object Output

getDomainStatus

extract.getDomainStatus Read how far a domain preparation has got: preparing, ready or failed Risk: read
Input Output

listPreparedDomains

extract.listPreparedDomains List the domains this account submitted for preparation, with the monthly allowance Risk: read
Input: empty object Output

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
Input 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

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
Input 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.
Output

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
Input 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
Input 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
Input 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
Input 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
Input 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
Input 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.
Output

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
Input The forwarded body reaches the target, so the site’s state can change.
Output