---
title: "Storage Confirm"
method: POST
path: "/api/platform/storage/confirm"
tags: ["platform-sdk"]
---

# Storage Confirm

`POST /api/platform/storage/confirm`

## 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/platform/storage/confirm`
- Auth: HTTP bearer

Mark a presigned PUT complete after the browser finishes uploading.

## Request body

- StorageConfirmRequest
  - `file_id` string, uuid, required
  - `s3_key` string, required

## Response `200`

Successful Response

- StorageFileResponse: One storage_files row, hydrated with a short-lived GET URL when the caller is reading. Same shape returned from confirm + get + list so apps have one type to reason about.
  - `file_id` string, uuid, required
  - `filename` string, required
  - `content_type` string, required
  - `size_bytes` integer, required
  - `s3_key` string, required
  - `kind` string, nullable
  - `app_slug` string, required
  - `folder_path` string, required
  - `download_url` string, nullable
  - `created_at` string, date-time, required
  - `is_confirmed` boolean, required

## 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)
