> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# Our Go SDK is now v1

You can use our Go SDK to streamline integrating with Paddle Billing. We released major version 1, which means breaking changes result in a new version.

---

## What's new?

A few months ago, we released our official Go SDK for Paddle Billing. Today, we've released version `1.0.0`, which means it's ready to rely on with no further breaking changes as part of this version.

## How it works

SDKs make it easier to work with the Paddle Billing platform. They reduce the amount of boilerplate code you need to write and include helper functions to make it quicker and easier to integrate Paddle Billing.

We use [semantic versioning](https://semver.org/) for our SDKs. We initially released our [Go](https://github.com/PaddleHQ/paddle-go-sdk/) SDK as major version zero (`0.y.z`). While we were confident it was stable, we wanted to get feedback from our developer community before locking in version 1.

Since launch, we've made a bunch of quality-of-life improvements and fixes to our SDKs and even landed a few PRs from community contributors.

Today, we've released version `1.0.0` of our Go SDK for Paddle Billing. This means it's now ready to rely on, with a guarantee that there will be no further breaking changes as part of this version.

### Key features

* Available as a Go package for install using `go get`.
* Full parity with the Paddle API.
* Includes helper functions to help you verify webhook signatures.
* Released under the Apache 2.0 license, so anyone in the Paddle community can contribute.

## Examples

This example shows initializing a new Paddle client with an [API key](https://developer.paddle.com/api-reference/about/api-keys.md) and iterating through products.

<!-- This example shows initializing a new Paddle client with an API key and iterating through products. -->
```go {% title="Initialize and iterate through products" %}
package main

import (
 "os"
 "fmt"
 "context"

 paddle "github.com/PaddleHQ/paddle-go-sdk"
 "log"
)

func main() {
 ctx := context.Background()

 client, _ := paddle.New(
  os.Getenv("PADDLE_API_KEY"),
  paddle.WithBaseURL(paddle.ProductionBaseURL),
 )

 products, _ := client.ListProducts(ctx, &paddle.ListProductsRequest{IncludePrices: true})

 products.Iter(ctx, func(p *paddle.Product) (bool, error) {
  // Do something with the product
  fmt.Printf("%+v\n", p)
  return true, nil
 })
}
```

For more examples, see [`@PaddleHQ/paddle-go-sdk`](https://github.com/PaddleHQ/paddle-go-sdk/) on GitHub.

## Next steps

This change is available now.

There are no changes to endpoints or fields in the API as a result of this change.

### New to our SDKs?

Go to our [SDKs and tools](https://developer.paddle.com/resources/overview.md) page to get started with our Go SDK.

### Upgrading from v0

To get the latest version, update using `go get`:

```shell
go get -u github.com/PaddleHQ/paddle-go-sdk
```

You may need to make changes to your integration to use the latest version. Check the `CHANGELOG.md` and `UPGRADING.md` files are the root of the repo on GitHub for a summary of changes and information about how to upgrade.