Skip to main content

Setup and compatibility

Node.js 20 and later, per the package’s engines field. The SDK has two dependencies, fastq and fetch-retry, installed automatically with npm install zenrows.
Yes. package.json exposes both a CommonJS build (require("zenrows")) and an ES module build (import { ZenRows } from "zenrows"), plus TypeScript types.
No. The SDK talks to the Universal Scraper API’s endpoint directly (API Mode). If you want to use ZenRows as a proxy in your own HTTP client instead, see the Proxy Mode documentation rather than the SDK.

Requests, errors, and concurrency

No. Only get() and post() are exposed. See Sending a PUT request for a workaround using native fetch.
By design, the SDK resolves with the Response object even for non-2xx status codes, matching native fetch behavior. Check response.ok or response.status yourself. See Error Handling and Retries.
The Node.js SDK’s built-in retry logic only covers 422, 503, 504, and network errors, not 429 or 500/502. Lower your concurrency or add your own backoff for rate-limit errors. See Concurrency.
No. Each ZenRows instance enforces its own concurrency setting independently. Running two scripts (or two client instances) at the same time can exceed your plan’s actual limit and trigger 429 Too Many Requests errors. Coordinate concurrency across processes yourself if you run multiple scripts against the same ZenRows plan.

Project and support

Yes. See the ZenRows Python SDK on PyPI, which additionally supports put() and explicit async methods.
The SDK is open source on GitHub. Open an issue there for bugs, or a pull request if you’d like to contribute.
MIT. You can use, modify, and distribute it freely; see the LICENSE file in the repository.

Still stuck?

Check the API Error Codes reference, or contact support directly.