https://api.zenrows.com. The key travels in the X-API-Key header, or in the apikey query parameter when customHeaders is on, because ZenRows copies every request header onto the target page in that mode.
A Fetch answer is not always JSON. fetch.page returns the page itself as HTML, Markdown or plaintext, fetch.cssExtract and fetch.outputs return a JSON object, and fetch.extract returns { html, parsed }. ZenRows labels all of these text/plain, so the operation you call is what tells you the shape.
A crawl is a job. crawl.start returns a crawl_id and spends credits per page, crawl.get reads its status and one page of results, and polling it with the same cursor returns only new URLs. On Corsair’s cloud, get_job and the job card follow it for you.
Extract needs a domain prepared first. extract.getDomainStatus says whether it is ready; extract.prepareDomain asks for it, which takes minutes and one slot of the monthly allowance. fetch.cssExtract works on any site with no preparation.
What you get:
- 19 typed API operations
Setup
1
Install
2
Add the plugin
corsair.ts
multiTenancy: true, scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.3
Choose authentication
- API Key (Recommended)
No setup required yet. When you make your first request as a tenant, Corsair prompts for the API key.More: API Key
4
Connect a tenant
Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.
Example API calls
Fetch a page as HTMLWhat’s next
API reference
Every
zenrows.api.* operation with input and output types.Connect / OAuth
createLink, Hub delivery, and tenant connect flows.
Use with agents
Expose this plugin’s operations as MCP tools.