Skip to main content
Pinecone Docs

Search documentation

Type to search this documentation.

On this pageOverview

Configure an index

Configure an existing index. For serverless indexes, you can configure index deletion protection, tags, and integrated inference embedding settings for the index. For pod-based indexes, you can configure the pod size, number of replicas, tags, 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 import Pinecone

pc = Pinecone(api_key="YOUR_API_KEY")

pc.configure_index(
  name="docs-example", 
  deletion_protection="enabled",
  tags={"example": "tag", "environment": "development"}
)
JavaScript
import { Pinecone } from '@pinecone-database/pinecone'

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

await pinecone.configureIndex(
  'docs-example', 
  { 
    deletionProtection: 'enabled', 
    tags: { 
      example: 'tag', 
      environment: 'development' 
    } 
  }
);
Java
import io.pinecone.clients.Pinecone;
import org.openapitools.db_control.client.model.*;
import java.util.HashMap;

public class ConfigureIndexExample {
  public static void main(String[] args) throws Exception {
    Pinecone pc = new Pinecone.Builder("YOUR_API_KEY").build();

    HashMap<String, String> tags = new HashMap<>();
    tags.put("example", "tag");
    tags.put("environment", "development");

    IndexModel indexList = pc.configureServerlessIndex(
      "docs-example",
      DeletionProtection.ENABLED,
      tags,
      null
    );
  }
}
Go
package main

import (
    "context"
    "fmt"
    "log"

    "github.com/pinecone-io/go-pinecone/v4/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{
      DeletionProtection: "enabled",
      Tags: map[string]string{
        "example": "tag",
        "environment": "development",
      },
    })
  	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 request = new ConfigureIndexRequest
{
  DeletionProtection = DeletionProtection.Enabled,
  Tags = new Dictionary<string, string>
  {
    { "example", "tag" },
    { "environment", "development" }
  }
};
var index = await pinecone.ConfigureIndexAsync("docs-example", request);
curl
PROJECT_NAME="YOUR_PROJECT_NAME"
PINECONE_API_KEY="YOUR_API_KEY"

curl -X PATCH "https://api.pinecone.io/indexes/$INDEX_NAME" \
     -H "Content-Type: application/json" \
     -H "Api-Key: $PINECONE_API_KEY" \
     -H "X-Pinecone-Api-Version: 2025-04" \
     -d '{
            "deletion_protection": "enabled",
             "tags": {
               "example": "tag",
               "environment": "development"
             }
         }'
CLI
# Target the project that contains the index you'd 
# like to configure.
pc target -o "example-org" -p "example-project"
# Configure the index.
pc index configure \
  --name "docs-example" \
  --deletion_protection "enabled" 
Response
{
  "name": "docs-example",
  "vector_type": "dense",
  "metric": "cosine",
  "dimension": 1536,
  "status": {
    "ready": true,
    "state": "Ready"
  },
  "host": "docs-example-1c6ab6aa.svc.aped-4627-b74a.pinecone.io",
  "spec": {
    "serverless": {
      "region": "us-east-1",
      "cloud": "aws"
    }
  },
  "deletion_protection": "enabled",
  "tags": {
    "environment": "development",
    "example": "tag"
  }
}

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.
  • tags (body, object) — Custom user tags added to an index. Keys must be 80 characters or less. Values must be 120 characters or less. Keys must be alphanumeric, '', or '-'. Values must be alphanumeric, ';', '@', '', '-', '.', '+', or ' '. To unset a key, set the value to be an empty string.
  • embed (body, object) — Configure the integrated inference embedding settings for this index. You can convert an existing index to an integrated index by specifying the embedding model and field_map. The index vector type and dimension must match the model vector type and dimension, and the index similarity metric must be supported by the model. Refer to the [model guide](https://docs.pinecone.io/guides/index-data/create
  • 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.
  • 402 — Payment required. Organization is on a paid plan and is delinquent on payment.
  • 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