---
title: "Finalize a media upload after presigned PUT"
method: POST
path: "/workspace/media/upload/finalize"
tags: ["Media Library"]
---

# Finalize a media upload after presigned PUT

`POST /workspace/media/upload/finalize`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/workspace/media/upload/finalize`
- Auth: API key in header `Authorization`

Finalize a media upload after presigned PUT.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `storage_key` string, required
  - `file_name` string, required
  - `content_type` string, required
  - `file_size_bytes` number, required
  - `content_hash_sha256` string
  - `auto_process_enabled` boolean
  - `auto_transcribe` boolean
  - `auto_describe_after_transcribe` boolean
  - `auto_suggest_shorts` boolean

## Response `200`

Successful response

- object
  - `id` string, required
  - `name` string, required
  - `asset_type` string, required
  - `content_hash_sha256` string, required
  - `file_size_bytes` number, required
  - `mime_type` string, required
  - `processing_status` string, required
  - `processing_run_id` string, nullable, required
  - `deduped` boolean, required
  - `follow_up` object, required
    - `transcription_requested` boolean, required
    - `description_requested` boolean, required
    - `short_suggestions_requested` boolean, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `500`: Internal server error

---

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