Skip to main content
The ZenRows Node.js SDK (npm package zenrows) is a lightweight client for the Universal Scraper API. It wraps the native fetch API, adding automatic retries and a built-in concurrency queue on top.
Every call returns a standard Response object, the same one the native fetch API returns. Since every method is already a Promise, there’s no separate set of “async” methods to learn, unlike some other language SDKs.

What the SDK handles for you

  • Authentication - your API key is set once in the client constructor, not repeated on every call.
  • Retries - optionally retry failed requests (network errors, 422, 503, 504) with exponential backoff, without writing retry logic yourself.
  • Concurrency - every request from a client instance is automatically queued and limited to match your ZenRows plan’s concurrency limit.
  • Native fetch - no extra HTTP client dependency; the SDK builds directly on Node’s built-in fetch.

What you’ll need

Node.js 20+

Required by the SDK’s engines field in package.json.

API key

Create a free account to get yours, no credit card required.
The SDK only covers the Universal Scraper API’s GET and POST modes; it doesn’t expose a put() method. For the full list of request parameters (premium_proxy, css_extractor, autoparse, and so on), see the Universal Scraper API setup guide. Most parameters work the same way through the SDK’s config argument, with one exception: js_render only works on GET requests, not POST. See POST Requests.
Looking for a different language? ZenRows also maintains a Python SDK.

Explore the Node.js SDK

Installation

Install the package and get your API key.

Quickstart

Make your first request in a few lines of code.

POST Requests

Submit forms or data payloads.

Concurrency

Scrape many URLs in parallel.

Error Handling and Retries

Configure automatic retries and handle failures.

The Response Object

What you get back from every request.

Custom Headers

Forward specific headers to the target site.

FAQ

Answers to common questions.