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

# Extract

> Turn any messy web page into structured JSON, exact fields you pick, or Markdown, from the terminal.

`zenrows extract` fetches a page and converts it into structured data: automatic JSON, fields you choose with CSS selectors, or Markdown.

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

## Examples

```bash theme={"dark"}
# Automatic structured JSON (default method)
zenrows extract https://www.scrapingcourse.com/ecommerce/ --autoparse

# CSS selector map
zenrows extract <url> --css '{"title":"h1","price":".price"}' --validate

# Built-in output filters
zenrows extract <url> --outputs emails,links

# Convert to Markdown
zenrows extract <url> --output markdown
```

## Flags

Pick exactly one method per call: `--autoparse`, `--css`, `--outputs`, or `--output`.

| Flag | Description |
| - | - |
| `--autoparse` | Automatic structured JSON (default method) |
| `--css <json>` | CSS selector map, e.g. `'{"title":"h1","price":".price"}'` |
| `--outputs <list>` | Built-in output filters as JSON: `emails`, `phone_numbers`, `headings`, `images`, `audios`, `videos`, `links`, `menus`, `hashtags`, `metadata`, `tables`, `favicon`, comma-separated, or `*` for all |
| `--output <fmt>` | `markdown` or `text` conversion instead of extraction |
| `--validate` | Fail if the result is not valid JSON |
| `--manual` / `--js-render` / `--premium-proxy` | Same manual fetch controls as [`zenrows fetch`](/cli/fetch/introduction) |
| `--proxy-country <cc>` | Geo-target |
| `--wait <ms>` / `--wait-for <selector>` | Same wait controls as `zenrows fetch` |
| `--out <file>` | Write output to a file |
| `--no-signup` | Do not auto-create a Free-plan account if no key exists |
| `--json` | Print a structured result |


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