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

# Frequently Asked Questions

> Answers to common questions about the ZenRows Go SDK.

### Setup and compatibility

<AccordionGroup>
  <Accordion title="What Go versions does the SDK support?" icon="golang">
    Go 1.23.1 or later, matching the version pinned in the SDK's `go.mod`.
  </Accordion>

  <Accordion title="What's the correct import path?" icon="download">
    `github.com/zenrows/zenrows-go-sdk/service/api`, singular `service`. The package name you import it as is `scraperapi`.
  </Accordion>

  <Accordion title="Does the SDK support PATCH or DELETE requests?" icon="ban">
    No. The Universal Scraper API only accepts `GET`, `POST`, and `PUT`. Calling `Scrape` with any other method returns an `InvalidHTTPMethodError` immediately.
  </Accordion>

  <Accordion title="Does the SDK support Proxy Mode?" icon="route">
    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](/universal-scraper-api/universal-scraper-api-setup#connection-modes) rather than the SDK.
  </Accordion>
</AccordionGroup>

### Requests, errors, and concurrency

<AccordionGroup>
  <Accordion title="How do I set a request timeout?" icon="clock">
    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.
  </Accordion>

  <Accordion title="Why doesn't a failed request return a Go error?" icon="shield-halved">
    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](/universal-scraper-api/sdk/go/error-handling-and-retries).
  </Accordion>

  <Accordion title="What's the default concurrency limit?" icon="gauge-high">
    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.
  </Accordion>

  <Accordion title="Which status codes are retried automatically?" icon="rotate">
    `422`, `429`, and `500`, plus network-level failures. `502`, `503`, and `504` are not retried by default.
  </Accordion>
</AccordionGroup>

### Project and support

<AccordionGroup>
  <Accordion title="Is there a Python or Node.js version of the SDK?" icon="node-js">
    Yes. See the [ZenRows Python SDK](/universal-scraper-api/sdk/python/introduction), published as <a href="https://pypi.org/project/zenrows/" target="_blank" rel="noopener noreferrer nofollow">`zenrows` on PyPI</a>, and the [ZenRows Node.js SDK](/universal-scraper-api/sdk/nodejs/introduction), published as <a href="https://www.npmjs.com/package/zenrows" target="_blank" rel="noopener noreferrer nofollow">`zenrows` on npm</a>.
  </Accordion>

  <Accordion title="Where can I see the SDK's source code or report a bug?" icon="github">
    The SDK is open source on <a href="https://github.com/ZenRows/zenrows-go-sdk" target="_blank" rel="noopener noreferrer nofollow">GitHub</a>, under the `service/api` directory. Open an issue there for bugs, or a pull request if you'd like to contribute.
  </Accordion>

  <Accordion title="What license is the SDK released under?" icon="scale-balanced">
    MIT. You can use, modify, and distribute it freely; see the <a href="https://github.com/ZenRows/zenrows-go-sdk/blob/main/LICENSE" target="_blank" rel="noopener noreferrer nofollow">LICENSE</a> file in the repository.
  </Accordion>
</AccordionGroup>

<Card title="Still stuck?" icon="life-ring" href="mailto:success@zenrows.com">
  Check the [API Error Codes](/api-error-codes) reference, or contact support directly.
</Card>
