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

# Pick the right product

> Scrape vs SmartScraper vs SmartBrowse, and when to use each.

webscrape.ai ships three products. Which one you want depends on whether you need raw bytes, structured data, or browser interaction.

## Decision table

| You want…                                          | Use                                               | Cost                   |
| -------------------------------------------------- | ------------------------------------------------- | ---------------------- |
| The raw HTML / markdown / PDF of one page          | [`/v1/scrape`](/docs/api-reference/scrape)             | 1 credit (+2 stealth)  |
| Structured JSON from one page, schema-validated    | [`/v1/smartscraper`](/docs/api-reference/smartscraper) | 5 credits (+5 stealth) |
| To click, type, paginate, or wait like a real user | [SmartBrowse](#smartbrowse)                       | 2 credits per page     |

## Common patterns

<CardGroup cols={2}>
  <Card title="One-shot, structured" icon="bolt">
    SmartScraper. Schema in, JSON out.
  </Card>

  <Card title="I'll parse it myself" icon="code">
    Scrape. Raw HTML or markdown, no LLM involved.
  </Card>

  <Card title="Behind a click or login" icon="hand-pointer">
    SmartBrowse. Real Chrome and replayable recipes.
  </Card>

  <Card title="Cheap retry strategy" icon="rotate">
    Try Scrape first, fall back to SmartScraper or stealth on failure. Failed calls cost 0.
  </Card>
</CardGroup>

## SmartBrowse

SmartBrowse runs a saved recipe in a real Chrome session. You build the recipe visually in the [studio](https://webscrape.ai/app/smartbrowse) — click an element, scroll, type into a search box, paginate.

**Use it when** the data is behind a login, an interaction, or a render that only fires after user input.

**Run flow:** `POST /v1/smartbrowse/recipes/{id}/run` gives you back a `run_id`. Poll `GET /v1/smartbrowse/runs/{id}`, or set up a webhook from the dashboard and let us push the result.

## Stealth mode

[Stealth mode](/docs/concepts/stealth-mode) is a per-request flag (`"stealth": true`), not a separate product. Toggle it on Scrape and SmartScraper when the default fetcher hits a challenge or empty page. SmartBrowse already runs in real Chrome, so stealth is built in.
