> ## Documentation Index
> Fetch the complete documentation index at: https://clumio.reclear.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Make your first Go SDK call

> Install the Go SDK, configure a token, and call a typed controller.

This quickstart calls the policy controller and prints the response. It is a starting point for a
service that needs typed Go models.

<Note>
  **Prototype note.** The package and method names below come from the public SDK repository. This
  example has not been run against a live Clumio tenant.
</Note>

## Before you start

* Go 1.20 or later;
* a Clumio API token; and
* the hostname for the control plane that issued the token.

## Install

```bash theme={null}
go get github.com/clumio-code/clumio-go-sdk
```

## Create a client

```go theme={null}
package main

import (
    "fmt"
    "log"
    "os"

    "github.com/clumio-code/clumio-go-sdk/config"
    "github.com/clumio-code/clumio-go-sdk/controllers"
)

func main() {
    cfg := config.Config{
        Token:   os.Getenv("CLUMIO_API_TOKEN"),
        BaseUrl: os.Getenv("CLUMIO_API_BASE_URL"),
    }
    client := controllers.NewPolicyDefinitionsV1(cfg)
    response, err := client.ListPolicyDefinitions(nil, nil)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(response)
}
```

Set `CLUMIO_API_TOKEN` and `CLUMIO_API_BASE_URL` before running the program.

## Next steps

* [Go SDK reference](/developer-tools/go-sdk)
* [SDK overview](/developer-tools/sdks)
* [API endpoint examples](/api-reference/discovery)
