---
title: "Upload inspected workspace media"
method: POST
path: "/api/v1/media"
tags: ["Media"]
---

# Upload inspected workspace media

`POST /api/v1/media`

## Request

- Base URL: `https://blendduck.com`
- URL: `https://blendduck.com/api/v1/media`
- Auth: HTTP bearer

Upload inspected workspace media.

## Headers

- `X-Request-ID` string
- `Idempotency-Key` string

## Response `201`

Uploaded media

- MediaBatchResponse
  - `data` object[], required
    - `id` string, uuid, required
    - `kind` 'image' | 'video', required
    - `url` string, required
    - `thumbnailUrl` string, nullable, required
    - `fileName` string, nullable, required
    - `mimeType` string, nullable, required
    - `bytes` integer, nullable, required
    - `width` integer, nullable, required
    - `height` integer, nullable, required
    - `animationFrameCount` integer, nullable
    - `durationSeconds` number, nullable, required
    - `frameRate` number, nullable
    - `videoCodec` 'av1' | 'h264' | 'h265' | 'vp8' | 'vp9', nullable
    - `createdAt` string, date-time, required
  - `meta` object, required
    - `requestId` string, required

## Other responses

- `400`: Invalid query, request body, JSON, or request identity.
- `401`: Missing or invalid authentication.
- `403`: Authentication lacks the required role or API-key scope.
- `404`: Resource or tenant path is hidden or absent.
- `409`: Lifecycle, idempotency, or concurrent-state conflict.
- `413`: Upload or request exceeds its configured bound.
- `415`: Request media type is unsupported.
- `422`: Valid syntax cannot perform the domain operation.
- `429`: The API-key operation exhausted its fixed-window quota.
- `500`: Internal or upstream failure.

---

[API](https://skmtc.dev/blendduck/apis/blendduck-public-api.md) · [All operations](https://skmtc.dev/blendduck/apis/blendduck-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blendduck/apis/blendduck-public-api/revisions/3b49354699da?raw)
