DigitalOcean Managed Weaviateprivate
Validated on 28 May 2026 • Last edited on 28 May 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.
DigitalOcean Managed Weaviate is a fully managed offering of the Weaviate open-source vector database.
Overview
Pricing
Managed Weaviate uses fixed SKUs with compute and storage included in the monthly price. During the private preview, clusters are not billed.
| Size | vCPU | Usable memory | Disk | Typical use |
|---|---|---|---|---|
| Small | 1 | 2 GB | 3 GB | Development, testing, under 100k vectors |
| Medium | 2 | 4 GB | 11 GB | Production RAG, moderate data volumes |
| Large | 8 | 32 GB | 230 GB | Large corpora, latency-sensitive workloads |
Storage capacity includes both vectors and inverted indexes.
All plans are highly available. Begin on the small plan, validate your workload, and resize up when you have measured demand.
You can review live plan details, including current pricing and enabled regions, by calling the List plans endpoint.
For measured throughput and latency on each tier, see Weaviate benchmarks.
Features
Each Managed Weaviate cluster includes:
- Weaviate 1.37.4: Clusters run version
1.37.4. DigitalOcean upgrades the engine on a managed cadence, and new clusters are always provisioned on the latest supported version. - Open-source Weaviate API: REST, GraphQL, and gRPC endpoints. Official clients for Python, JavaScript/TypeScript, Go, and Java work without modification. See the client libraries overview.
- Hybrid search: Combine vector similarity and BM25 keyword relevance in a single query using the hybrid search API.
- Automatic backups: Daily backups with a seven day retention period. To see how to restore your cluster using backups, see How to Restore from Backups.
- TLS by default: All connections are secured over HTTPS (port 443) for both HTTP and gRPC.
For a side-by-side comparison of Weaviate, OpenSearch, and PostgreSQL with pgvector, see Choosing an engine.
The full DigitalOcean API workflow for provisioning, configuration, backups, and teardown is documented below.
Availability
During private preview, you can create Managed Weaviate clusters only in tor1 (Toronto, Canada). The enabled_regions field returned by the List plans endpoint shows the current region availability. Choose the region closest to the application that calls Weaviate to minimize round-trip latency.
Feedback and Support
Managed Weaviate is in private preview. APIs, SKUs, regions, and Control Panel elements may change before general availability. Private preview releases may not be suitable for production workloads. We recommend avoiding sensitive workloads in preview features.
To request access or give feedback during the private preview, contact your Customer Success Manager or Solutions Architect.
Our terms of service govern your use of DigitalOcean and cover details of eligibility, content, use, payments and billing, and warranties.
Limitations and Known Issues
The following limits apply during the private preview:
- Opt in to use Weaviate clusters, as access is limited to approved accounts.
- Weaviate clusters aren’t billed during private preview and aren’t covered by a paid support SLA.
- SKU pricing, regional availability, and SLAs may change before general availability.
- Use preview clusters for development and evaluation. Run production workloads on generally available infrastructure.
- You can use the Control Panel to create, connect to, resize, restore, and tag clusters. Listing plans, listing clusters, polling cluster status, retrieving credentials, updating cluster configuration, listing backups, and deleting clusters require the API. Managed Weaviate doesn’t support
doctlduring private preview. - Resizing is upgrade-only. You can resize from
smalltomediumorlarge, andmediumtolarge. Downsizing isn’t supported. For resize guidance, see How to Resize Weaviate Clusters. - On-demand backups are not available during private preview.
Prerequisites
You need:
- DigitalOcean account: Opted into the Managed Weaviate private preview.
- DigitalOcean API token: With write scope. See How to create a personal access token.
- Project UUID: The UUID of the project that will own the cluster.
- HTTP client: The examples use
curl.
Set environment variables for the token and project ID before running the examples:
export DIGITALOCEAN_TOKEN="<your-do-api-token>"
export PROJECT_ID="<your-project-uuid>"Do not commit either value to source control. Treat the API token like a password.
How to Provision and Connect to a Cluster
You can create a Weaviate cluster using the Control Panel or the API.
The API sections below use https://api.digitalocean.com/v2/vector-databases to manage your Weaviate cluster. Authenticate each request with a DigitalOcean API token in the request headers.
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": ["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 will own 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:
| Status | Description |
|---|---|
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 are not stable across cluster recreation.
Retrieve the Weaviate API Token
Fetch the credentials the Weaviate client uses to authenticate. This is a separate token from your DigitalOcean API token.
curl -X GET "https://api.digitalocean.com/v2/vector-databases/$CLUSTER_ID/credentials" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN"{
"user_id": "admin",
"api_token": "<weaviate-api-token>"
}Store the api_token in a secret manager. The Weaviate client sends it as a Bearer token on every request.
Connect with the Weaviate Client
Both the HTTP and gRPC endpoints listen on port 443 with TLS. Pass the values from endpoints and the api_token from the previous step to your client. For Control Panel connection details and additional languages, see How to Connect to Weaviate Clusters.
How to Manage a Cluster
Once a cluster is active, use the following API requests to list clusters, update configuration or tags, or change the cluster size.
List All Clusters
Send a GET request to return a paginated list of all vector database clusters in your account:
curl -X GET "https://api.digitalocean.com/v2/vector-databases?page=1&per_page=20" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN"Use page and per_page for pagination.
Update Cluster Configuration
Update auto-schema or default quantization with a PUT request:
curl -X PUT "https://api.digitalocean.com/v2/vector-databases/$CLUSTER_ID" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"config": {
"enable_auto_schema": false,
"default_quantization": "pq"
}
}'| Option | Values | Description |
|---|---|---|
enable_auto_schema |
true, false |
When true, Weaviate infers property types from incoming objects. |
default_quantization |
rq, pq, bq, sq |
The default vector compression applied to new collections. |
The four quantization options are:
rq(Rotational Quantization, default): Balanced compression and recall.pq(Product Quantization): Higher compression with a small accuracy tradeoff.bq(Binary Quantization): Maximum compression and fastest search.sq(Scalar Quantization): Simple, fast encoding for moderate compression.
Existing collections keep their current settings. The new default applies only to collections created after the update.
Update Tags
You can also manage tags from the Control Panel.
Replace the full tag set with a PUT request:
curl -X PUT "https://api.digitalocean.com/v2/vector-databases/$CLUSTER_ID/tags" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "tags": ["production", "v2", "critical"] }'Tags surface in billing and the project view, which makes ownership clear when you operate more than one cluster.
Resize a Cluster
Resize is upgrade-only. You can resize from small to medium or large, and from medium to large. Downsizing isn’t supported. For more guidance on resizing clusters, see How to Resize Weaviate Clusters.
curl -X POST "https://api.digitalocean.com/v2/vector-databases/$CLUSTER_ID/resize" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "size": "medium" }'The cluster status moves out of active while the resize runs and returns to active when it completes. Connections may be briefly interrupted during the cutover.
How to Back Up and Restore a Cluster
DigitalOcean creates daily backups automatically and retains them for seven days. On-demand backups are not available during private preview. For guidance on how to restore clusters from backups, see How to Restore from Backups.
List Backups
Send a GET request to return all automatic backups available for a cluster:
curl -X GET "https://api.digitalocean.com/v2/vector-databases/$CLUSTER_ID/backups" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN"{
"backups": [
{
"backup_id": "vectordb-abc123-20260115-120000",
"status": "SUCCESS",
"started_at": "2026-01-15T12:00:00Z",
"completed_at": "2026-01-15T12:05:00Z"
}
]
}Restore from a Backup
Restoring overwrites the cluster’s current state with the contents of the named backup. The database isn’t available for queries during the restore process.
Send a POST request with the backup_id from the list above to start the restore:
curl -X POST "https://api.digitalocean.com/v2/vector-databases/$CLUSTER_ID/backups/$BACKUP_ID/restore" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'Restores are asynchronous. Poll the restore endpoint until status is SUCCESS or FAILED:
curl -X GET "https://api.digitalocean.com/v2/vector-databases/$CLUSTER_ID/backups/$BACKUP_ID/restore" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN"| Status | Description |
|---|---|
STARTED |
Restore initiated. |
TRANSFERRING |
Data transfer in progress. |
TRANSFERRED |
Data transfer complete. |
FINALIZING |
Applying restored data. |
SUCCESS |
Restore complete. |
FAILED |
Restore failed. Inspect the error field. |
CANCELLING |
Restore is being cancelled. |
CANCELED |
Restore was cancelled. |
How to Delete a Cluster
Deletion is irreversible. All data, including backups, is destroyed.
Send a DELETE request to remove a cluster:
curl -X DELETE "https://api.digitalocean.com/v2/vector-databases/$CLUSTER_ID" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN"A 200 OK response with an empty body indicates the cluster was queued for deletion.
Error Reference
| HTTP code | Meaning |
|---|---|
| 200 | Success. |
| 400 | Bad request. Inspect the error field for the parameter at fault. |
| 401 | Unauthorized. The DigitalOcean API token is missing or invalid. |
| 403 | Forbidden. Your account is not opted into the private preview. |
| 404 | The cluster does not exist or is not owned by your account. |
| 429 | Rate limited. Back off and retry with exponential delay. |
| 500 | Internal error. Open a support ticket with the request ID. |
Common error bodies:
{
"error": "name must be 3-30 characters, start with a letter, and contain only lowercase letters, numbers, and hyphens"
}{
"error": "region 'xyz1' is not available for vector databases"
}{
"error": "cannot resize from 'large' to 'small'; only upgrades are supported"
}