Skip to main content
POST

Authorizations

Api-Key
string
header
required

An API Key is required to call Pinecone APIs. Get yours from the console.

Headers

X-Pinecone-Api-Version
string
default:2026-07
required

Required date-based version header

Path Parameters

namespace
string
required

The namespace to update documents in.

Body

application/json

Set either documents or filter. A filter needs a non-empty set_fields or remove_fields.

documents
object[]
required

The list of partial document updates to apply. At most 1000 updates, or 96 on an index whose schema declares embed or sparse_embed. Mutually exclusive with filter, and with a non-empty set_fields or remove_fields.

maxItems states the general limit. A client that batches updates must size batches at 96 when any field of the index schema declares embed or sparse_embed.

Required array length: 1 - 1000 elements
filter
object

A metadata filter expression selecting the documents to patch with set_fields and remove_fields. Must not be empty; an empty filter is rejected rather than matching every document. Text-match operators ($match_phrase, $match_all, $match_any) are not supported here, since documents are selected on metadata alone. Mutually exclusive with documents.

Example:
set_fields
object

The fields to set on every document matching filter, and the values to set them to. Only metadata fields can be set here; every data field is refused, that is, vector fields, full-text-searchable text and embedded text, not only fields that declare embed or sparse_embed. Update those per ID with documents. When non-empty, only valid together with filter; an empty object asks for no change and is ignored.

Example:
remove_fields
string[]

The names of the fields to remove from every document matching filter. Only metadata fields can be removed here; data fields are refused, as in set_fields. When non-empty, only valid together with filter; an empty list asks for no change and is ignored.

Example:

Response

The update request was successfully accepted.

The response for the update_documents operation.

matched_records
integer<int32>

The number of documents that matched filter when the update was accepted. Only returned for a filtered update; a per-ID update reports no count. The patch is applied asynchronously, so this is a point-in-time count rather than a guarantee of the number of documents ultimately patched.

Example:

42

usage
object

Usage information for the upsert_documents and update_documents operations.

Present only when the request embedded text, that is, when it wrote text to a field whose schema declares embed or sparse_embed. A request that embedded nothing returns no usage.

Example: