Skip to main content
Pinecone Docs
current

Search documentation

Type to search this documentation.

Upsert a file

Create or replace a file in the specified assistant. If a file with the given assistant_file_id already exists, it will be replaced with the new file. If it doesn't exist, a new file will be created with that identifier.

This operation is asynchronous. The file processing will occur in the background.

For guidance and examples, see Manage files.

curl
PINECONE_API_KEY="YOUR_API_KEY"
ASSISTANT_NAME="example-assistant"
FILE_ID="my-custom-file-id"
LOCAL_FILE_PATH="/Users/jdoe/Downloads/example_file.txt"

curl -X PUT "https://prod-1-data.ke.pinecone.io/assistant/files/$ASSISTANT_NAME/$FILE_ID" \
  -H "Api-Key: $PINECONE_API_KEY" \
  -H "X-Pinecone-Api-Version: 2026-04" \
  -F "file=@$LOCAL_FILE_PATH"
curl
{
  "id": "op-1234-abcd-5678",
  "operation_type": "upsert_file",
  "file_id": "my-custom-file-id",
  "status": "Processing",
  "created_on": "2025-10-01T12:30:00Z",
  "percent_complete": 0
}

PUT /files/{assistant_name}/{assistant_file_id}

Api-Keystringrequired

Pinecone API Key

Typestring
X-Pinecone-Api-Versionstringrequired

Required date-based version header

Typestring
Default2026-04
assistant_namestringrequired

The name of the assistant to upload files to.

Typestring
assistant_file_idstringrequired

The identifier of the file to be created or replaced. Must be 1-128 characters long and consist only of alphanumeric characters, hyphens (-), or underscores ().

Required string length: 1 - 128

Typestring
multimodal?string

Optional flag to opt in to multimodal file processing (PDFs only). Can be either true or false. Default is false.

Typestring

The desired file to be uploaded and processed into the assistant.

filestringrequired

The file to upload.

Typestring
metadata?object | null

Optional metadata associated with the file. This metadata can be used to filter files when listing them or to restrict search results when querying the assistant. Maximum size is 16KB.

Typeobject | null

202 — File upload has been accepted for processing. The file will be created if it doesn't exist, or replaced if it already exists. The operation will complete asynchronously.

Describes the status of an ongoing or completed server operation.

idstringrequired

The unique identifier for the operation.

Example: op-1234-abcd-5678

Typestring
operation_typestringrequired

The kind of action represented by this operation, such as uploading or deleting a file.

Example: upload_file

Typestring
file_id?string | null

The identifier of the file being operated on.

Example: my-file-id-123

Typestring | null
statusstringrequired

The status of the operation. - Processing: The operation is in progress. - Completed: The operation finished successfully. - Failed: The operation failed. See error_message for details.

Example: Processing

Typestring
created_onstringrequired

The timestamp when the operation was created, in ISO 8601 format.

Example: 2025-10-01T12:30:00.000Z

Typestring
completed_on?string | null

The timestamp when the operation completed or failed, in ISO 8601 format. Present only when status is Completed or Failed.

Example: 2025-10-01T12:35:00.000Z

Typestring | null
percent_complete?integer

The progress made by the operation, as a percentage (0-100).

Required range: 0 <= x <= 100. Example: 42

Typeinteger
error_message?string | null

A message describing the error that caused the operation to fail. Present only when status is Failed.

Example: File processing failed: unsupported file format.

Typestring | null
ingestion_units?number | null

The number of ingestion units consumed by this operation. Present only when status is Completed for file ingestion operations.

Example: 50

Typenumber | null
Suggest an edit

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

Export
Documentation menu