---
title: "Upload a file"
method: POST
path: "/files/{assistant_name}"
tags: ["Manage Assistants"]
---

# Upload a file

`POST /files/{assistant_name}`

Upload a file to the specified assistant.

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](https://docs.pinecone.io/guides/assistant/manage-files#upload-a-local-file).

## Path parameters

- `assistant_name` string, required

## Query parameters

- `multimodal` string

## Headers

- `X-Pinecone-Api-Version` string, required

## Response `202`

File upload accepted. Processing has started.

- AssistantDataOperationModel — The OperationModel describes the status of an ongoing or completed server operation.
  - `id` string, required — The unique identifier for the operation.
  - `operation_type` string, required — The kind of action represented by this operation, such as uploading or deleting a file.
  - `file_id` string, nullable — The identifier of the file being operated on.
  - `status` string, required — 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.
  - `created_on` string, date-time, required — The timestamp when the operation was created, in ISO 8601 format.
  - `completed_on` string, date-time, nullable — The timestamp when the operation completed or failed, in ISO 8601 format. Present only when status is `Completed` or `Failed`.
  - `percent_complete` integer — The progress made by the operation, as a percentage (0-100).
  - `error_message` string, nullable — A message describing the error that caused the operation to fail. Present only when status is `Failed`.
  - `ingestion_units` number, double, nullable — The number of ingestion units consumed by this operation. Present only when status is `Completed` for file ingestion operations.

## Other responses

- `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.

---

[API](https://skmtc.net/pinecone/apis/pinecone-api.md) · [All operations](https://skmtc.net/pinecone/apis/pinecone-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pinecone/pinecone-api/versions/35876583485d/schema)
