---
title: "Register uploaded email image"
method: POST
path: "/media/complete-upload"
tags: ["Media"]
---

# Register uploaded email image

`POST /media/complete-upload`

Idempotently registers a completed company-scoped image upload in the shared media library and returns its hosted URL.

## Request body

- object
  - `key` string, required
  - `filename` string, required
  - `contentType` string, required
  - `fileSizeBytes` integer, required
  - `width` integer
  - `height` integer
  - `altText` string, required

## Response `200`

Image registered

- object
  - `success` boolean
  - `asset` object
    - `id` string
    - `filename` string
    - `url` string
    - `mimeType` string
    - `size` string
    - `width` string, nullable
    - `height` string, nullable
    - `altText` string, nullable
    - `companyId` string
    - `createdAt` string, date-time

## Other responses

- `400` — Invalid or cross-company upload
- `401` — Unauthorized
- `409` — Image changed while completion was verifying it
- `503` — Uploads not configured

## Changes

- **2026-08-02** `36f92fc0caa2` — 4 breaking
  - the response property `success` became optional for the status `400`
  - the response property `success` became optional for the status `401`
  - the response property `success` became optional for the status `409`
  - the response property `success` became optional for the status `503`
- **2026-07-15** `8bc13491b9f6` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/media/complete-upload/post.md)

---

[API](https://skmtc.dev/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.dev/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/revisions/36f92fc0caa2/schema)
