Skip to main content
Pinecone Docs

Search documentation

Type to search this documentation.

On this pageOverview

Pinecone Go SDK

Install and use the Pinecone Go SDK to manage indexes and namespaces, upsert vectors, run semantic search, and call the Admin and Inference APIs from Go.

The Pinecone Go SDK requires a Go version with modules support.

SDK versions are pinned to specific API versions. When a new API version is released, a new version of the SDK is also released.

The mappings between API versions and Go SDK versions are as follows:

API version SDK version
2026-04 v6.x
2025-10 v5.x
2025-04 v4.x
2025-01 v3.x
2024-10 v2.x
2024-07 v1.x
2024-04 v0.x

When a new stable API version is released, you should upgrade your SDK to the latest version to ensure compatibility with the latest API changes.

To install the latest version of the Go SDK, add a dependency to the current module:

Shell
go get github.com/pinecone-io/go-pinecone/v6/pinecone

To install a specific version of the Go SDK, run the following command:

Shell
go get github.com/pinecone-io/go-pinecone/v6/pinecone@<version>

To check your SDK version, run the following command:

Shell
go list -u -m all | grep go-pinecone

Each major version carries its version number in the module path, so crossing a major requires updating the import path in every file that uses the SDK. For example, moving from v4 to v6 means changing:

Go
// before
import "github.com/pinecone-io/go-pinecone/v4/pinecone"

// after
import "github.com/pinecone-io/go-pinecone/v6/pinecone"

Apart from the module path, v5.0.0 and v6.0.0 are backward compatible with the release lines before them.

If you already have the Go SDK, upgrade to the latest version as follows:

Shell
go get -u github.com/pinecone-io/go-pinecone/v6/pinecone@latest

Once installed, you can import the SDK and then use an API key to initialize a client instance:

Go
package main

import (
    "context"
    "log"

    "github.com/pinecone-io/go-pinecone/v6/pinecone"
)

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

    pc, err := pinecone.NewClient(pinecone.NewClientParams{
        ApiKey: "YOUR_API_KEY",
    })
    if err != nil {
        log.Fatalf("Failed to create Client: %v", err)
    }
} 

To manage organizations, projects, API keys, and role-based access control, initialize an AdminClient with service account credentials instead:

Go
package main

import (
    "context"
    "log"
    "os"

    "github.com/pinecone-io/go-pinecone/v6/pinecone"
)

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

    adminClient, err := pinecone.NewAdminClientWithContext(ctx, pinecone.NewAdminClientParams{
        ClientId:     os.Getenv("PINECONE_CLIENT_ID"),
        ClientSecret: os.Getenv("PINECONE_CLIENT_SECRET"),
    })
    if err != nil {
        log.Fatalf("Failed to create AdminClient: %v", err)
    }
}
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu