Upload a file
An identifier will be generated. To specify a file identifier or to replace file content, use the upsert endpoint (PUT /files/{assistant_name}/{assistant_file_id}).
This operation is asynchronous. The response includes an operation ID that can be used to poll for completion via the describe operation endpoint.
For guidance and examples, see Manage files.
PINECONE_API_KEY="YOUR_API_KEY"
ASSISTANT_NAME="example-assistant"
LOCAL_FILE_PATH="/Users/jdoe/Downloads/example_file.txt"
curl -X POST "https://prod-1-data.ke.pinecone.io/assistant/files/$ASSISTANT_NAME" \
-H "Api-Key: $PINECONE_API_KEY" \
-H "X-Pinecone-Api-Version: 2026-04" \
-F "file=@$LOCAL_FILE_PATH" \
-F 'metadata={"published": "2024-01-01", "document_type": "manuscript"}'{
"id": "op-1234-abcd-5678",
"operation_type": "upload_file",
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "Processing",
"created_on": "2025-10-01T12:30:00Z",
"percent_complete": 0
}POST /files/{assistant_name}
Parameters
Section titled “Parameters”X-Pinecone-Api-Version(header, string, required) — Required date-based version headerassistant_name(path, string, required) — The name of the assistant to upload files to.multimodal(query, string) — Optional flag to opt in to multimodal file processing (PDFs only). Can be eithertrueorfalse. Default isfalse.
Responses
Section titled “Responses”202— File upload accepted. Processing has started.400— Bad request. The request body included invalid request parameters.401— Unauthorized. Possible causes: Invalid API key.404— Assistant not found.500— Internal server error.