Pinecone Vector Operations API
The Vector Operations API from Pinecone — 10 operation(s) for vector operations.
The Vector Operations API from Pinecone — 10 operation(s) for vector operations.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/pinecone-vector-operations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Pinecone Data Plane Vector Operations API
description: Pinecone is a vector database that makes it easy to search and retrieve billions of high-dimensional vectors.
contact:
name: Pinecone Support
url: https://support.pinecone.io
email: support@pinecone.io
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
version: 2025-10
servers:
- url: https://{index_host}
variables:
index_host:
default: unknown
description: host of the index
security:
- ApiKeyAuth: []
tags:
- name: Vector Operations
paths:
/describe_index_stats:
post:
tags:
- Vector Operations
summary: Get index stats
description: 'Return statistics about the contents of an index, including the vector count per namespace, the number of dimensions, and the index fullness.
Serverless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.'
operationId: describeIndexStats
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DescribeIndexStatsRequest'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/IndexDescription'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
/query:
post:
tags:
- Vector Operations
summary: Search with a vector
description: 'Search a namespace using a query vector. It retrieves the ids of the most similar items in a namespace, along with their similarity scores.
For guidance, examples, and limits, see [Search](https://docs.pinecone.io/guides/search/search-overview).'
operationId: queryVectors
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QueryRequest'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/QueryResponse'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
/vectors/delete:
post:
tags:
- Vector Operations
summary: Delete vectors
description: 'Delete vectors by id from a single namespace.
For guidance and examples, see [Delete data](https://docs.pinecone.io/guides/manage-data/delete-data).'
operationId: deleteVectors
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteRequest'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteResponse'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
/vectors/fetch:
get:
tags:
- Vector Operations
summary: Fetch vectors
description: 'Look up and return vectors by ID from a single namespace. The returned vectors include the vector data and/or metadata.
For on-demand indexes, since vector values are retrieved from object storage, fetch operations may have increased latency. If you only need metadata or IDs, consider using the query operation with `includeValues` set to `false` instead.
For guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/manage-data/fetch-data).'
operationId: fetchVectors
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
- in: query
name: ids
description: The vector IDs to fetch. Does not accept values containing spaces.
required: true
schema:
type: array
items:
type: string
explode: true
style: form
- in: query
name: namespace
description: The namespace to fetch vectors from. If not provided, the default namespace is used.
schema:
type: string
style: form
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/FetchResponse'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
/vectors/fetch_by_metadata:
post:
tags:
- Vector Operations
summary: Fetch vectors by metadata
description: 'Look up and return vectors by metadata filter from a single namespace. The returned vectors include the vector data and/or metadata.
For guidance and examples, see [Fetch data](https://docs.pinecone.io/guides/manage-data/fetch-data).'
operationId: fetch_vectors_by_metadata
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FetchByMetadataRequest'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/FetchByMetadataResponse'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
/vectors/list:
get:
tags:
- Vector Operations
summary: List vector IDs
description: 'List the IDs of vectors in a single namespace of a serverless index. An optional prefix can be passed to limit the results to IDs with a common prefix.
Returns up to 100 IDs at a time by default in sorted order (bitwise "C" collation). If the `limit` parameter is set, `list` returns up to that number of IDs instead. Whenever there are additional IDs to return, the response also includes a `pagination_token` that you can use to get the next batch of IDs. When the response does not include a `pagination_token`, there are no more IDs to return.
For guidance and examples, see [List record IDs](https://docs.pinecone.io/guides/manage-data/list-record-ids).
**Note:** `list` is supported only for serverless indexes.'
operationId: listVectors
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
- in: query
name: prefix
description: The vector IDs to fetch. Does not accept values containing spaces.
schema:
type: string
style: form
- in: query
name: limit
description: Max number of IDs to return per page.
schema:
default: 100
type: integer
format: int64
style: form
- in: query
name: paginationToken
description: Pagination token to continue a previous listing operation.
schema:
type: string
style: form
- in: query
name: namespace
description: The namespace to list vectors from. If not provided, the default namespace is used.
schema:
type: string
style: form
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponse'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
/vectors/update:
post:
tags:
- Vector Operations
summary: Update a vector
description: 'Update a vector in a namespace. If a value is included, it will overwrite the previous value. If a `set_metadata` is included, the values of the fields specified in it will be added or overwrite the previous value.
For guidance and examples, see [Update data](https://docs.pinecone.io/guides/manage-data/update-data).'
operationId: updateVector
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRequest'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateResponse'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
/vectors/upsert:
post:
tags:
- Vector Operations
summary: Upsert vectors
description: 'Upsert vectors into a namespace. If a new value is upserted for an existing vector ID, it will overwrite the previous value.
For guidance, examples, and limits, see [Upsert data](https://docs.pinecone.io/guides/index-data/upsert-data).'
operationId: upsertVectors
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertRequest'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertResponse'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
/records/namespaces/{namespace}/upsert:
post:
tags:
- Vector Operations
summary: Upsert text
description: 'Upsert text into a namespace. Pinecone converts the text to vectors automatically using the hosted embedding model associated with the index.
Upserting text is supported only for [indexes with integrated embedding](https://docs.pinecone.io/guides/index-data/create-an-index#embedding-models).
For guidance, examples, and limits, see [Upsert data](https://docs.pinecone.io/guides/index-data/upsert-data).'
operationId: upsertRecordsNamespace
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
- in: path
name: namespace
description: The namespace to upsert records into.
required: true
schema:
type: string
style: simple
requestBody:
description: 'Each record in the request body must include an `_id` field and a field that matches your index''s `field_map` configuration (such as `chunk_text` or `data`). All other fields are stored as metadata.
'
content:
application/x-ndjson:
schema:
type: array
items:
$ref: '#/components/schemas/UpsertRecord'
required: true
responses:
'201':
description: A successful response.
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
/records/namespaces/{namespace}/search:
post:
tags:
- Vector Operations
summary: Search with text
description: "Search a namespace with a query text, query vector, or record ID and return the most similar records, along with their similarity scores. Optionally, rerank the initial results based on their relevance to the query. \n\nSearching with text is supported only for indexes with [integrated embedding](https://docs.pinecone.io/guides/index-data/indexing-overview#vector-embedding). Searching with a query vector or record ID is supported for all indexes. \n\nFor guidance and examples, see [Search](https://docs.pinecone.io/guides/search/search-overview)."
operationId: searchRecordsNamespace
parameters:
- in: header
name: X-Pinecone-Api-Version
description: Required date-based version header
required: true
schema:
default: 2025-10
type: string
style: simple
- in: path
name: namespace
description: The namespace to search.
required: true
schema:
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchRecordsRequest'
required: true
responses:
'200':
description: A successful search namespace response.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchRecordsResponse'
'400':
description: Bad request. The request body included invalid request parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
4XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
5XX:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
components:
schemas:
DeleteResponse:
description: The response for the `delete` operation.
type: object
QueryResponse:
description: The response for the `query` operation. These are the matches found for a particular query vector. The matches are ordered from most similar to least similar.
type: object
properties:
results:
deprecated: true
description: DEPRECATED. The results of each query. The order is the same as `QueryRequest.queries`.
type: array
items:
$ref: '#/components/schemas/SingleQueryResults'
matches:
description: The matches for the vectors.
type: array
items:
$ref: '#/components/schemas/ScoredVector'
namespace:
description: The namespace for the vectors.
type: string
usage:
$ref: '#/components/schemas/Usage'
FetchByMetadataRequest:
description: The request for the `fetch_by_metadata` operation.
type: object
properties:
namespace:
example: example-namespace
description: The namespace to fetch vectors from.
type: string
filter:
example:
genre:
$in:
- comedy
- documentary
- drama
year:
$eq: 2019
description: Metadata filter expression to select vectors. See [Understanding metadata](https://docs.pinecone.io/guides/index-data/indexing-overview#metadata).
type: object
limit:
example: 12
description: Max number of vectors to return.
default: 100
type: integer
format: int64
minimum: 1
paginationToken:
example: Tm90aGluZyB0byBzZWUgaGVyZQo=
description: Pagination token to continue a previous listing operation.
type: string
SearchRecordsVector:
type: object
properties:
values:
$ref: '#/components/schemas/VectorValues'
sparse_values:
example:
- 0.1
- 0.2
- 0.3
description: The sparse embedding values.
type: array
items:
type: number
format: float
sparse_indices:
example:
- 10
- 3
- 156
description: The sparse embedding indices.
type: array
items:
type: integer
format: int32
minimum: 0
NamespaceSummary:
description: A summary of the contents of a namespace.
type: object
properties:
vectorCount:
example: 50000
description: The number of vectors stored in this namespace. Note that updates to this field may lag behind updates to the underlying index and corresponding query results, etc.
type: integer
format: int64
Pagination:
type: object
properties:
next:
example: Tm90aGluZyB0byBzZWUgaGVyZQo=
type: string
Usage:
type: object
properties:
readUnits:
example: 5
description: The number of read units consumed by this operation.
type: integer
format: int64
UpdateResponse:
description: The response for the `update` operation.
type: object
properties:
matchedRecords:
example: 42
description: The number of records that matched the filter (if a filter was provided).
type: integer
format: int32
Hit:
example:
_id: example-record-1
_score: 0.9281134605407715
fields:
data: your example text
more_data:
text: your example text
description: A record whose vector values are similar to the provided search query.
type: object
properties:
_id:
description: The record id of the search hit.
type: string
_score:
description: The similarity score of the returned record.
type: number
format: float
fields:
description: The selected record fields associated with the search hit.
type: object
required:
- _id
- _score
- fields
DeleteRequest:
description: The request for the `delete` operation.
type: object
properties:
ids:
example:
- id-0
- id-1
description: Vectors to delete.
type: array
items:
type: string
minLength: 1
maxLength: 1000
deleteAll:
example: false
description: This indicates that all vectors in the index namespace should be deleted.
default: false
type: boolean
namespace:
example: example-namespace
description: The namespace to delete vectors from, if applicable.
type: string
filter:
description: If specified, the metadata filter here will be used to select the vectors to delete. This is mutually exclusive with specifying ids to delete in the ids param or using delete_all=True. See [Delete data](https://docs.pinecone.io/guides/manage-data/delete-data#delete-records-by-metadata).
type: object
FetchByMetadataResponse:
example:
namespace: example-namespace
pagination:
next: Tm90aGluZyB0byBzZWUgaGVyZQo=
usage:
readUnits: 5
vectors:
id-1:
id: id-1
metadata:
genre: documentary
year: 2019
values:
- 1.0
- 1.5
id-2:
id: id-2
metadata:
genre: comedy
year: 2019
values:
- 2.0
- 1.0
description: The response for the `fetch_by_metadata` operation.
type: object
properties:
vectors:
description: The fetched vectors, in the form of a map between the fetched ids and the fetched vectors
type: object
additionalProperties:
$ref: '#/components/schemas/Vector'
namespace:
example: example-namespace
description: The namespace of the vectors.
default: ''
type: string
usage:
$ref: '#/components/schemas/Usage'
pagination:
$ref: '#/components/schemas/Pagination'
ListResponse:
description: The response for the `list` operation.
type: object
properties:
vectors:
example:
- id: document1#abb
- id: document1#abc
title: A list of ids
type: array
items:
$ref: '#/components/schemas/ListItem'
pagination:
$ref: '#/components/schemas/Pagination'
namespace:
example: example-namespace
description: The namespace of the vectors.
type: string
usage:
$ref: '#/components/schemas/Usage'
FetchResponse:
example:
namespace: example-namespace
usage:
readUnits: 1
vectors:
id-1:
id: id-1
values:
- 1.0
- 1.5
id-2:
id: id-2
values:
- 2.0
- 1.0
description: The response for the `fetch` operation.
type: object
properties:
vectors:
title: The fetched vectors, in the form of a map between the fetched ids and the fetched vectors
type: object
additionalProperties:
$ref: '#/components/schemas/Vector'
namespace:
example: example-namespace
description: The namespace of the vectors.
type: string
usage:
$ref: '#/components/schemas/Usage'
IndexDescription:
example:
dimension: 1024
index_fullness: 0.4
namespaces:
? ''
: vectorCount: 50000
example-namespace-2:
vectorCount: 30000
totalVectorCount: 80000
description: The response for the `describe_index_stats` operation.
type: object
properties:
namespaces:
description: A mapping for each namespace in the index from the namespace name to a summary of its contents. If a metadata filter expression is present, the summary will reflect only vectors matching that expression.
type: object
additionalProperties:
$ref: '#/components/schemas/NamespaceSummary'
dimension:
example: 1024
description: The dimension of the indexed vectors. Not specified if `sparse` index.
type: integer
format: int64
indexFullness:
example: 0.4
description: 'The fullness of the index, regardless of whether a metadata filter expression was passed. The granularity of this metric is 10%.
Serverless indexes scale automatically as needed, so index fullness is relevant only for pod-based indexes.
The index fullness result may be inaccurate during pod resizing; to get the status of a pod resizing process, use [`describe_index`](https://docs.pinecone.io/reference/api/2024-10/control-plane/describe_index).'
type: number
format: float
totalVectorCount:
example: 80000
description: The total number of vectors in the index, regardless of whether a metadata filter expression was passed
type: integer
format: int64
metric:
example: cosine
description: The metric used to measure similarity.
type: string
vectorType:
example: dense
description: The type of vectors stored in the index.
type: string
memory_fullness:
description: The amount of memory used by a dedicated index
type: number
format: float
storage_fullness:
description: The amount of storage used by a dedicated index
type: number
format: float
rpcStatus:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
details:
type: array
items:
$ref: '#/components/schemas/protobufAny'
QueryRequest:
description: The request for the `query` operation.
type: object
properties:
namespace:
example: example-namespace
description: The namespace to query.
type: string
topK:
example: 10
description: The number of results to return for each query.
type: integer
minimum: 1.0
maximum: 10000.0
required:
- top_k
format: int64
filter:
example:
genre:
$in:
- comedy
- documentary
- drama
year:
$eq: 2019
description: The filter to apply. You can use vector metadata to limit your search. See [Understanding metadata](https://docs.pinecone.io/guides/index-data/indexing-overview#metadata).
type: object
includeValues:
example: true
description: Indicates whether vector values are included in the response. For on-demand indexes, setting this to `true` may increase latency, especially with higher `topK` values, because vector values are retrieved from object storage. Unless you need vector values, set this to `false` for better performance.
default: false
type: boolean
includeMetadata:
example: true
description: Indicates whether metadata is included in the response as well as the ids.
default: false
type: boolean
queries:
deprecated: true
description: DEPRECATED. Use `vector` or `id` instead.
type: array
items:
$ref: '#/components/schemas/QueryVector'
minLength: 1
maxLength: 10
vector:
example:
- 0.1
- 0.2
- 0.3
- 0.4
- 0.5
- 0.6
- 0.7
- 0.8
description: The query vector. This should be the same length as the dimension of the index being queried. Each `query` request can contain only one of the parameters `id` or `vector`.
type: array
items:
type: number
format: float
minLength: 1
maxLength: 20000
sparseVector:
$ref: '#/components/schemas/SparseValues'
id:
example: example-vector-1
description: The unique ID of the vector to be used as a query vector. Each request can contain either the `vector` or `id` parameter.
type: string
maxLength: 512
scanFac
# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pinecone/refs/heads/main/openapi/pinecone-vector-operations-api-openapi.yml