---
title: "Upload Media File"
method: POST
path: "/v1/marketplace/media/{asset_id}/upload"
tags: ["marketplace"]
---

# Upload Media File

`POST /v1/marketplace/media/{asset_id}/upload`

## Request

- Base URL: `https://api.kodik.ru` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kodik.ru/v1/marketplace/media/{asset_id}/upload`
- Auth: HTTP bearer

Proxied upload: the browser POSTs the file to the backend, which streams it to
S3 server-side. Use this instead of the presigned PUT + /complete pair when the
bucket has no browser CORS configured. Create the asset first via
/media/upload-session, then POST the file here (no /complete call needed).

## Path parameters

- `asset_id` string, required

## Response `200`

Successful Response

- MediaAssetResponse
  - `assetId` string, required
  - `status` 'pending' | 'uploading' | 'processing' | 'ready' | 'failed', required
  - `durationSeconds` integer, nullable
  - `playbackUrl` string, nullable
  - `thumbnailUrl` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kodik/apis/kodik-api.md) · [All operations](https://skmtc.dev/kodik/apis/kodik-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kodik/apis/kodik-api/revisions/328a4ade7c0a?raw)
