---
title: "Complete Multipart Upload"
method: POST
path: "/open/partner/files/upload/complete-upload"
tags: ["File Upload API"]
---

# Complete Multipart Upload

`POST /open/partner/files/upload/complete-upload`

Merge the uploaded parts into a single file.

Submit the `file_id` and `upload_id` from generate-presigned-urls along with the `ETag` collected from each part's `PUT` response.<Note>The returned `DownloadUrl` is valid for **24 hours**.</Note>

## Headers

- `Content-Type` string, required

## Request body

- CompleteUploadRequest
  - `file_id` string, required — The `FileId` returned by generate-presigned-urls.
  - `upload_id` string, required — The `UploadId` returned by generate-presigned-urls.
  - `part_list` CompletedPart[], required — The part number and `ETag` collected from each chunk's PUT response.
    - `PartNumber` integer, required — 1-based index of the chunk.
    - `ETag` string, required — The `ETag` returned in the response header of the chunk's PUT to S3.
  - `filetype` string, required — File extension of the audio file.
  - `file_md5` string — Hex-encoded MD5 of the full file, used to verify integrity. Optional.

## Response `200`

Upload completed and parts merged

- CompleteUploadResponse
  - `FileId` string — Identifier for the uploaded file.
  - `FileType` string — File extension of the audio file.
  - `DownloadUrl` string — Pre-signed download URL for the merged file, valid ~24h. Pass as `file_url` to the Transcription API.
  - `FileMd5` string — Hex-encoded MD5 of the merged file.

---

[API](https://skmtc.net/plaud/apis/authentication-tokens.md) · [All operations](https://skmtc.net/plaud/apis/authentication-tokens/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/plaud/authentication-tokens/revisions/062a14150fe6/schema)
