Skip to main content

Setup and compatibility

Go 1.23.1 or later, matching the version pinned in the SDK’s go.mod.
github.com/zenrows/zenrows-go-sdk/service/api, singular service. The package name you import it as is scraperapi.
No. The Universal Scraper API only accepts GET, POST, and PUT. Calling Scrape with any other method returns an InvalidHTTPMethodError immediately.
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

Pass a context.Context created with context.WithTimeout to Get, Post, or Put. We recommend not setting a timeout below 3 minutes, since canceling a request client-side doesn’t immediately free up the concurrency slot on ZenRows’ side.
By design, a non-2xx HTTP response is still a successful round trip as far as the SDK is concerned, it returns a *Response with err == nil. Check response.IsSuccess(), response.IsError(), or response.StatusCode() yourself. See Error Handling and Retries.
The default is 5. The SDK creates an internal semaphore capped at 5 even without an explicit WithMaxConcurrentRequests call. Set it higher if your plan allows more concurrent requests, or lower it if you’re seeing 429 Too Many Requests errors.
422, 429, and 500, plus network-level failures. 502, 503, and 504 are not retried by default.

Project and support

Yes. See the ZenRows Python SDK, published as zenrows on PyPI, and the ZenRows Node.js SDK, published as zenrows on npm.
The SDK is open source on GitHub, under the service/api directory. 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.