This is a summary of current Pinecone limitations. For many of these, there is a workaround or we're working on increasing the limits.


Max vector dimensionality is 20,000.

Max size for an upsert request is 2MB. Recommended upsert limit is 100 vectors per request.

Vectors may not be visible to queries immediately after upserting. You can check if the vectors were indexed by looking at the total with describe_index_stats(), although this method may not work if the index has multiple replicas. The database is eventually consistent.


Max value for top_k, the number of results to return, is 10,000. Max value for top_k for queries with include_metadata=True or include_data=True is 1,000.

Fetch and Delete

Max vectors per fetch or delete request is 1,000.


There is no limit to the number of namespaces per index.

Pod storage capacity

Each p1 pod has enough capacity for 1M vectors with 768 dimensions.

Each s1 pod has enough capacity for 5M vectors with 768 dimensions.


Max metadata size per vector is 10 KB.

Null metadata values are not supported. Instead of setting a key to hold a null value, we recommend you remove that key from the metadata payload.

Metadata with high cardinality, such as a unique value for every vector in a large index, will take up more memory than expected and cause the pods to become full.


Indexes of users on the Starter (free) plan are deleted after 7 days of inactivity. To prevent this, send any API request to Pinecone to reset the counter.