zenrows fetch retrieves a single page and returns its HTML, Markdown, or plain text. It handles JavaScript rendering and anti-bot protection automatically, so most calls need no extra flags.
zenrows fetch <url> [flags]
Examples
# Just works, no flags needed
zenrows fetch https://httpbin.io/html
# Markdown output
zenrows fetch https://example.com --output markdown
# Take manual control of rendering and proxies
zenrows fetch https://example.com --manual --js-render --premium-proxy
# Geo-target and wait for an element
zenrows fetch https://example.com --proxy-country us --wait-for ".price"
# Save the response to a file
zenrows fetch https://example.com --out page.html
Start with the defaults. Only add
--manual --js-render --premium-proxy after a run’s trace (zenrows trace explain <run-id>) shows it’s actually needed, each flag raises cost.Flags
| Flag | Description |
|---|---|
--manual | Take manual control of rendering and proxies instead of the automatic default |
--js-render | Render JavaScript (manual mode only) |
--premium-proxy | Use residential IPs (manual mode only) |
--proxy-country <cc> | Geo-target. Works alone by default; in manual mode requires --premium-proxy |
--wait <ms> | Fixed wait after load |
--wait-for <selector> | Wait for a CSS selector |
--js-instructions <json> | JSON instructions to run on the page |
--session-id <n> | Keep the same IP across requests |
--original-status | Return the target’s original HTTP status |
--output <fmt> | html (default), markdown, text, or pdf |
--screenshot | Capture an above-the-fold screenshot |
--out <file> | Write the response body to a file |
--no-signup | Do not auto-create a Free-plan account if no key exists |
--json | Print a structured result instead of the raw body |