---
title: "Complete Media Upload"
method: POST
path: "/api/public/media/uploads/{media_id}/complete"
tags: ["public", "media"]
---

# Complete Media Upload

`POST /api/public/media/uploads/{media_id}/complete`

## Request

- Base URL: `https://api.electricair.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.electricair.io/api/public/media/uploads/{media_id}/complete`
- Auth: none declared

## Path parameters

- `media_id` integer, required

## Request body

- MediaUploadActionRequest
  - `deal_id` string, required

## Response `200`

OK

- MediaResponse
  - `id` integer, required
  - `deal_id` string, required
  - `tag` string, required
  - `s3_url` string, required
  - `s3_key` string, required
  - `upload_status` string
  - `is_playable` boolean
  - `created_at` string, required
  - `updated_at` string, required
  - `media_type` 'video' | 'image' | 'text', required
  - `caption` string, nullable
  - `original_filename` string, nullable
  - `content_type` string, nullable
  - `file_size_bytes` integer, nullable
  - `upload_error_code` string, nullable
  - `upload_error_message` string, nullable
  - `uploaded_at` string, nullable
  - `transcode_status` string
  - `transcoded_s3_key` string, nullable
  - `transcode_error_message` string, nullable
  - `playback_state` string
  - `lifecycle_state` 'pending_upload' | 'processing' | 'ready' | 'ready_degraded' | 'upload_failed' | 'canceled'

---

[API](https://skmtc.dev/electricair/apis/electric-air-autoquote-api.md) - [All operations](https://skmtc.dev/electricair/apis/electric-air-autoquote-api/llms.txt) - [OpenAPI document](https://skmtc.dev/electricair/apis/electric-air-autoquote-api/revisions/a13d832a5676?raw)
