Skip to main content
This page describes different types of limits for Pinecone Database.
Looking for a specific limit?

Rate limits

Rate limits help protect your applications from misuse and maintain the health of our shared serverless infrastructure. These limits are designed to support typical production workloads while ensuring reliable performance for all users. Most rate limits can be adjusted upon request. If you need higher limits to scale your application, contact Support with details about your use case. Pinecone is committed to supporting your growth and can often accommodate higher throughput requirements. Rate limits vary based on pricing plan and apply to serverless indexes only.
Indexes built on Dedicated Read Nodes are not subject to read unit limits for query, fetch, and list operations. For sizing and capacity planning guidance, see the Dedicated Read Nodes guide.

Data plane operations: request-per-second limits

Pinecone enforces rate limits on the number of API requests per second at the namespace level for data plane operations (query, upsert, delete, and update). These limits provide protection against excessive request rates.

Affected operations

The following operations are subject to request-per-second rate limiting:

Error response

When you exceed the request-per-second limit, you’ll receive an HTTP 429 - TOO_MANY_REQUESTS response. The error message indicates which operation exceeded the limit and includes the namespace name and limit value. See the individual limit sections below for specific error message formats.

How request-per-second limits work with limits on read and write units

Request-per-second limits are enforced in addition to existing read unit and write unit limits. Requests must not exceed any applicable limits:
  • Index-level limits - read and write unit limits, per index
  • Namespace-level limits - read and write unit limits, per namespace
  • Request-per-second limits - requests per second, per namespace
If any limit is exceeded, the request fails with a 429 error.

Recommendations

If you’re hitting request-per-second limits:
  1. Implement retry logic. Use exponential backoff to handle rate limit errors gracefully. See Error Handling Guide.
  2. Pace your requests. Add client-side rate limiting to stay under limits.
  3. Consider Dedicated Read Nodes, which don’t have request-per-second limits and provide dedicated capacity for high-throughput workloads.
  4. If you need higher limits, contact Support with details about your use case.

All rate limits

Monthly usage limits

Data operation throughput limits

Model throughput limits

Read units per month per org

Read units measure the compute, I/O, and network resources used by fetch, query, and list requests to serverless indexes. When you reach the monthly read unit limit for an organization, fetch, query, and list requests to serverless indexes in the organization will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To continue reading from serverless indexes in the organization, upgrade your plan. To check how close you are to the monthly read unit limit for your organization, do the following:
  1. Open the Pinecone console.
  2. Select the project.
  3. Select any index in the project.
  4. Look under Usage.
Indexes built on Dedicated Read Nodes are not subject to read unit limits for query, fetch, and list operations. For sizing and capacity planning guidance, see the Dedicated Read Nodes guide.

Write units per month per org

Write units measure the storage and compute resources used by upsert, update, and delete requests to serverless indexes. When you reach the monthly write unit limit for an organization, upsert, update, and delete requests to serverless indexes in the organization will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To continue writing data to serverless indexes in the organization, upgrade your plan. To check how close you are to the monthly write unit limit for your organization, do the following:
  1. Open the Pinecone console.
  2. Select the project.
  3. Select any index in the project.
  4. Look under Usage.

Upsert size per second per namespace

When you reach the per second upsert size for a namespace in an index, additional upserts will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Query read units per second per index

Pinecone measures query usage in read units. When you reach the per second limit for queries across all namespaces in an index, additional queries will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support. To check how many read units a query consumes, check the query response.
Indexes built on Dedicated Read Nodes are not subject to read unit limits for query, fetch, and list operations. For sizing and capacity planning guidance, see the Dedicated Read Nodes guide.

Query requests per second per namespace

When you reach the per second query limit for a namespace in an index, additional queries will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.
Indexes built on Dedicated Read Nodes are not subject to read unit limits for query, fetch, and list operations. For sizing and capacity planning guidance, see the Dedicated Read Nodes guide.

Update records per second per namespace

When you reach the per second update limit for a namespace in an index, additional updates will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Update requests per second per namespace

When you reach the per second update request limit for a namespace in an index, additional update requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.
If you need to update most of the records in a large namespace, contact Support for help creating an export to enable a faster and more cost-effective approach.

Update by metadata requests per second per namespace

When you reach the per second update by metadata request limit for a namespace in an index, additional update by metadata requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Update by metadata requests per second per index

When you reach the per second update by metadata request limit across all namespaces in an index, additional update by metadata requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Upsert requests per second per namespace

When you reach the per second upsert request limit for a namespace in an index, additional upsert requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Fetch requests per second per index

When you reach the per second fetch limit across all namespaces in an index, additional fetch requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.
Indexes built on Dedicated Read Nodes are not subject to read unit limits for query, fetch, and list operations. For sizing and capacity planning guidance, see the Dedicated Read Nodes guide.

List requests per second per index

When you reach the per second list limit across all namespaces in an index, additional list requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.
Indexes built on Dedicated Read Nodes are not subject to read unit limits for query, fetch, and list operations. For sizing and capacity planning guidance, see the Dedicated Read Nodes guide.

Describe index stats requests per second per index

When you reach the per second describe index stats limit across all namespaces in an index, additional describe index stats requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Delete requests per second per namespace

When you reach the per second delete request limit for a namespace in an index, additional delete requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Delete records per second per namespace

When you reach the per second delete limit for a namespace in an index, additional deletes will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Delete records per second per index

When you reach the per second delete limit across all namespaces in an index, additional deletes will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Delete by metadata requests per second per namespace

When you reach the per second delete by metadata request limit for a namespace in an index, additional delete by metadata requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Delete by metadata requests per second per index

