Configure an index
# EXAMPLE REQUEST 1: Serverless index (on-demand)
# Enable deletion protection and add tags to an
# existing on-demand index.
PINECONE_API_KEY="YOUR_API_KEY"
INDEX_NAME="YOUR_INDEX_NAME"
curl -X PATCH "https://api.pinecone.io/indexes/$INDEX_NAME" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Api-Key: $PINECONE_API_KEY" \
-H "X-Pinecone-Api-Version: 2025-10" \
-d '{
"deletion_protection": "enabled",
"tags": {
"tag1": "value1",
"tag2": "value2"
}
}'
# EXAMPLE REQUEST 2: Serverless index (dedicated)
# Add a replica to an existing dedicated index.
PINECONE_API_KEY="YOUR_API_KEY"
INDEX_NAME="YOUR_INDEX_NAME"
curl -X PATCH "https://api.pinecone.io/indexes/$INDEX_NAME" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Api-Key: $PINECONE_API_KEY" \
-H "X-Pinecone-Api-Version: 2025-10" \
-d '{
"spec": {
"serverless": {
"read_capacity": {
"mode": "Dedicated",
"dedicated": {
"node_type": "b1",
"scaling": "Manual",
"manual": {
"shards": 2,
"replicas": 2
}
}
}
}
}
}'// EXAMPLE RESPONSE 1: Serverless index (on-demand)
// Enable deletion protection and add tags to an
// existing on-demand index.
{
"name": "example-serverless-ondemand-index",
"vector_type": "dense",
"metric": "cosine",
"dimension": 1024,
"status": {
"ready": true,
"state": "Ready"
},
"host": "example-serverless-ondemand-index-bhnyigt.svc.aped-4627-b74a.pinecone.io",
"spec": {
"serverless": {
"region": "us-east-1",
"cloud": "aws",
"read_capacity": {
"mode": "OnDemand",
"status": {
"state": "Ready",
"current_shards": null,
"current_replicas": null
}
}
}
},
"deletion_protection": "enabled",
"tags": {
"tag1": "value1",
"tag2": "value2"
},
"embed": {
"model": "llama-text-embed-v2",
"field_map": {
"text": "text"
},
"dimension": 1024,
"metric": "cosine",
"write_parameters": {
"dimension": 1024,
"input_type": "passage",
"truncate": "END"
},
"read_parameters": {
"dimension": 1024,
"input_type": "query",
"truncate": "END"
},
"vector_type": "dense"
}
}
// EXAMPLE RESPONSE 2: Serverless index (dedicated)
// Add a replica to an existing dedicated index.
{
"name": "example-serverless-dedicated-index",
"vector_type": "dense",
"metric": "cosine",
"dimension": 1536,
"status": {
"ready": true,
"state": "Ready"
},
"host": "example-serverless-dedicated-index-bhnyigt.svc.aped-4627-b74a.pinecone.io",
"spec": {
"serverless": {
"region": "us-east-1",
"cloud": "aws",
"read_capacity": {
"mode": "Dedicated",
"dedicated": {
"node_type": "b1",
"scaling": "Manual",
"manual": {
"shards": 1,
"replicas": 2 <-- desired state
}
},
"status": {
"state": "Scaling",
"current_shards": 1,
"current_replicas": 1 <-- current state
}
}
}
},
"deletion_protection": "enabled",
"tags": {
"tag0": "value0"
}
}PATCH /indexes/{index_name}
Parameters
Section titled “Parameters”X-Pinecone-Api-Version(header, string, required) — Required date-based version headerindex_name(path, string, required) — The name of the index to configure.
Request body
Section titled “Request body”spec(body, object) — The spec object defines how the index should be deployed. Only some attributes of an index's spec may be updated. In general, you can modify settings related to scaling and configuration but you cannot change the cloud or region where the index is hosted.deletion_protection(body, string) — Whether deletion protection is enabled/disabled for the index. Possible values:disabledorenabled.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
Responses
Section titled “Responses”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.