Finalize a large (multipart) file upload

Finalize an upload session created by Initiate large upload (POST /v2/files/large-upload). The parts array must include every part that was uploaded, with the etag returned by the storage backend for each part PUT.

On success the file is marked as uploaded and returned in the response. The file's processing status may still be pending while downstream processing runs. A 502 response indicates the storage backend rejected the finalization (for example, a part etag mismatch) — the client may retry.

Idempotent for already-DONE files: a retry of a previously-successful complete call (or a complete call arriving after the auto-finalize backstop has already finalised the row) returns 200 with the file metadata instead of 409. FAILED / CANCELLED still return 409.

To cancel an in-progress upload, simply stop calling the API: abandoned file records are garbage-collected after 24 hours, and any incomplete S3 multipart parts are reaped by an S3 bucket lifecycle rule.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Unique identifier of the file.

Body Params

Body

string
required
length ≥ 1

Multipart upload_id returned by the large-upload initiate endpoint.

parts
array of objects
required
length between 1 and 10000

All uploaded parts, with their part_number and etag. Must include every part that was uploaded.

parts*
integer
required
1 to 10000

1-indexed part number that was uploaded.

string
required
length ≥ 1

ETag returned by the storage backend when the part was uploaded.

Responses

Language
Credentials
Bearer
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json