Skip to main content
Pinecone Docs
current

Search documentation

Type to search this documentation.

Fetch documents

Fetch documents from a namespace. Returns the specified fields for each document. Exactly one of ids or filter must be specified.

  • ids: Fetch the documents with the given IDs.
  • filter: Fetch every document matching a metadata filter expression. Results are returned a page at a time, holding limit documents per page (100 by default, 10000 at most). When there are more documents to return, the response includes a pagination token you can pass back as pagination_token to retrieve the next page. When no pagination token is returned, there are no more documents to fetch.
Python
# pip install --upgrade pinecone
import os
from pinecone import Pinecone

pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])
index = pc.Index(name="articles")

NAMESPACE = "example-namespace"

# Fetch by IDs
response = index.documents.fetch(
    namespace=NAMESPACE,
    ids=["doc1", "doc2"],
    include_fields=["title", "body", "category"],
)
for doc_id, doc in response.documents.items():
    print(doc_id, getattr(doc, "title", ""))

# Fetch by metadata filter, paging through all matches
pagination_token = None
while True:
    response = index.documents.fetch(
        namespace=NAMESPACE,
        filter={"category": {"$eq": "news"}},
        include_fields=["title", "body", "category"],
        pagination_token=pagination_token,
    )
    for doc_id, doc in response.documents.items():
        print(doc_id, getattr(doc, "title", ""))
    pagination = getattr(response, "pagination", None)
    if not pagination or not getattr(pagination, "next", None):
        break
    pagination_token = pagination.next
curl
PINECONE_API_KEY="YOUR_API_KEY"
INDEX_HOST="articles-abc123.svc.us-east-1.pinecone.io"

# EXAMPLE REQUEST 1: Fetch by IDs
curl "https://$INDEX_HOST/namespaces/__default__/documents/fetch" \
  -H "Api-Key: $PINECONE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Pinecone-Api-Version: 2026-07" \
  -d '{
    "ids": ["doc1", "doc2"],
    "include_fields": ["title", "body", "category"]
  }'

# EXAMPLE REQUEST 2: Fetch by metadata filter
curl "https://$INDEX_HOST/namespaces/__default__/documents/fetch" \
  -H "Api-Key: $PINECONE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Pinecone-Api-Version: 2026-07" \
  -d '{
    "filter": { "category": { "$eq": "news" } },
    "include_fields": ["title", "body", "category"]
  }'

POST /namespaces/{namespace}/documents/fetch

200
{
  "documents": {
    "doc-1": {
      "_id": "doc-1",
      "title": "Introduction to Machine Learning"
    }
  },
  "namespace": "my-namespace",
  "usage": {
    "egress_bytes": 1024,
    "read_units": 5
  }
}
400
{
  "error": {
    "code": "INVALID_ARGUMENT",
    "message": "No 'ids' or 'filter' provided in the document fetch request. Provide at least one document ID in 'ids', or a metadata filter in 'filter'."
  },
  "status": 400
}
4XX
{
  "error": {
    "code": "INVALID_ARGUMENT",
    "message": "No 'ids' or 'filter' provided in the document fetch request. Provide at least one document ID in 'ids', or a metadata filter in 'filter'."
  },
  "status": 400
}
5XX
{
  "error": {
    "code": "INVALID_ARGUMENT",
    "message": "No 'ids' or 'filter' provided in the document fetch request. Provide at least one document ID in 'ids', or a metadata filter in 'filter'."
  },
  "status": 400
}
Api-Keystringrequired

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

X-Pinecone-Api-Versionstringrequired

Required date-based version header

Typestring
Default2026-07
namespacestringrequired

The namespace to fetch documents from.

Typestring
ids?string[]

A list of document IDs to fetch. Mutually exclusive with filter.

Typestring[]
filter?object

A metadata filter expression selecting the documents to fetch. Must not be empty; an empty filter is rejected rather than matching every document. Mutually exclusive with ids.

Typeobject
include_fields?string[]

The document fields to return on each document. When omitted or empty, all fields are returned; ['*'] also returns every field.

Typestring[]
pagination_token?string

A pagination token from a previous fetch response, used to retrieve the next page of matching documents. Only valid together with filter.

Typestring
limit?integer

The maximum number of documents to return per page. Only applies to a fetch by filter; a fetch by ids is already bounded by ids and ignores an in-range value, but a value outside 1-10000 is rejected on either form. Defaults to 100.

Required range: 1 <= x <= 10000. Example: 100

Typeinteger
Default100

200 — A successful fetch response.

The response for the fetch_documents operation.

documentsobjectrequired

A map of document IDs to their fetched documents.

Typeobject
pagination?object
Show child attributes
nextstringrequired

Example: Tm90aGluZyB0byBzZWUgaGVyZQo=

Typestring
namespacestringrequired

The namespace the documents were fetched from: the request's namespace, or the alias's target namespace when the request named a namespace alias.

Example: my-namespace

Typestring
usageobjectrequired

Usage information for the fetch_documents operation.

Typeobject
Show child attributes
read_unitsintegerrequired

The number of read units consumed by this operation.

Example: 5

Typeinteger
egress_bytes?integer

The billed egress for this response, in bytes. Measured on the encoded response payload.

Required range: 0 <= x. Example: 1024

Typeinteger
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu