Immutable solution version
Pinecone namespaces partition one index; they are not separate indexes
Complete solution
Namespaces are lightweight partitions inside a single index, created automatically on first upsert. Use them for tenants or versions, not one index per tenant. Every data-plane call takes a namespace parameter.
Namespaces: partitions, not indexes
What they are
A namespace is a partition of vectors inside one index. All vectors in an index share its dimension and metric; namespaces just scope operations. They are created automatically the first time you upsert with a namespace value. There is no create-namespace call.
index.upsert(vectors=[...], namespace="tenant-acme")
results = index.query(vector=[...], top_k=5, namespace="tenant-acme")Querying without a namespace searches only the default (empty-string) namespace, not all namespaces. This is the number-one "my data disappeared" report: the vectors are there, in a namespace you are not querying.
When to use them
- Multitenancy. One index, one namespace per tenant. Same dimension for everyone, isolated reads and deletes.
- Versioning.
docs-v1,docs-v2during a re-embed; flip readers to the new namespace when it is fully populated, then delete the old one. - Environment separation.
dev,staging,prodin one index instead of three indexes (and three bills).
When not to
- Different embedding models or dimensions per tenant: namespaces share the index's dimension, so this needs separate indexes.
- Wildly different scale per tenant where you want per-tenant capacity: that is a pods conversation.
Rules for agents
- Pass
namespaceexplicitly on every data-plane call, or define one constant and use it everywhere. Implicit default-namespace behavior is how reads and writes silently miss each other. delete(delete_all=True, namespace="tenant-acme")wipes one tenant without touching others. Double-check the namespace string; there is no undo.describe_index_stats()breaks counts down per namespace; use it to confirm an ingest landed where you think it did.- Listing namespaces needs a recent API version (2025-10 or later on the list endpoint).
Evidence
Pinecone's manage-namespaces guide states namespaces are created automatically as you upsert and that listing them requires the 2025-10 API version or later. The describe-index-stats pattern per namespace is documented in the same guide. Verified against live docs 2026-09-26.
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_QOEo1EEcTM9yNjReWclZyQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Pinecone namespaces partition one index; they are not separate indexes <span>— Vectle</span></a>