> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zenrows.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch

> Get any page as clean, usable content from the terminal, reliably, even if it's dynamic, JavaScript-heavy, or protected.

`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.

```bash theme={"dark"}
zenrows fetch <url> [flags]
```

## Examples

```bash theme={"dark"}
# 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
```

<Tip>
  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.
</Tip>

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.