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

# How to Use Zenrows

> Get your API key, then find the exact setup guide for the primitive and surface you need, Fetch, Extract, Batch, or Browser Sessions, over the API, CLI, SDK, or MCP.

This page is a shortcut: answer two questions and land on the exact setup guide for your use case, instead of reading through every primitive to find the one you need.

## Step 1: Get an API Key

Every primitive and surface uses the same key.

<Steps>
  <Step title="Create an account">
    [Sign up for free](https://app.zenrows.com/register?p=free), no credit card required.
  </Step>

  <Step title="Get your API key">
    Find it on your [dashboard](https://app.zenrows.com/) as soon as you sign up.
  </Step>
</Steps>

<Tip>Using the [CLI](/cli/introduction)? Skip both steps, its first cloud call auto-provisions a Free-plan key for you.</Tip>

## Step 2: Pick What You Need to Do

These aren't mutually exclusive: most real tasks combine two or three. Expand every accordion below that matches a step in your workflow, not just the first one that fits.

<AccordionGroup>
  <Accordion title="Get a page's content, HTML, Markdown, plain text, or a screenshot">
    Use **Fetch**. [Set it up](/fetch/setup) and make your first request.
  </Accordion>

  <Accordion title="Turn a page into structured JSON, without writing your own parser">
    Use **Extract**. Read the [introduction](/extract/introduction), then add `extract=auto` to a Fetch call.
  </Accordion>

  <Accordion title="Process thousands of URLs as one job, instead of scripting it yourself">
    Use **Batch**. [Set it up](/batch/setup) and submit your first job.
  </Accordion>

  <Accordion title="Click, log in, navigate, or interact with a page like a real user">
    Use **Browser Sessions**. [Set it up](/browser-sessions/setup) and start interacting with a page.
  </Accordion>
</AccordionGroup>

<Tip>
  **Combining primitives is normal, not an exception.** A typical pipeline: use Fetch or Extract to pull a page's data, Batch to run that same request across thousands of URLs, and Browser Sessions for the handful of pages that need a login or a click first. See [What is Zenrows?](/first-steps/what-is-zenrows#why-zenrows) for how the primitives fit together as a full workflow.
</Tip>

## Step 3: Pick How You Want to Build

<AccordionGroup>
  <Accordion title="Call an HTTP endpoint directly, from any language">
    Use the **API**. Fetch and Extract are parameters on one endpoint; Batch has its own dedicated REST API, and Browser Sessions connects over its own WebSocket endpoint.
  </Accordion>

  <Accordion title="Work from a terminal, or let an AI agent drive it">
    Use the **CLI**. [Install it](/cli/introduction) and run `zenrows fetch`, `extract`, `batch`, or `browser` directly.
  </Accordion>

  <Accordion title="Write typed code in Python, Node.js, or Go">
    Use an **SDK**. See the [SDK overview](/sdk/overview) for Fetch (Python, Node.js, Go), Extract (through that same client), Batch ([Python](/batch/sdk/python) or [Node.js](/batch/sdk/nodejs)), and Browser Sessions (your own Puppeteer or Playwright code, no separate client).
  </Accordion>

  <Accordion title="Give an AI assistant or agent client direct access, no code">
    Use **MCP**. [Connect your client](/integrations/mcp/mcp-overview) in a few lines of config.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={3}>
  <Card title="Welcome to Zenrows" icon="rocket" href="/first-steps/welcome">
    See every primitive and surface at a glance, and how to build with AI.
  </Card>

  <Card title="What is Zenrows?" icon="help-circle" href="/first-steps/what-is-zenrows">
    The identity and reasoning behind the infrastructure.
  </Card>

  <Card title="Our Primitives" icon="sitemap" href="/first-steps/our-products">
    Compare every primitive in depth and find the right one for your use case.
  </Card>
</CardGroup>
