Configure an index
Updates configuration on an existing index. You can update deletion_protection, tags, and read_capacity (for example, converting from OnDemand to Dedicated). The schema itself is immutable — to change field types or add new indexed fields, create a new index and re-upsert.
This is a partial update: only the fields you include in the request body are modified. Unspecified fields are left unchanged. To clear tags, send "tags": {}.
# pip install --upgrade pinecone
import os
from pinecone import Pinecone
pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])
# Enable deletion protection
pc.indexes.configure(
name="articles",
deletion_protection="enabled",
)
# Convert read capacity from OnDemand to Dedicated
pc.indexes.configure(
name="articles",
read_capacity={
"mode": "Dedicated",
"dedicated": {
"node_type": "b1",
"scaling": "Manual",
"manual": {"shards": 1, "replicas": 1},
},
},
)PINECONE_API_KEY="YOUR_API_KEY"
# Enable deletion protection
curl -X PATCH "https://api.pinecone.io/indexes/articles" \
-H "Api-Key: $PINECONE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Pinecone-Api-Version: 2026-07" \
-d '{ "deletion_protection": "enabled" }'
# Convert read capacity from OnDemand to Dedicated
curl -X PATCH "https://api.pinecone.io/indexes/articles" \
-H "Api-Key: $PINECONE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Pinecone-Api-Version: 2026-07" \
-d '{
"read_capacity": {
"mode": "Dedicated",
"dedicated": {
"node_type": "b1",
"scaling": "Manual",
"manual": { "shards": 1, "replicas": 1 }
}
}
}'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”deployment(body, object) — Deployment update parameters for pod-based indexes. Specifyreplicas,pod_type, or both. Deployment type, cloud/region, and environment cannot be changed after creation. Do not include adeployment_typefield; it is not accepted.schema(body, object) — Schema updates to apply to an existing index. Onlysemantic_textfield parameters can be updated after index creation. The model itself cannot be changed once set; onlywrite_parametersandread_parametersmay be updated if the model stays the same.read_capacity(body, object) — Read capacity changes for an existing managed or BYOC index. Switch toOnDemand, or setDedicatedand change any subset ofnode_type,scaling, andmanualreplicas/shards; fields you omit keep their current value. BYOC indexes do not supportOnDemand.tags(body, object) — Custom user tags added to an index, at most 20 per index. Keys must be 80 characters or less and alphanumeric, '_', or '-'. Values must be 120 characters or less and consist of printable ASCII characters or spaces. To unset a key, set the value to be an empty string.nullin responses when the index has no tags.deletion_protection(body, string) — Whether deletion protection is enabled/disabled for the index. Possible values:disabledorenabled.
Responses
Section titled “Responses”200— The configuration change was recorded and the updated index is returned. Changes that resize the index (replicas, shards, read capacity) are applied asynchronously; poll the indexstatusto see when they take effect.400— Bad request. The request body included invalid request parameters.401— Unauthorized. Possible causes: missing or invalid API key.403— Forbidden. Possible causes: the project's index quota is exhausted, dedicated read capacity is not enabled for the organization, or (when configuring) the index's read capacity is not yetReady.404— Index not found.422— Unprocessable entity. The request body could not be deserialized.500— Internal server error.