# Upload a large file using multipart upload
Source: https://docs.file.ai/api-reference/uploads/upload-a-large-file-using-multipart-upload

> Initiate a multipart upload for large files (typically >100MB). This will return presigned URLs for each part.

post /prod/v1/files/upload/multipart

Initiate a multipart upload for large files (typically >100MB). This will return presigned URLs for each part.

Each presigned URL is valid for 900 seconds (15 minutes) and can be used multiple times.

The workflow is:
1. Call this endpoint to get presigned URLs for each part
2. Upload each part to its respective presigned URL using PUT requests
3. Call the complete multipart upload endpoint with all part ETags

The input should contain:
- `fileName`: the name of the file to be uploaded
- `fileType`: the MIME type of the file
- `fileSize`: the size of the file in MB
- `partSizeLimit`: (optional) the size limit for each part in MB
- `isSplit`: whether the file should be split after upload (optional, default: false)
- `isSplitExcel`: whether to split Excel files by worksheets (optional, default: false)
- `callbackURL`: the url that will be called after processing (optional)
- `ocrModel`: the OCR model to use (optional)
- `schemaLocking`: whether the schema should be locked (optional)
- `directoryId`: the directory id where the file should be uploaded (optional)
- `destinationPath`: slash-delimited folder path where the file should be placed (e.g. "mammals/walrus"). Folders are auto-created if they do not exist. Can be used together with directoryId (optional)
- `blueprintId`: the file type id (from `GET /file-type`) to use for every document in the file, skipping auto-classification. Must be an approved file type in your organization or a built-in one (optional)
- `isEphemeral`: whether the file and all related data should be deleted after the file is processed, must be one of true or false (optional, default: false)
- `pageCount`: page count of the file, used for early validation against page limits (optional)
