Skip to main content
POST
Complete a multipart upload
Complete a multipart upload after all parts have been uploaded to S3. This is the final step in the multipart upload workflow.
After uploading all parts using the presigned URLs from the initiate endpoint, call this endpoint with the ID, key, and all part ETags to finalize the upload.

How It Works

1

1. Upload All Parts

Upload each part to its respective presigned URL using PUT requests
2

2. Collect ETags

Extract the ETag from the response headers of each part upload
3

3. Complete Upload

Call this endpoint with all part ETags to finalize the multipart upload

Request Parameters

Request Body

The request body must contain a JSON object with the following properties:

Parts Array Structure

Each object in the parts array should contain:

Complete Workflow Example

  1. Initiate Upload: Call /prod/v1/files/upload/multipart to get presigned URLs
  2. Upload Parts: Use PUT requests to upload each part to its presigned URL
  3. Complete Upload: Call this endpoint with all part ETags to finalize
After completion, the file will be automatically processed according to the parameters specified during initiation (OCR model, schema locking, etc.).
This endpoint accepts an optional Idempotency-Key request header so a retry cannot apply the change twice. See Idempotent requests.

Authorizations

x-api-key
string
header
required

API key for authentication

Headers

Idempotency-Key
string

Optional opaque key (max 255 chars, UUIDv4 recommended) making this request idempotent for 24h: a retry with the same key and body replays the original response with Idempotent-Replayed: true.

Body

application/json
id
string
required

ID from the multipart upload initiation

Example:

"upload_abc123xyz"

key
string
required

S3 key from the multipart upload initiation

Example:

"org_123/workspace_456/device/file_abc/document.pdf"

parts
object[]
required

Array of completed parts with part numbers and ETags

Example:

Response

Multipart upload completed successfully