---
title: "Create email image upload URL"
method: POST
path: "/media/upload-url"
tags: ["Media"]
---

# Create email image upload URL

`POST /media/upload-url`

Returns an authenticated API URL for a block-ready email image. PUT the exact bytes to uploadUrl using the same API credentials, then register the key with POST /media/complete-upload. The public object does not exist until its bytes pass server-side validation.

## Request body

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

## Response `200`

Upload URL created

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

## Other responses

- `400` — Unsupported image type or size
- `401` — Unauthorized
- `503` — Uploads not configured

---

[API](https://skmtc.net/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.net/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/versions/af1cf9620482/schema)
