---
title: "Multipart Complete"
method: POST
path: "/api/storage/multipart/complete"
tags: ["storage"]
---

# Multipart Complete

`POST /api/storage/multipart/complete`

## Request

- Base URL: `https://api.tintin-x.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tintin-x.com/api/storage/multipart/complete`
- Auth: HTTP bearer

Finalize the multipart upload. S3 validates every part's ETag and
rejects gaps or out-of-order sequences — the server-side sort is a
defensive belt-and-braces (browser concurrent queue may finish parts
out of order and hand them back in that order).

## Request body

- MultipartCompleteRequest
  - `file_id` string, uuid, required
  - `upload_id` string, required
  - `s3_key` string, required
  - `parts` MultipartPartETag[], required
    - `PartNumber` integer, required
    - `ETag` string, required

## Response `200`

Successful Response

- FileResponse
  - `id` string, uuid, required
  - `filename` string, required
  - `content_type` string, required
  - `size_bytes` integer, required
  - `agent_id` string, uuid, nullable, required
  - `agent_name` string, nullable
  - `source` string, required
  - `folder_id` string, uuid, nullable, required
  - `description` string, nullable
  - `metadata` object, nullable
  - `share_mode` string, required
  - `share_token` string, uuid, nullable, required
  - `share_url` string, nullable
  - `cdn_url` string, nullable
  - `created_at` string, date-time, required
  - `download_url` string, nullable
  - `is_previewable` boolean
  - `s3_key` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tintin-x/apis/tintin-api.md) · [All operations](https://skmtc.dev/tintin-x/apis/tintin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tintin-x/apis/tintin-api/revisions/8839a8d0a66c?raw)
