How to Create Weaviate Clusterspublic

Last verified 11 Sep 2026

DigitalOcean Managed Weaviate is a fully managed Weaviate vector database for retrieval-augmented generation, semantic search, and similarity-based AI workloads. Clusters are provisioned, secured, backed up, and patched by DigitalOcean.

You can create a Weaviate cluster using the API or from the Control Panel.

We currently support Weaviate version 1.37.4. To view available plans and regions for new clusters, use the List plans endpoint.

Create a Weaviate Cluster Using the Control Panel

To create a Weaviate database cluster, go to the Vector Databases page and click Create Vector Database. Or click Create at the top of any page and choose Vector Database from the Data Services section of the menu.

Choose a Database Engine

On the Create a Vector Database page, in the Choose a database engine section, select Weaviate. The database engine can’t be changed after creation.

The database engine selection portion of the vector database create page

Choose a Database Plan

In the Choose a database plan section, select an option:

Size vCPU RAM Disk Typical use
Small 1 vCPU 2 GB 3 GiB Development, testing, under 100k vectors
Medium 2 vCPU 4 GB 11 GiB Production RAG, moderate data volumes
Large 8 vCPU 32 GB 230 GiB Large corpora, latency-sensitive workloads

Each option shows its combined monthly cost and included resources, such as vCPUs and memory.

After creation, you can increase your cluster’s plan size at any time.

Choose a Datacenter Region

Under Choose a datacenter region, select a datacenter.

For best performance, choose a datacenter close to the resources that connect to the cluster. Resources in the same datacenter share a VPC network, which reduces latency and keeps traffic off the public internet.

Finalize and Create

In the Finalize and Create section, enter a unique name for the cluster and select a project to add it to. After creation, you can move the cluster to another project, but its name can’t be changed.

Optionally, add tags to organize your cluster for billing and reporting.

The Finalize and Create section of the Create a vector database page

When finished, click Create Vector Database.

After provisioning, you can connect to your cluster.

Create a Cluster Using the API

The examples below use https://api.digitalocean.com/v2/vector-databases. Authenticate each request with a DigitalOcean API token in the request headers.

Set environment variables before you run the examples:

export DIGITALOCEAN_TOKEN="<your-do-api-token>"
export PROJECT_ID="<your-project-uuid>"

List Available Plans

Send a GET request to the plans endpoint to confirm sizing options and the regions enabled for your account:

curl -X GET "https://api.digitalocean.com/v2/vector-databases/plans" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -H "Content-Type: application/json"

The response lists each plan along with its vcpu, usable_memory_mib, disk_mib, pricing, and enabled_regions array.

{
  "plans": [
    {
      "size": "small",
      "vcpu": 1,
      "disk_mib": 3072,
      "usable_memory_mib": 2048,
      "deprecated": false,
      "enabled_regions": ["ams3", "atl1", "ric1", "tor1"]
    }
  ]
}

Create a Cluster

Send a POST request with the cluster name, region, plan size, and project ID:

curl -X POST "https://api.digitalocean.com/v2/vector-databases" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-vector-db",
    "region": "tor1",
    "size": "small",
    "project_id": "'"$PROJECT_ID"'",
    "tags": ["production", "ml-team"]
  }'
Parameter Required Description
name Yes 3-30 characters. Lowercase letters, numbers, and hyphens. Must start with a letter and not begin or end with a hyphen, and cannot contain consecutive hyphens. Must be unique within your account.
region Yes A region slug returned by the plans endpoint, for example tor1.
size Yes small, medium, or large.
project_id Yes UUID of the project that owns the cluster.
tags No Array of strings used to organize resources for billing and reporting.

A successful response returns the cluster object with status: "pending" and a null endpoints field. Provisioning typically completes in about 5 minutes.

{
  "vector_db": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "my-vector-db",
    "region": "tor1",
    "status": "pending",
    "size": "small",
    "config": {
      "default_quantization": "rq",
      "enable_auto_schema": true
    },
    "endpoints": null,
    "tags": ["production", "ml-team"]
  }
}

The status field moves through this lifecycle:

  • pending: Request received, queued for provisioning.
  • creating: Cluster is being provisioned.
  • active: Ready to accept connections.
  • errored: Provisioning failed. Open a support ticket with the ID.
  • deleting: Cluster is being torn down.

Wait for the Cluster to Become Active

Poll the cluster until status is active and endpoints contains the HTTP and gRPC hosts:

curl -X GET "https://api.digitalocean.com/v2/vector-databases/$CLUSTER_ID" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN"
{
  "vector_db": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "active",
    "endpoints": {
      "http": "https://my-vector-db-abc123.weaviate.digitalocean.com",
      "grpc": "my-vector-db-abc123-grpc.weaviate.digitalocean.com:443"
    }
  }
}

Always read the hostname from the endpoints object instead of constructing it. Hostnames aren’t stable across cluster recreation.

After the cluster is active, retrieve credentials and connect.

For the full API reference, see Vector Databases API.

We can't find any results for your search.

Try using different keywords or simplifying your search terms.