---
title: "Connect to Weaviate Cloud"
description: "Multiple connection options and methods for accessing your Weaviate Cloud cluster instances."
url: https://docs.weaviate.io/cloud/manage-clusters/connect
---

# Connect to Weaviate Cloud

[Weaviate Cloud (WCD)](https://docs.weaviate.io/go/console?utm_content=cloud) offers multiple options on how to connect to your cluster:

- **[Connect with APIs](https://docs.weaviate.io/cloud/manage-clusters/connect#connect-with-an-api-programmatically)**:

  - Use [client libraries](https://docs.weaviate.io/weaviate/client-libraries) to connect to a Weaviate Cloud instance.
  - Use a tool, such as cURL, to connect to the [REST API](https://docs.weaviate.io/weaviate/api/rest).

- **[Open the Weaviate Cloud console](https://docs.weaviate.io/cloud/manage-clusters/connect#open-the-weaviate-cloud-console)**:

  - Login to manage your clusters, users, and billing.
  - Use built-in tools to work with your data.

## Connect with an API programmatically

The guide below applies to clusters that have [RBAC (Role-Based Access Control)](https://docs.weaviate.io/weaviate/configuration/rbac) enabled. New clusters with Weaviate version `v1.30` (or later) have RBAC enabled by default.

### Retrieve your API key and REST endpoint

When connecting to a Weaviate Cloud cluster, you need an API key and the REST endpoint URL for authentication.

If you created the cluster with the [wcloud CLI](https://docs.weaviate.io/cloud/manage-clusters/cli), it printed the API key and REST endpoint when the cluster became ready. The API key was shown only once.

If you don't have an existing API key, you'll need to create one. Follow these steps to find the API keys section and create a new key if necessary:

[Embedded content](https://app.guideflow.com/embed/6kwn8ldczk)



**Steps to create a new API key**

1. Open the [Weaviate Cloud console](https://docs.weaviate.io/go/console?utm_content=cloud) and [select your cluster](https://docs.weaviate.io/cloud/manage-clusters/status#select-a-cluster).
2. Navigate to the `API Keys` section of the cluster `Dashboard`. A new cluster has no API keys.
3. Click the `+ New key` button.
4. In the `Create API Key` form, provide a descriptive name for your key.
5. Choose the role for this API key. You can either select an existing role like `admin` or `viewer`, or [create a new role](https://docs.weaviate.io/cloud/manage-clusters/authorization) with specific permissions.
6. Click the `Create key` button.
7. **Important:** This is the only time your API key will be displayed. Make sure to copy it or download it and store it in a secure location immediately after creation. You will not be able to retrieve the full key again.

**Steps to retrieve your REST Endpoint**

1. On the cluster `Dashboard` or within the API Keys section, find the `REST Endpoint` URL.
2. Copy the `REST Endpoint` URL and store it securely.

> [!NOTE]
>
> **REST Endpoint vs gRPC Endpoint**
>
> When using an official Weaviate [client library](https://docs.weaviate.io/weaviate/client-libraries), you need to authenticate using the `REST Endpoint` and your API key. The client will infer the gRPC endpoint automatically and use the more performant gRPC protocol when available.
>
> To reach the [gRPC-Web interface](https://docs.weaviate.io/weaviate/api/grpc#grpc-web), use the `REST Endpoint` URL, not the `gRPC Endpoint` URL, because gRPC-Web is served on the REST port.

### Environment variables

Do not hard-code your API key and Weaviate URL in your client code. Consider passing them as environment variables or using a similar secure coding technique.

```bash
export WEAVIATE_URL="replaceThisWithYourRESTEndpointURL"
export WEAVIATE_API_KEY="replaceThisWithYourAPIKey"
```

### Connection example

To connect, use the `REST Endpoint` URL and the `Admin` API key:

**Python**

quickstart\_check\_readiness.py

```py
import weaviate
from weaviate.classes.init import Auth
import os

# Best practice: store your credentials in environment variables
weaviate_url = os.environ["WEAVIATE_URL"]
weaviate_api_key = os.environ["WEAVIATE_API_KEY"]

client = weaviate.connect_to_weaviate_cloud(
    cluster_url=weaviate_url,
    auth_credentials=Auth.api_key(weaviate_api_key),
)

print(client.is_ready())  # Should print: `True`

client.close()  # Free up resources
```

**JavaScript/TypeScript**

quickstart\_check\_readiness.ts

```ts
import weaviate, { WeaviateClient } from '@weaviate/node';

// Best practice: store your credentials in environment variables
const weaviateUrl = process.env.WEAVIATE_URL as string;
const weaviateApiKey = process.env.WEAVIATE_API_KEY as string;

const client: WeaviateClient = await weaviate.connectToWeaviateCloud(
  weaviateUrl, // Replace with your Weaviate Cloud URL
  {
    authCredentials: new weaviate.ApiKey(weaviateApiKey), // Replace with your Weaviate Cloud API key
  }
);

var clientReadiness = await client.isReady();
console.log(clientReadiness); // Should return `true`

client.close(); // Close the client connection
```

**Go (v5)**

quickstart/1\_check\_readiness/main.go

```go
// Set these environment variables
// WEAVIATE_HOSTNAME            your Weaviate instance hostname
// WEAVIATE_API_KEY          your Weaviate instance API key

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/weaviate/weaviate-go-client/v5/weaviate"
    "github.com/weaviate/weaviate-go-client/v5/weaviate/auth"
)

func main() {
    cfg := weaviate.Config{
        Host:       os.Getenv("WEAVIATE_HOSTNAME"),
        Scheme:     "https",
        AuthConfig: auth.ApiKey{Value: os.Getenv("WEAVIATE_API_KEY")},
    }

    client, err := weaviate.NewClient(cfg)
    if err != nil {
        fmt.Println(err)
    }

    // Check the connection
    ready, err := client.Misc().ReadyChecker().Do(context.Background())
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v", ready)
}
```

> [!WARNING]
>
> This client uses the `hostname` parameter (without the `https` scheme) instead of a complete `URL`.

**Java**

```java
// Best practice: store your credentials in environment variables
String weaviateUrl = System.getenv("WEAVIATE_URL");
String weaviateApiKey = System.getenv("WEAVIATE_API_KEY");

WeaviateClient client = WeaviateClient.connectToWeaviateCloud(
    weaviateUrl, // Replace with your Weaviate Cloud URL
    weaviateApiKey // Replace with your Weaviate Cloud key
);
System.out.println(client.isReady()); // Should print: `True`

client.close(); // Free up resources
```

**C#**

```csharp
// Best practice: store your credentials in environment variables
string weaviateUrl = Environment.GetEnvironmentVariable("WEAVIATE_URL");
string weaviateApiKey = Environment.GetEnvironmentVariable("WEAVIATE_API_KEY");

WeaviateClient client = await Connect.Cloud(weaviateUrl, weaviateApiKey);

// GetMeta returns server info. A successful call indicates readiness.
var meta = await client.IsReady();
Console.WriteLine(meta);
```

> [!WARNING]
>
> This client uses the `hostname` parameter (without the `https` scheme) instead of a complete `URL`.

**Curl**

```bash
# Best practice: store your credentials in environment variables
# export WEAVIATE_URL="YOUR_INSTANCE_URL"  # Your Weaviate instance URL
# export WEAVIATE_API_KEY="YOUR_API_KEY"   # Your Weaviate instance API key

curl -w "\nResponse code: %{http_code}\n" \
  -H "Authorization: Bearer $WEAVIATE_API_KEY" \
  $WEAVIATE_URL/v1/.well-known/ready

# You should see "Response code: 200" if the instance is ready
```

## Open the Weaviate Cloud console

The Weaviate Cloud console uses your email address and password for authentication. You create the password when you create your Weaviate Cloud account.

To connect to the console, follow these steps:

1. Open the [Weaviate Cloud login page](https://docs.weaviate.io/go/console?utm_content=cloud) in a browser.
2. Enter your email address and click `Continue`.
3. Enter your password and click `Login`.

Once you are logged in, the console has built-in tools for working with your data:

- The [Explorer tool](https://docs.weaviate.io/cloud/tools/explorer-tool) browses a collection and runs keyword, semantic, hybrid, and aggregation searches, without writing a query.
- The [Collections tool](https://docs.weaviate.io/cloud/tools/collections-tool) creates, configures, and deletes collections.
- The [Query Agent](https://docs.weaviate.io/cloud/tools/query-agent) answers natural language questions about your data.

## Troubleshooting

This section has solutions for some common problems. For additional help, [contact support](https://docs.weaviate.io/cloud/manage-clusters/connect#support).

### Reset your password

To reset your Weaviate Cloud password, follow these steps:

1. Go to the Weaviate Cloud [login page](https://docs.weaviate.io/go/console?utm_content=cloud).
2. Click the login button.
3. Click `Forgot Password`.
4. Check your email account for a password reset email from Weaviate Cloud.
5. Click the link and follow the instructions to reset your password. The link is only valid for five minutes.

### Connection timeouts

The new Python client uses the gRPC protocol to connect to Weaviate Cloud. The gRPC protocol improves query performance, but the protocol is sensitive to network speeds. If you run into timeout errors, increase the connection timeout value in your connection code.

**Python**

```py
from weaviate.classes.init import AdditionalConfig, Timeout, Auth
import weaviate

# Set these environment variables
URL = os.getenv("WEAVIATE_URL")
APIKEY = os.getenv("WEAVIATE_API_KEY")

# Connect to Weaviate Cloud
client = weaviate.connect_to_weaviate_cloud(
    cluster_url=URL,
    auth_credentials=Auth.api_key(APIKEY),
    additional_config=AdditionalConfig(timeout=Timeout(init=10)),
)

# Check connection
client.is_ready()
```

Alternatively, leave the default timeout values, but skip the initial connection checks.

**Python**

```py
import weaviate
from weaviate.classes.init import Auth

# Set these environment variables
URL = os.getenv("WEAVIATE_URL")
APIKEY = os.getenv("WEAVIATE_API_KEY")

# Connect to Weaviate Cloud
client = weaviate.connect_to_weaviate_cloud(
    cluster_url=URL,
    auth_credentials=Auth.api_key(APIKEY),
    skip_init_checks=True,
)

# Check connection
client.is_ready()
```

### gRPC health check error

**Problem**: gRPC returns a health check error after you update a Shared Cloud cluster.

```text
weaviate.exceptions.WeaviateGRPCUnavailableError: gRPC health check could not be completed.
```

**Solution**: Verify the cluster URL is correct and update the URL if needed.

When a Shared Cloud cluster is updated, the cluster URL may change slightly. Weaviate Cloud still routes the old URL, so some connections continue to work. However, the new gRPC URL and the old HTTP URL are different, so connections that require gRPC fail.

To check the URLs, open the Weaviate Cloud console and check the cluster `Dashboard`. If you prefix Cluster URL with `grpc-`, the Cluster URL and the Cluster gRPC URL should match. Compare the Cluster URL with the connection URL in your application. The old URL and the new URL are similar, but the new one may have an extra subdomain such as `.c0.region`. If the URLs are different, update your application's connection code to use the new Cluster URL.

## More resources

To authenticate with a Weaviate client library, see the following:

- [Python](https://docs.weaviate.io/weaviate/client-libraries/python)
- [TypeScript/JavaScript](https://docs.weaviate.io/weaviate/client-libraries/typescript)
- [Go](https://docs.weaviate.io/weaviate/client-libraries/go)
- [Java](https://docs.weaviate.io/weaviate/client-libraries/java)
- [C#](https://docs.weaviate.io/weaviate/client-libraries/csharp)

## Support

If you use **Weaviate Cloud** (Database cluster(s) or Weaviate product in the cloud) or have a self-hosted support package, open a ticket in the [Support Portal](https://support.weaviate.io) or email [Weaviate support](mailto:support@weaviate.io) directly. To add a [support plan](https://weaviate.io/support-plans), contact [Weaviate sales](https://weaviate.io/pricing#contact-sales).

Use the **Support Portal** for direct help from the Weaviate team: open and track tickets, and we'll respond in line with your support plan. The **Community Forum** is open to everyone, and a great place to ask questions, get help with your cluster, and connect with other developers. For all the ways to get help, see the [Support overview](https://docs.weaviate.io/support).

[Weaviate Support Portal](https://support.weaviate.io): Direct help from the Weaviate team for Weaviate Cloud. Open and track tickets in the Support Portal.

[Weaviate Community Forum](https://forum.weaviate.io/c/support): Ask questions, share ideas, and connect with other developers on our Community forum.
