Creating Pod-Based Indexes

1. Creating Pod Index

Example: Python

from pinecone import Pinecone, PodSpec

pc = Pinecone(api_key="...")
pc.create_index(
    name="docs-pod",
    dimension=1536,
    metric="cosine",
    spec=PodSpec(
        environment="us-east-1-aws",
        pod_type="p1.x1",
        pods=1,
        replicas=1,
        shards=1,
    ),
)

2. Selecting Pod Type

Pod TypeOptimized ForCapacity (per x1, 768d)
s1Storage; large indexes, lower QPS~5M vectors
p1Balanced performance~1M vectors, ~100 QPS
p2High QPS, low latency~1M vectors, ~200 QPS

3. Configuring Pod Size

SizeMultiplierUse
x1BaselineSmall/medium
x22× capacityGrowing
x44× capacityLarge
x88× capacityXL
Note: Pod size is specified as {type}.{size}, e.g., p1.x2.

4. Setting Index Dimensions

DimCapacity Impact
384~2× more vectors than 768d
768Baseline
1536~0.5× capacity
3072~0.25× capacity

5. Configuring Distance Metric

MetricPod Compatibility
cosineAll pod types
euclideanAll pod types
dotproductAll; required for hybrid

6. Setting Replica Count

Example: Scale Replicas

pc.configure_index("docs-pod", replicas=3)  # 3× read throughput
ReplicasEffect
1No HA, baseline QPS
2+Linear QPS scaling, HA failover
CostLinear: 3 replicas = 3× cost

7. Configuring Shards

ShardsEffect
1Default; pod holds all data
2+Splits data across pods; needed when single pod exceeds capacity
Total podsshards × replicas

8. Setting Deletion Protection

ValueEffect
enabledPrevents accidental delete_index
disabledAllows deletion

9. Creating from Source Collection

Example: Restore from Collection

pc.create_index(
    name="docs-restored",
    dimension=1536,
    metric="cosine",
    spec=PodSpec(
        environment="us-east-1-aws",
        pod_type="p1.x1",
        source_collection="docs-backup-2026-05",
    ),
)
ParamDescription
source_collectionName of existing collection to restore
Dim/metricMust match source collection
Pod typeCan differ from original (e.g., migrate s1→p1)

10. Understanding Pod Capacity Limits

PodMax Vectors @ 768dMax Metadata
s1.x1~5M40KB/vector
p1.x1~1M40KB/vector
p2.x1~1M40KB/vector
Max namespaces~100K per pod index
Warning: When a pod reaches capacity, upserts return 429 Too Many Requests. Add shards or scale pod size before hitting the limit.