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

# Installing the Node.js SDK

> Install the ZenRows Node.js SDK and get your API key ready to make requests.

## Requirements

<CardGroup cols={2}>
  <Card title="Node.js 20+" icon="node-js">
    Required by the SDK's `engines` field in `package.json`.
  </Card>

  <Card title="API key" icon="key" href="https://app.zenrows.com/register?p=free">
    Create a free account to get yours, no credit card required.
  </Card>
</CardGroup>

<Steps>
  <Step title="Install the package">
    Install the SDK with your package manager of choice:

    <Tabs>
      <Tab title="npm">
        ```bash theme={null} theme={null}
        npm install zenrows
        ```
      </Tab>

      <Tab title="yarn">
        ```bash theme={null} theme={null}
        yarn add zenrows
        ```
      </Tab>

      <Tab title="pnpm">
        ```bash theme={null} theme={null}
        pnpm install zenrows
        ```
      </Tab>

      <Tab title="bun">
        ```bash theme={null} theme={null}
        bun install zenrows
        ```
      </Tab>
    </Tabs>

    The SDK has two dependencies, `fastq` (concurrency queue) and `fetch-retry` (retry logic on top of `fetch`), installed automatically.
  </Step>

  <Step title="Verify the install">
    Run this in a Node.js script or REPL to confirm the package is available:

    ```javascript theme={null} theme={null}
    const { ZenRows } = require("zenrows");

    console.log(ZenRows);
    ```

    Or with ES modules / TypeScript:

    ```typescript theme={null} theme={null}
    import { ZenRows } from "zenrows";

    console.log(ZenRows);
    ```

    If it prints the `ZenRows` class without raising an error, you're ready to go.
  </Step>

  <Step title="Get your API key">
    Your API key authenticates every request you send through the SDK. Grab it from the [ZenRows Request Builder](https://app.zenrows.com/builder) after signing up.

    <Warning>
      Keep your API key private. Load it from an environment variable (like `process.env.ZENROWS_API_KEY`) instead of hardcoding it in scripts you commit to version control.
    </Warning>
  </Step>
</Steps>

<Card title="Next: Quickstart" icon="rocket" href="/universal-scraper-api/sdk/nodejs/quickstart">
  Make your first request with the SDK.
</Card>
