Skip to main content
Pinecone Docs

Search documentation

Type to search this documentation.

On this pageOverview

Configure an index

For serverless indexes, you can configure only index deletion protection. For pod-based indexes, you can configure the pod size, number of replicas, and index deletion protection.

It is not possible to change the pod type of a pod-based index. However, you can create a collection from a pod-based index and then create a new pod-based index with a different pod type from the collection. For guidance and examples, see Configure an index.

Python
from pinecone.grpc import PineconeGRPC as Pinecone

pc = Pinecone(api_key="YOUR_API_KEY")

pc.configure_index(
    name="docs-example", 
    pod_type="p1.x2", 
    replicas=4,
    deletion_protection="enabled"
)
JavaScript
import { Pinecone } from '@pinecone-database/pinecone'

const pinecone = new Pinecone({
  apiKey: 'YOUR_API_KEY'
});

await pinecone.configureIndex('docs-example', { podType: 'p1.x2', replicas: 4, deletionProtection: 'enabled' });
Java
import io.pinecone.clients.Pinecone;

public class ConfigureIndexExample {
    public static void main(String[] args) {
        Pinecone pc = new Pinecone.Builder("YOUR_API_KEY").build();
        pc.configureIndex("docs-example", "p1.x2", 4, DeletionProtection.ENABLED);
    }
}
Go
package main

import (
    "context"
    "fmt"
    "log"

    "github.com/pinecone-io/go-pinecone/v2/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)
    }

    idx, err := pc.ConfigureIndex(ctx, "docs-example", pinecone.ConfigureIndexParams{PodType: "p1.x2", Replicas: 4, DeletionProtection: "enabled"})
  	if err != nil {
        log.Fatalf("Failed to configure index \"%v\": %v", idx.Name, err)
    } else {
        fmt.Printf("Successfully configured index \"%v\"", idx.Name)
    }
}
C#
using Pinecone;

var pinecone = new PineconeClient("YOUR_API_KEY");

var indexMetadata = await pinecone.ConfigureIndexAsync("docs-example", new ConfigureIndexRequest
{
    Spec = new ConfigureIndexRequestSpec
    {
        Pod = new ConfigureIndexRequestSpecPod {
            Replicas = 4,
            PodType = "p1.x2",
        }
    },
    DeletionProtection = DeletionProtection.Disabled,
});
curl
PINECONE_API_KEY="YOUR_API_KEY"

curl -s -X PATCH "https://api.pinecone.io/indexes/docs-example" \
    -H "Content-Type: application/json" \
    -H "Api-Key: $PINECONE_API_KEY" \
    -H "X-Pinecone-Api-Version: 2024-07" \
    -d '{
            "spec": {
                "pod": {
                    "pod_type": "p1.x2",
                    "replicas": 4
                }
            },
            "deletion_protection": "disabled"
        }'
curl
{
    "name": "docs-example",
    "metric": "cosine",
    "dimension": 1536,
    "status": {
        "ready": true,
        "state": "Ready"
    },
    "host": "docs-example1-4zo0ijk.svc.dev-us-west2-aws.pinecone.io",
    "spec": {
        "serverless": {
            "region": "us-east-1",
            "cloud": "aws"
        }
    }
}

PATCH /indexes/{index_name}

  • index_name (path, string, required) — The name of the index to configure.
  • spec (body, object)
  • deletion_protection (body, string) — Whether deletion protection is enabled/disabled for the index.
  • 202 — The request to configure the index has been accepted. Check the index status to see when the change has been applied.
  • 400 — Bad request. The request body included invalid request parameters.
  • 401 — Unauthorized. Possible causes: Invalid API key.
  • 403 — You've exceed your pod quota.
  • 404 — Index not found.
  • 422 — Unprocessable entity. The request body could not be deserialized.
  • 500 — Internal server error.
Suggest an edit

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

Export
Documentation menu