# Go

:::::callout{intent="note" title="Go client (SDK)"}
The latest Go client is version `v5.7.2`.

::::card-grid
:::card{title="weaviate/weaviate-go-client" href="https://github.com/weaviate/weaviate-go-client" icon="github"}
:::
::::
:::::

For the minimum supported Go version, see the [`go` directive in `go.mod`](https://github.com/weaviate/weaviate-go-client/blob/v5.7.2/go.mod) for client `v5.7.2`.

## Installation

The client doesn't support the old Go modules system. Create a repository for your code before you import the Weaviate client.

Create a repository:

```bash
go mod init github.com/weaviate-go-client
go mod tidy
```

To get the latest stable version of the Go client library, run the following:

```bash
go get github.com/weaviate/weaviate-go-client/v5
```

## Example

This example establishes a connection to your Weaviate instance and retrieves the schema.:

```go
package main

import (
	"context"
	"fmt"
	"github.com/weaviate/weaviate-go-client/v5/weaviate"
)

func GetSchema() {
    cfg := weaviate.Config{
        Host:   "localhost:8080",
		  Scheme: "http",
    }
    client, err := weaviate.NewClient(cfg)
    if err != nil {
        panic(err)
    }

    schema, err := client.Schema().Getter().Do(context.Background())
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v", schema)
}

func main() {
   GetSchema()
}
```

## Authentication

For more comprehensive information on configuring authentication with Weaviate, refer to the [authentication](../how-to-configure-weaviate/authz-authn.md) page.

The  client offers multiple options for authenticating against Weaviate, including multiple OIDC authentication flows.

The suitable authentication options and methods for the client largely depend on the specific configuration of the Weaviate instance.

### WCD authentication

:::callout{intent="tip" title="WCD + Weaviate client"}
Each Weaviate instance in [Weaviate Cloud (WCD)](/go/console?utm_content=others) is pre-configured to act as a token issuer for OIDC authentication.
:::

[See our WCD authentication documentation](../manage-clusters/connect.md) for instructions on how to authenticate against WCD with your preferred Weaviate client.

### API key authentication

:::callout{intent="info" title="Added in Weaviate Go client version `4.7.0`."}
:::

If you use an API key to authenticate, instantiate the client like this:

```go
cfg := weaviate.Config{
	Host:       "weaviate.example.com",
	Scheme:     "http",
	AuthConfig: auth.ApiKey{Value: "my-secret-key"},
	Headers:    nil,
}
client, err := weaviate.NewClient(cfg)
if err != nil{
  fmt.Println(err)
}
```

### OIDC authentication

To authenticate against Weaviate with OIDC, you must select a flow made available by the identity provider and create the flow-specific authentication configuration.

This configuration will then be used by the Weaviate client to authenticate. The configuration includes secrets that help the client obtain an `access token` and, if configured, a `refresh token`.

The `access token` is added to the HTTP header of each request and is utilized for authentication with Weaviate. Typically, this token has a limited lifespan, and the `refresh token` can be employed to obtain a new set of tokens when necessary.

#### Resource Owner Password Flow

This OIDC flow uses the username and password to obtain required tokens for authentication.

Note that not every provider automatically includes a `refresh token` and an appropriate _scope_ might be required that depends on your identity provider. The client uses _offline\_access_ as the default scope. This works with some providers, but as it depends on the configuration of the identity providers, we ask you to refer to the identity provider's documentation.

Without a refresh token, there is no possibility to acquire a new `access token` and the client becomes unauthenticated after expiration.

:::callout{intent="note"}
The Weaviate client does not save the username or password used.

They are only used to obtain the first tokens, after which existing tokens will be used to obtain subsequent tokens if possible.
:::

```go
cfg := weaviate.Config{
	Host:   "weaviate.example.com",
	Scheme: "http",
	AuthConfig: auth.ResourceOwnerPasswordFlow{
		Username: "Your user",
		Password: "Your password",
		Scopes:   []string{"offline_access"}, // optional, depends on the configuration of your identity provider (not required with WCD)
	},
	Headers: nil,
}
client, err := weaviate.NewClient(cfg)
if err != nil{
	fmt.Println(err)
}
```

#### Client Credentials flow

This OIDC flow uses a `client secret` to obtain required tokens for authentication.

This flow is recommended for server-to-server communication without end-users and authenticates an application to Weaviate. This authentication flow is typically regarded as more secure than the resource owner password flow:  a compromised client secret can be simply revoked, whereas a compromised password may have larger implications beyond the scope of breached authentication.

To authenticate a client secret most identity providers require a _scope_ to be specified. This _scope_ depends on the configuration of the identity providers, so we ask you to refer to the identity provider's documentation.

Most providers do not include a refresh token in their response so `client secret` is saved in the client to obtain a new `access token` on expiration of the existing one.

```go
cfg := weaviate.Config{
	Host:   "weaviate.example.com",
	Scheme: "http",
	AuthConfig: auth.ClientCredentials{
		ClientSecret: "your_client_secret",
		Scopes:       []string{"scope1 scope2"}, // optional, depends on the configuration of your identity provider (not required with WCD)
	},
	Headers: nil,
}
client, err := weaviate.NewClient(cfg)
if err != nil{
	fmt.Println(err)
}
```

#### Refresh Token flow

Any other OIDC authentication method can be used to obtain tokens directly from your identity provider, for example by using this step-by-step guide of the [hybrid flow](../how-to-configure-weaviate/authz-authn.md).

If no `refresh token` is provided, there is no possibility to obtain a new `access token` and the client becomes unauthenticated after expiration.

```go
cfg := weaviate.Config{
	Host:   "weaviate.example.com",
	Scheme: "http",
	AuthConfig: auth.BearerToken{
		AccessToken:  "some token",
		RefreshToken: "other token",
		ExpiresIn:    uint(500), // in seconds
	},
	Headers: nil,
}
client, err := weaviate.NewClient(cfg)
if err != nil{
	fmt.Println(err)
}
```

## Custom headers

You can pass custom headers to the client, which are added at initialization:

```go
cfg := weaviate.Config{
  Host:"weaviate.example.com",
  Scheme: "http",
  AuthConfig: nil,
  Headers: map[string]string{
    "header_key1": "value",
    "header_key2": "otherValue",
    },
}
client, err := weaviate.NewClient(cfg)
if err != nil{
  fmt.Println(err)
}
```

## References

All [RESTful endpoints](/weaviate/api/rest) and [GraphQL functions](../apis/index.md) references covered by the Go client, and explained on those reference pages in the code blocks.

## Design

### Builder pattern

The Go client functions are designed with a 'Builder pattern'. A pattern is used to build complex query objects. This means that a function (for example to retrieve data from Weaviate with a request similar to a RESTful GET request, or a more complex GraphQL query) is built with single objects to reduce complexity. Some builder objects are optional, others are required to perform specific functions. All is documented on the [RESTful API reference pages](/weaviate/api/rest) and the [GraphQL reference pages](../apis/index.md).

The code snippet above shows a simple query similar to `RESTful GET /v1/schema`. The client is initiated by requiring the package and connecting to the running instance. Then, a query is constructed by getting the `.Schema` with `.Getter()`. The query will be sent with the `.Go()` function, this object is thus required for every function you want to build and execute.

## Migration Guides

### From `v2` to `v4`

#### Unnecessary `.Objects()` removed from `GraphQL.Get()`

Before:

```go
client.GraphQL().Get().Objects().WithClassName...
```

After:

```go
client.GraphQL().Get().WithClassName
```

#### GraphQL `Get().WithNearVector()` uses a builder pattern

In `v2` specifying a `nearVector` argument to `client.GraphQL().Get()` required passing a string. As a result the user had to know the structure of the GraphQL API. `v4` fixes this by using a builder pattern like so:

Before:

```go
client.GraphQL().Get().
  WithNearVector("{vector: [0.1, -0.2, 0.3]}")...
```

After

```go
nearVector := client.GraphQL().NearVectorArgBuilder().
  WithVector([]float32{0.1, -0.2, 0.3})

client.GraphQL().Get().
  WithNearVector(nearVector)...
```

#### All `where` filters use the same builder

In `v2` filters were sometimes specified as strings, sometimes in a structured way. `v4` unifies this and makes sure that you can always use the same builder pattern.

##### GraphQL Get

Before:

```go
// using filter encoded as string
where := `where :{
  operator: Equal
  path: ["id"]
  valueText: "5b6a08ba-1d46-43aa-89cc-8b070790c6f2"
}`

client.GraphQL().Get().
  Objects().
  WithWhere(where)...
```

```go
// using deprecated graphql arg builder
where := client.GraphQL().WhereArgBuilder().
  WithOperator(graphql.Equal).
  WithPath([]string{"id"}).
  WithValueString("5b6a08ba-1d46-43aa-89cc-8b070790c6f2")

client.GraphQL().Get().
  Objects().
  WithWhere(where)...
```

After:

```go
where := filters.Where().
  WithPath([]string{"id"}).
  WithOperator(filters.Equal).
  WithValueString("5b6a08ba-1d46-43aa-89cc-8b070790c6f2")

client.GraphQL().Get().
  WithWhere(where)...
```

##### GraphQL Aggregate

Before:

```go
where := client.GraphQL().WhereArgBuilder().
  WithPath([]string{"id"}).
  WithOperator(graphql.Equal).
  WithValueString("5b6a08ba-1d46-43aa-89cc-8b070790c6f2")

client.GraphQL().Aggregate().
  Objects().
  WithWhere(where)...
```

After:

```go
where := filters.Where().
  WithPath([]string{"id"}).
  WithOperator(filters.Equal).
  WithValueString("5b6a08ba-1d46-43aa-89cc-8b070790c6f2")

client.GraphQL().Aggregate().
  WithWhere(where)...
```

##### Classification

Before:

```go
valueInt := 100
valueText  := "Government"

sourceWhere := &models.WhereFilter{
  ValueInt: &valueInt,
  Operator: string(graphql.GreaterThan),
  Path:     []string{"wordCount"},
}

targetWhere := &models.WhereFilter{
  ValueString: &valueText,
  Operator:    string(graphql.NotEqual),
  Path:        []string{"name"},
}

client.Classifications().Scheduler().
  WithSourceWhereFilter(sourceWhere).
  WithTargetWhereFilter(targetWhere)...
```

After:

```go
sourceWhere := filters.Where().
  WithOperator(filters.GreaterThan).
  WithPath([]string{"wordCount"}).
  WithValueInt(100)

targetWhere := filters.Where().
  WithOperator(filters.NotEqual).
  WithPath([]string{"name"}).
  WithValueString("Government")

client.Classifications().Scheduler().
  WithSourceWhereFilter(sourceWhere).
  WithTargetWhereFilter(targetWhere)...
```

#### GraphQL `Get().WithFields()`

In `v2` `.WithFields()` took a GraphQL string that required knowledge of how GraphQL fields are structured. Now this can be done with a variadic function. E.g:

Before:

```go
client.GraphQL.Get().WithClassName("MyClass").WithFields("name price age")...
```

After:

```go
client.GraphQL.Get().WithClassName("MyClass").
  WithFields(graphql.Field{Name: "name"},graphql.Field{Name: "price"}, graphql.Field{Name: "age"})...
```

#### Graphql `Get().WithGroup()`

In `v2` `.WithFields()` took a GraphQL string that required knowledge of how GraphQL fields are structured. Now this can be done with a builder. E.g:

Before:

```go
client.GraphQL.Get().WithClassName("MyClass")
  .WithGroup("{type:merge force:1.0}")
```

After:

```go
group := client.GraphQL().GroupArgBuilder()
  .WithType(graphql.Merge).WithForce(1.0)

client.GraphQL.Get().WithClassName("MyClass").WithGroup(group)
```

#### Graphql `Data().Validator()` property renamed

In `v2` the naming of the method to specify the Schema was inconsistent with other places in the client. This has been fixed in `v4`. Rename according to the following:

Before:

```go
client.Data().Validator().WithSchema(properties)
```

After:

```go
client.Data().Validator().WithProperties(properties)
```

## Releases

Go to the [GitHub releases page](https://github.com/weaviate/weaviate-go-client/releases) to see the history of the Go client library releases.

::::accordion{title="Click here for a table of Weaviate and corresponding client versions"}
This table lists recent Weaviate Database versions and corresponding client library versions.

| Weaviate Database <br>(\[GitHub]\[cWeaviate])                       | First <br>release date |                          Python <br>(\[GitHub]\[cPython])                         |           TypeScript/ <br>JavaScript <br>(\[GitHub]\[cTypeScript])           |                           Go <br>(\[GitHub]\[cGo])                          |                     Java <br>(\[GitHub]\[cJava])                    |                      C# <br>(\[GitHub]\[cCSharp])                     |
| :------------------------------------------------------------------ | :--------------------- | :-------------------------------------------------------------------------------: | :--------------------------------------------------------------------------: | :-------------------------------------------------------------------------: | :-----------------------------------------------------------------: | :-------------------------------------------------------------------: |
| [1.39.x](https://github.com/weaviate/weaviate/releases/tag/v1.39.0) | 2026-08-04             | [4.23.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.23.0) |                                       -                                      |                                      -                                      | [6.3.1](https://github.com/weaviate/java-client/releases/tag/6.3.1) | [1.2.0](https://github.com/weaviate/csharp-client/releases/tag/1.2.0) |
| [1.38.x](https://github.com/weaviate/weaviate/releases/tag/v1.38.0) | 2026-06-05             | [4.22.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.22.0) | [3.14.x](https://github.com/weaviate/typescript-client/releases/tag/v3.14.0) |                                      -                                      | [6.3.0](https://github.com/weaviate/java-client/releases/tag/6.3.0) | [1.2.0](https://github.com/weaviate/csharp-client/releases/tag/1.2.0) |
| [1.37.x](https://github.com/weaviate/weaviate/releases/tag/v1.37.0) | 2026-04-16             | [4.21.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.21.0) | [3.13.x](https://github.com/weaviate/typescript-client/releases/tag/v3.13.0) | [5.7.3](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.7.3) | [6.2.0](https://github.com/weaviate/java-client/releases/tag/6.2.0) | [1.1.1](https://github.com/weaviate/csharp-client/releases/tag/1.1.1) |
| [1.36.x](https://github.com/weaviate/weaviate/releases/tag/v1.36.0) | 2026-02-24             | [4.20.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.20.0) | [3.12.x](https://github.com/weaviate/typescript-client/releases/tag/v3.12.0) | [5.7.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.7.0) | [6.1.0](https://github.com/weaviate/java-client/releases/tag/6.1.0) | [1.0.1](https://github.com/weaviate/csharp-client/releases/tag/1.0.1) |
| [1.35.x](https://github.com/weaviate/weaviate/releases/tag/v1.35.0) | 2025-12-17             | [4.19.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.19.0) | [3.11.x](https://github.com/weaviate/typescript-client/releases/tag/v3.11.0) | [5.6.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.6.0) | [6.0.0](https://github.com/weaviate/java-client/releases/tag/6.0.0) | [1.0.0](https://github.com/weaviate/csharp-client/releases/tag/1.0.0) |

:::accordion{title="Older releases"}
| Weaviate Database <br>([GitHub][cWeaviate])                         | First <br>release date |                           Python <br>([GitHub][cPython])                          |            TypeScript/ <br>JavaScript <br>([GitHub][cTypeScript])            |                             Go <br>([GitHub][cGo])                            |                                                         Java <br>([GitHub][cJava])                                                         |
| :------------------------------------------------------------------ | :--------------------- | :-------------------------------------------------------------------------------: | :--------------------------------------------------------------------------: | :---------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: |
| [1.34.x](https://github.com/weaviate/weaviate/releases/tag/v1.34.0) | 2025-11-05             | [4.18.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.18.0) | [3.10.x](https://github.com/weaviate/typescript-client/releases/tag/v3.10.0) |  [5.6.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.6.0)  |                                     [6.0.0](https://github.com/weaviate/java-client/releases/tag/6.0.0)                                    |
| [1.33.x](https://github.com/weaviate/weaviate/releases/tag/v1.33.0) | 2025-09-25             | [4.17.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.17.0) |  [3.9.x](https://github.com/weaviate/typescript-client/releases/tag/v3.9.0)  |  [5.5.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.5.0)  |                                     [5.5.x](https://github.com/weaviate/java-client/releases/tag/5.5.0)                                    |
| [1.32.x](https://github.com/weaviate/weaviate/releases/tag/v1.32.0) | 2025-07-14             | [4.16.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.16.0) |  [3.8.x](https://github.com/weaviate/typescript-client/releases/tag/v3.8.0)  |  [5.3.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.3.0)  |                                     [5.4.x](https://github.com/weaviate/java-client/releases/tag/5.4.0)                                    |
| [1.31.x](https://github.com/weaviate/weaviate/releases/tag/v1.31.0) | 2025-05-30             | [4.15.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.15.0) |  [3.6.x](https://github.com/weaviate/typescript-client/releases/tag/v3.6.0)  |  [5.2.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.2.0)  |                                     [5.3.x](https://github.com/weaviate/java-client/releases/tag/5.3.0)                                    |
| [1.30.x](https://github.com/weaviate/weaviate/releases/tag/v1.30.0) | 2025-04-03             | [4.12.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.12.0) |  [3.5.x](https://github.com/weaviate/typescript-client/releases/tag/v3.5.0)  |  [5.1.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.1.0)  |                                     [5.2.x](https://github.com/weaviate/java-client/releases/tag/5.2.0)                                    |
| [1.29.x](https://github.com/weaviate/weaviate/releases/tag/v1.29.0) | 2025-02-17             | [4.11.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.11.0) |  [3.4.x](https://github.com/weaviate/typescript-client/releases/tag/v3.4.0)  |  [5.0.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v5.0.0)  |                                     [5.1.x](https://github.com/weaviate/java-client/releases/tag/5.1.0)                                    |
| [1.28.x](https://github.com/weaviate/weaviate/releases/tag/v1.28.0) | 2024-12-11             | [4.10.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.10.0) |  [3.3.x](https://github.com/weaviate/typescript-client/releases/tag/v3.3.0)  | [4.16.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v4.16.0) |                                     [5.0.x](https://github.com/weaviate/java-client/releases/tag/5.0.0)                                    |
| [1.27.x](https://github.com/weaviate/weaviate/releases/tag/v1.27.0) | 2024-10-16             |  [4.9.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.9.0)  |  [3.2.x](https://github.com/weaviate/typescript-client/releases/tag/v3.2.0)  | [4.16.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v4.16.0) | [5.0.x](https://github.com/weaviate/java-client/releases/tag/5.0.0)<br>[4.9.x](https://github.com/weaviate/java-client/releases/tag/4.9.0) |
| [1.26.x](https://github.com/weaviate/weaviate/releases/tag/v1.26.0) | 2024-07-22             |  [4.7.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.7.0)  |  [3.1.x](https://github.com/weaviate/typescript-client/releases/tag/v3.1.0)  | [4.15.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v4.15.0) |                                     [4.8.x](https://github.com/weaviate/java-client/releases/tag/4.8.0)                                    |
| [1.25.x](https://github.com/weaviate/weaviate/releases/tag/v1.25.0) | 2024-05-10             |  [4.6.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.6.0)  |  [2.1.x](https://github.com/weaviate/typescript-client/releases/tag/v2.1.0)  | [4.13.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v4.13.0) |                                     [4.6.x](https://github.com/weaviate/java-client/releases/tag/4.6.0)                                    |
| [1.24.x](https://github.com/weaviate/weaviate/releases/tag/v1.24.0) | 2024-02-27             |  [4.5.x](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.5.0)  |  [2.0.x](https://github.com/weaviate/typescript-client/releases/tag/v2.0.0)  | [4.10.x](https://github.com/weaviate/weaviate-go-client/releases/tag/v4.10.0) |                                     [4.4.x](https://github.com/weaviate/java-client/releases/tag/4.4.0)                                    |
| 1.23.x                                                              | 2023-12-18             |                                       3.26.x                                      |                                     1.5.x                                    |                                     4.10.x                                    |                                                                    4.4.x                                                                   |
| 1.22.x                                                              | 2023-10-27             |                                       3.25.x                                      |                                     1.5.x                                    |                                     4.10.x                                    |                                                                    4.3.x                                                                   |
| 1.21.x                                                              | 2023-08-17             |                                       3.22.x                                      |                                     1.4.x                                    |                                     4.9.x                                     |                                                                    4.2.x                                                                   |
| 1.20.x                                                              | 2023-07-06             |                                       3.22.x                                      |                                     1.1.x                                    |                                     4.7.x                                     |                                                                    4.2.x                                                                   |
| 1.19.x                                                              | 2023-05-04             |                                       3.17.x                                      |                   1.1.x[:sup[1]](#typescript-client-change)                  |                                     4.7.x                                     |                                                                    4.0.x                                                                   |
| 1.18.x                                                              | 2023-03-07             |                                       3.13.x                                      |                                    2.14.x                                    |                                     4.6.x                                     |                                                                    3.6.x                                                                   |
| 1.17.x                                                              | 2022-12-20             |                                       3.9.x                                       |                                    2.14.x                                    |                                     4.5.x                                     |                                                                    3.5.x                                                                   |
| 1.16.x                                                              | 2022-10-31             |                                       3.8.x                                       |                                    2.13.x                                    |                                     4.4.x                                     |                                                                    3.4.x                                                                   |
| 1.15.x                                                              | 2022-09-07             |                                       3.6.x                                       |                                    2.12.x                                    |                                     4.3.x                                     |                                                                    3.3.x                                                                   |
| 1.14.x                                                              | 2022-07-07             |                                       3.6.x                                       |                                    2.11.x                                    |                                     4.2.x                                     |                                                                    3.2.x                                                                   |
| 1.13.x                                                              | 2022-05-03             |                                       3.4.x                                       |                                     2.9.x                                    |                                     4.0.x                                     |                                                                    2.4.x                                                                   |
| 1.12.x                                                              | 2022-04-05             |                                       3.4.x                                       |                                     2.8.x                                    |                                     3.0.x                                     |                                                                    2.3.x                                                                   |
| 1.11.x                                                              | 2022-03-14             |                                       3.2.x                                       |                                     2.7.x                                    |                                     2.6.x                                     |                                                                    2.3.x                                                                   |
| 1.10.x                                                              | 2022-01-27             |                                       3.1.x                                       |                                     2.5.x                                    |                                     2.4.x                                     |                                                                    2.1.x                                                                   |
| 1.9.x                                                               | 2021-12-10             |                                       3.1.x                                       |                                     2.4.x                                    |                                     2.4.x                                     |                                                                    2.1.x                                                                   |
| 1.8.x                                                               | 2021-11-30             |                                       3.1.x                                       |                                     2.4.x                                    |                                     2.3.x                                     |                                                                    1.1.x                                                                   |
| 1.7.x                                                               | 2021-09-01             |                                       3.1.x                                       |                                     2.4.x                                    |                                     2.3.x                                     |                                                                    1.1.x                                                                   |
| 1.6.x                                                               | 2021-08-11             |                                       2.4.x                                       |                                     2.3.x                                    |                                     2.2.x                                     |                                                                    1.0.x                                                                   |
| 1.5.x                                                               | 2021-07-13             |                                       2.2.x                                       |                                     2.1.x                                    |                                     2.1.x                                     |                                                                    1.0.x                                                                   |
| 1.4.x                                                               | 2021-06-09             |                                       2.2.x                                       |                                     2.1.x                                    |                                     2.1.x                                     |                                                                    1.0.x                                                                   |
| 1.3.x                                                               | 2021-04-23             |                                       2.2.x                                       |                                     2.1.x                                    |                                     2.1.x                                     |                                                                    1.0.x                                                                   |
| 1.2.x                                                               | 2021-03-15             |                                       2.2.x                                       |                                     2.0.x                                    |                                     1.1.x                                     |                                                                      -                                                                     |
| 1.1.x                                                               | 2021-02-10             |                                       2.1.x                                       |                                       -                                      |                                       -                                       |                                                                      -                                                                     |
| 1.0.x                                                               | 2021-01-14             |                                       2.0.x                                       |                                       -                                      |                                       -                                       |                                                                      -                                                                     |

#### TypeScript client change

The [TypeScript client](https://github.com/weaviate/typescript-client) replaced the [JavaScript client](https://github.com/weaviate/weaviate-javascript-client) on 2023-03-17.

[comment]: # " repo links "
[cWeaviate]: https://github.com/weaviate/weaviate/releases
[cPython]: https://github.com/weaviate/weaviate-python-client/releases
[cTypeScript]: https://github.com/weaviate/typescript-client/releases
[cGo]: https://github.com/weaviate/weaviate-go-client/releases
[cJava]: https://github.com/weaviate/java-client/releases
[cCSharp]: https://github.com/weaviate/csharp-client/releases
:::
::::

## Questions and feedback

Have a question or feedback? Here's how to reach us.

::::card-grid
:::card{title="Community Forum" href="https://forum.weaviate.io/c/support" icon="messages-square"}
Ask questions and connect with other developers on our **Community forum**.
:::

:::card{title="Support" href="/guides/support-overview" icon="life-buoy"}
Weaviate Cloud user or customer? Find the right channel on the **Support page**.
:::
::::

## Related pages

- [Agents](./agents-index.md)
- [AI-assisted Weaviate code generation](./ai-assisted-vibe-coding-index.md)
- [APIs](./apis-index.md)
- [Authorization and authentication](./authorization-and-authentication-index.md)
- [Benchmarks](./benchmarks-index.md)
- [Best practices](./best-practices-index.md)
- [Client libraries](./clients-index.md)
- [Client Libraries / SDKs](./client-libraries-index.md)
- [Cloud](./cloud-index.md)
- [Cloud account management](./cloud-account-management-index.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