When you reach the per second delete by metadata request limit across all namespaces in an index, additional delete by metadata requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To handle this limit, implement retry logic with exponential backoff. If you need a higher limit for your use case, contact Support.

Embedding tokens per minute per model

When you reach the per minute token limit for an embedding model hosted by Pinecone, additional embeddings will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To increase this limit, upgrade your plan. Otherwise, you can handle this limit by implementing retry logic with exponential backoff.

Embedding tokens per month per model

When you reach the monthly token limit for an embedding model hosted by Pinecone, additional embeddings will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To increase this limit, upgrade your plan or contact Support.

Rerank requests per minute per model

When you reach the per minute request limit for a reranking model hosted by Pinecone, additional reranking requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To increase this limit, upgrade your plan.

Rerank requests per month per model

When you reach the monthly request limit for a reranking model hosted by Pinecone, additional reranking requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
To increase this limit, upgrade your plan or contact Support.

Inference requests per second or minute, per project

When you reach the per second or per minute request limit, inference requests will fail and return a 429 - TOO_MANY_REQUESTS status with the following error:
This error indicates per second or per minute, as applicable.
To handle this limit, implement retry logic with exponential backoff.

Object limits

Object limits are restrictions on the number or size of objects in Pinecone. Object limits vary based on pricing plan. 1 On the Starter plan, all serverless indexes must be in the us-east-1 region of AWS. Builder, Standard, and Enterprise plans can create indexes in any supported region.

Projects per organization

When you reach this quota for an organization, trying to create projects will fail and return a 403 - QUOTA_EXCEEDED status with the following error:
To increase this quota, upgrade your plan or contact Support.

Users per organization

When you reach this quota for an organization, trying to add users to the organization will fail. To increase this quota, upgrade your plan.

Serverless indexes per project

When you reach this quota for a project, trying to create serverless indexes in the project will fail and return a 403 - QUOTA_EXCEEDED status with the following error:
To stay under this quota, consider using namespaces instead of creating multiple indexes. Namespaces let you partition your data into logical groups within a single index. This approach not only helps you stay within index limits, but can also improve query performance and lower costs by limiting searches to relevant data subsets. To increase this quota, upgrade your plan.

Serverless index storage per org

This limit applies to organizations on the Starter and Builder plans only.
When you’ve reached this quota for an organization, updates and upserts into serverless indexes will fail and return a 403 - QUOTA_EXCEEDED status with the following error:
To continue writing data into your serverless indexes, delete records to bring your organization under the limit or upgrade your plan.

Namespaces per serverless index

When you reach this quota for a serverless index, trying to upsert records into a new namespace in the index will fail and return a 403 - QUOTA_EXCEEDED status with the following error:
To increase this quota, upgrade your plan.
Namespaces per serverless index vary by plan. On the Standard and Enterprise plans, Pinecone can accommodate million-scale namespaces and beyond for specific use cases. If your application requires more than 100,000 namespaces, contact Support.

Serverless backups per project

Backups are not available on the Starter or Builder plans. On the Standard and Enterprise plans, when you reach this quota for a project, trying to create serverless backups in the project will fail and return a 403 - QUOTA_EXCEEDED status with the following error:

Collections per project

When you reach this quota for a project, trying to create collections in the project will fail and return a 403 - QUOTA_EXCEEDED status with the following error:
To increase this quota, upgrade your plan.

Operation limits

Operation limits are restrictions on the size, number, or other characteristics of operations in Pinecone. Operation limits are fixed and do not vary based on pricing plan.

Upsert limits

The 40 KB filterable metadata limit does not apply to full_text_search text fields.

Import limits

If your import exceeds these limits, you’ll get an error specifying the limit exceeded. See Troubleshooting for details.
The total input data size limit does not apply to indexes with dedicated read nodes. Bulk import supports indexes without a schema definition (Parquet files) and indexes with document schemas (JSONL files). Semantic-text (auto-embedded) fields are not yet supported in document schemas.

Query limits

The query result size is affected by the dimension of the dense vectors and whether or not dense vector values and metadata are included in the result.
If a query fails due to exceeding the 4MB result size limit, choose a lower top_k value, or use include_metadata=False or include_values=False to exclude metadata or values from the result. For better performance, especially with higher top_k values, avoid including vector values unless you need them.

Fetch limits

Fetch by ID limits: Fetch by metadata limits: To retrieve more than 10,000 matching records, paginate through results using the paginationToken parameter. See Fetch records by metadata.

Delete limits

Metadata filter limits

The following limits apply to metadata filter expressions used in query, delete, update, and fetch operations. When you exceed this limit, the request will fail and return a 400 - BAD_REQUEST error.

Rationale

Large $in operators can impact query performance and cost. Filters with thousands of values increase request payload size and end-to-end latency. Additionally, using large filters typically indicates a shared namespace architecture, which increases query costs—queries scan the entire namespace regardless of filters.

Alternative approaches

If you need to filter by more than 10,000 values, consider these alternatives:
  • Use namespaces for tenant isolation: Instead of filtering by tenant IDs within a single namespace, create separate namespaces for each tenant or tenant group. This can also reduce query costs. See Design for multi-tenancy.
  • Use broader access control groups: Instead of filtering by individual user IDs, filter by organization, project, or role. This reduces the number of values in your $in filter. See Design for multi-tenancy.
  • Post-filter client-side: Retrieve a larger top K without filtering (for example, top 1000), then filter results client-side.
  • Run multiple queries: Split your filter into multiple queries with smaller $in operators and combine the results client-side.
To avoid hitting this limit in production, validate the size of your $in and $nin arrays in your application code before making the request to Pinecone.

Identifier limits

An identifier is a string of characters used to identify “named” objects in Pinecone. The following Pinecone objects use strings as identifiers: