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

# Go SDK

> Install the Go client, authenticate, and call the API.

The Go client is
`github.com/parable-platform/platform-schemas/sdk/go/web-api`. It covers
every endpoint in the [API Reference](/api-reference/overview).

<Info>
  Your Parable representative will confirm module access if the package is
  not public yet.
</Info>

## Install

```bash theme={null}
go get github.com/parable-platform/platform-schemas/sdk/go/web-api
```

## Import and authenticate

Create a client with your workspace API token. See
[Authentication](/getting-started/authentication) if you do not have one.

```go theme={null}
import (
	"context"
	"fmt"
	"log"
	"os"

	webapisdk "github.com/parable-platform/platform-schemas/sdk/go/web-api"
	webapitypes "github.com/parable-platform/platform-schemas/types/go/web-api"
)

token := os.Getenv("PARABLE_API_TOKEN")
if token == "" {
	log.Fatal("Set PARABLE_API_TOKEN")
}

sdk, err := webapisdk.New(webapisdk.SDKConfig{
	BaseURL: "https://api.askparable.com",
	Auth: &webapisdk.AuthConfig{
		Token: token,
	},
})
if err != nil {
	log.Fatal(err)
}

ctx := context.Background()
```

The client sends `Authorization: Bearer ...` on every call.

## Read

Who you are, then the connectors configured in your workspace:

```go theme={null}
me, err := sdk.UsersNamespace.Me(ctx)
if err != nil {
	log.Fatal(err)
}
fmt.Println(me.Name, me.Email)

connectors, err := sdk.VendorsNamespace.TenantConnectorInstances(ctx)
if err != nil {
	log.Fatal(err)
}
for _, connector := range connectors {
	fmt.Println(connector.Id, connector.ConnectionStatus)
}
```

## Update

Enable a tap. Replace the id with one from your workspace. List taps with
`sdk.TenantConnectorTapsNamespace.TenantConnectorTaps(ctx, nil)`.

```go theme={null}
tap, err := sdk.TenantConnectorTapsNamespace.UpdateTenantConnectorTap(
	ctx,
	"018f2a3b-9c4d-7e5f-8a6b-1c2d3e4f5a6b",
	webapitypes.UpdateTenantConnectorTapInput{
		Enabled: webapitypes.InputField[bool]{Set: true, Value: true},
	},
)
if err != nil {
	log.Fatal(err)
}
fmt.Println(tap.Id, tap.Enabled)
```

Omitted fields are left unchanged. To disable the tap, set `Value: false`.

<Tip>
  This SDK maps directly to API names. Groups in the
  [API Reference](/api-reference/overview) are namespaces
  (`sdk.UsersNamespace`, `sdk.VendorsNamespace`); operation names are
  methods (`Me`, `TenantConnectorInstances`). If an endpoint is in that
  spec, it is on this client.
</Tip>
