---
title: "Complete a media upload"
method: POST
path: "/v1/workspaces/{workspaceId}/media/upload/{sessionId}/complete"
tags: ["Media"]
---

# Complete a media upload

`POST /v1/workspaces/{workspaceId}/media/upload/{sessionId}/complete`

## Request

- Base URL: `https://api.maevesocial.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.maevesocial.com/v1/workspaces/{workspaceId}/media/upload/{sessionId}/complete`
- Auth: HTTP bearer

Finalize an upload session after the file has been uploaded to the presigned URL.

## Path parameters

- `sessionId` string, required
- `workspaceId` string, uuid, required

## Request body

- CompleteUploadBodyDto
  - `thumbnailBase64` string, nullable
  - `folderId` string, uuid, nullable
  - `width` integer, nullable
  - `height` integer, nullable
  - `durationSeconds` integer, nullable

## Response `200`

Upload completed and returns public media metadata

- object
  - `data` PublicMediaUploadCompleteDto, required
    - `id` string, uuid, required
    - `url` string, required
    - `thumbnailUrl` string, nullable, required
    - `folderId` string, uuid, nullable, required
    - `width` number, required
    - `height` number, required
    - `durationSeconds` number, nullable, required
  - `meta` unknown, required

---

[API](https://skmtc.dev/maevesocial/apis/maeve-social-api.md) · [All operations](https://skmtc.dev/maevesocial/apis/maeve-social-api/llms.txt) · [OpenAPI document](https://skmtc.dev/maevesocial/apis/maeve-social-api/revisions/1b00fd7e4b15?raw)
