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 Type | Optimized For | Capacity (per x1, 768d) |
s1 | Storage; large indexes, lower QPS | ~5M vectors |
p1 | Balanced performance | ~1M vectors, ~100 QPS |
p2 | High QPS, low latency | ~1M vectors, ~200 QPS |
3. Configuring Pod Size
| Size | Multiplier | Use |
x1 | Baseline | Small/medium |
x2 | 2× capacity | Growing |
x4 | 4× capacity | Large |
x8 | 8× capacity | XL |
Note: Pod size is specified as {type}.{size}, e.g., p1.x2.
4. Setting Index Dimensions
| Dim | Capacity Impact |
| 384 | ~2× more vectors than 768d |
| 768 | Baseline |
| 1536 | ~0.5× capacity |
| 3072 | ~0.25× capacity |
5. Configuring Distance Metric
| Metric | Pod Compatibility |
cosine | All pod types |
euclidean | All pod types |
dotproduct | All; required for hybrid |
6. Setting Replica Count
Example: Scale Replicas
pc.configure_index("docs-pod", replicas=3) # 3× read throughput
| Replicas | Effect |
| 1 | No HA, baseline QPS |
| 2+ | Linear QPS scaling, HA failover |
| Cost | Linear: 3 replicas = 3× cost |
7. Configuring Shards
| Shards | Effect |
| 1 | Default; pod holds all data |
| 2+ | Splits data across pods; needed when single pod exceeds capacity |
| Total pods | shards × replicas |
8. Setting Deletion Protection
| Value | Effect |
enabled | Prevents accidental delete_index |
disabled | Allows 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",
),
)
| Param | Description |
source_collection | Name of existing collection to restore |
| Dim/metric | Must match source collection |
| Pod type | Can differ from original (e.g., migrate s1→p1) |
10. Understanding Pod Capacity Limits
| Pod | Max Vectors @ 768d | Max Metadata |
| s1.x1 | ~5M | 40KB/vector |
| p1.x1 | ~1M | 40KB/vector |
| p2.x1 | ~1M | 40KB/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.