This page shows you how to use the list operation to list the IDs of records in an index namespace. You can list the IDs of all records in a namespace or just the records with a common ID prefix.

Using list to get record IDs and not the associated data is a cheap and fast way to check upserts.

The list operation is supported only for serverless indexes.

List the IDs of all records in a namespace

To list the IDs of all records in the namespace of a serverless index, pass only the namespace parameter:

List the IDs of records with a common prefix

ID prefixes enable you to query segments of content. Use the list operation to list all of the records with the common prefix. For more details, see Use ID prefixes.

Paginate through results

The list operation returns up to 100 IDs per page at a time by default. If the limit parameter is passed, list returns up to that number of IDs per page instead. For example, if limit=3, up to 3 IDs be returned per page. Whenever there are additional IDs to return, the response also includes a pagination_token for fetching the next page of IDs.

Implicit pagination

When using the Python client, list paginates automatically.

from pinecone.grpc import PineconeGRPC as Pinecone

pc = Pinecone(api_key='YOUR_API_KEY')
index = pc.Index("pinecone-index")

for ids in index.list(namespace='ns1'):

# Response:
# ['doc1#chunk1', 'doc1#chunk2', 'doc1#chunk3']
# ['doc1#chunk4', 'doc1#chunk5', 'doc1#chunk6']
# ...

Manual pagination

When using the Node.js client, Java client, or REST API, you must manually fetch each page of results. You can also manually paginate with the Python client using list_paginated().

Then, to get the next batch of IDs, use the returned pagination_token:

When there are no more IDs to return, the response does not includes a pagination_token: