---
title: "Create Signed Upload"
method: POST
path: "/chat/attachments/signed-upload"
tags: ["chat"]
---

# Create Signed Upload

`POST /chat/attachments/signed-upload`

## Request

- Base URL: `https://api.projectindi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.projectindi.com/chat/attachments/signed-upload`
- Auth: none declared

Issue Supabase Storage signed upload URLs for a video + its poster.

Authentication: JWT required (user must have access to child_id via RLS on documents).

## Request body

- SignedUploadBody
  - `child_id` string, uuid4, required
  - `mime_type` string, required
  - `file_size` integer, required
  - `duration_seconds` number, required
  - `file_name` string, nullable
  - `poster_mime_type` string, required
  - `poster_file_size` integer, required

## Response `200`

Successful Response

- SignedUploadResponse
  - `document_id` string, required
  - `video` SignedUploadSlot, required
    - `signed_url` string, required
    - `storage_path` string, required
    - `token` string, nullable
  - `poster` SignedUploadSlot, required
    - `signed_url` string, required
    - `storage_path` string, required
    - `token` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles.md) - [All operations](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/llms.txt) - [OpenAPI document](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/revisions/25a7813e21fd?raw)
