---
title: "Upload validated email image bytes"
method: PUT
path: "/media/upload-bytes"
tags: ["Media"]
---

# Upload validated email image bytes

`PUT /media/upload-bytes`

Uploads the exact bytes to the authenticated URL returned by POST /media/upload-url. The server enforces the requested size, verifies the file signature, and creates the public object only once.

## Query parameters

- `key` string, required
- `filename` string, required
- `contentType` string, required
- `fileSizeBytes` integer, required

## Response `200`

Image bytes validated and stored

- object
  - `success` boolean
  - `key` string
  - `publicUrl` string

## Other responses

- `400` — Invalid size, key, content type, or image bytes
- `401` — Unauthorized
- `409` — Upload URL already used
- `503` — Uploads are not configured, or the upload service or database is temporarily unavailable. Retry-After is present for a transient database failure.

## Changes

- **2026-08-19** `ba3a29c6eb33` — 4 info
  - added the optional property `retryable` to the response with the `400` status
  - added the optional property `retryable` to the response with the `401` status
  - added the optional property `retryable` to the response with the `409` status
  - added the optional property `retryable` to the response with the `503` status
- **2026-08-16** `6fd2903b91ce` — 4 info
  - added the optional property `code` to the response with the `400` status
  - added the optional property `code` to the response with the `401` status
  - added the optional property `code` to the response with the `409` status
  - added the optional property `code` to the response with the `503` status
- **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/upload-bytes/put.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/721dbe59409a/schema)
