---
title: "Upload a watermark image"
method: POST
path: "/watermarks"
tags: ["watermarks"]
---

# Upload a watermark image

`POST /watermarks`

## Response `201`

Created

- ApidocsWatermarkAssetData
  - `data` DomainWatermarkAsset
    - `content_type` string — ContentType is the MIME type sniffed via http.DetectContentType from the first 512 bytes. Used as the Content-Type response header on /raw.
    - `filename` string — Filename is the on-disk basename, ALSO the stable identifier used by Stream.Watermark.Filename and every REST URL.
    - `size_bytes` integer — SizeBytes is the on-disk size of the image (from os.Stat).
    - `uploaded_at` string — UploadedAt is the file's modification time in UTC. Save sets it to the wall clock at upload; subsequent rebuilds derive it from mtime so the list survives restart without an external metadata store.

## Other responses

- `400` — Bad Request
- `409` — Conflict
- `413` — Request Entity Too Large
- `415` — Unsupported Media Type
- `500` — Internal Server Error

---

[API](https://skmtc.net/datvietvac-techhub/apis/open-streamer-api.md) · [All operations](https://skmtc.net/datvietvac-techhub/apis/open-streamer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/datvietvac-techhub/open-streamer-api/revisions/9f723293b698/schema)
