Skip to main content
The ZenRows Go SDK (package scraperapi) is a lightweight client for the Universal Scraper API. It wraps the same https://api.zenrows.com/v1 endpoint you’d otherwise call with net/http, adding automatic retries, concurrency limiting, and a typed request builder on top.
Every request parameter is a typed field on a RequestParameters struct instead of a loose map or dictionary, so the compiler catches a typo’d parameter name before your code ever makes a network call. Every method also takes a context.Context, so cancellation and timeouts work the same way they do with any other Go HTTP call.

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, 429, 500) with exponential backoff, without writing retry logic yourself.
  • Concurrency - cap how many requests run in parallel with an internal semaphore, to match your ZenRows plan’s concurrency limit.
  • Typed parameters - every Universal Scraper API parameter (js_render, premium_proxy, css_extractor, and more) is a typed field on RequestParameters, not a hand-built query string.

What you’ll need

Go 1.23+

Required by the SDK’s go.mod.

API key

Create a free account to get yours, no credit card required.
The SDK only covers the Universal Scraper API’s GET, POST, and PUT modes; it doesn’t expose PATCH or DELETE. 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 RequestParameters regardless of method, with one exception: JSRender only works on GET requests, not POST or PUT. See POST and PUT Requests.
Looking for a different language? ZenRows also maintains a Python SDK and a Node.js SDK.

Explore the Go SDK

Installation

Install the package and get your API key.

Quickstart

Make your first request in a few lines of code.

POST and PUT Requests

Submit forms or data payloads.

Concurrency

Scrape many URLs at once with goroutines.

Error Handling and Retries

Configure automatic retries and handle failures.

Response Object

What you get back from every request.

Custom Headers

Forward specific headers to the target site.

FAQ

Answers to common questions.