Uploads a media file as raw binary via multipart/form-data. This is the
recommended path for large or binary files: the client streams the file
directly instead of base64-encoding it in the browser (which crashes the tab
on 100+ MB uploads).
Same endpoint as Create media (POST /api/medias) — the server auto-detects
the multipart path when a binary file part is present. For the JSON (base64 /
fromUrl) modes, see that request.
Do not set the Content-Type header manually: the client must send
multipart/form-data with a boundary (Bruno does this automatically).
Form Parts
| Part | Type | Required | Description |
|---|---|---|---|
file | binary | Yes | The raw file to upload (streamed). Max 200 MB. |
name | string | No | File name with extension. Defaults to the uploaded file's original name. |
folder | string | No | Folder/category. Defaults to Medias. |
mime, size, thumbnail and path are derived server-side from the stored
object — do not send them. Thumbnails are generated automatically for images.
Response Fields
| Field | Type | Description |
|---|---|---|
id | integer | Newly created media unique identifier |
name | string | File name |
url | string | Public URL to access the file |
mime | string | MIME type (derived from the stored file) |
folder | string | Folder/category |
path | string | Storage path |
thumbnail | string | Thumbnail URL (generated for images) |
thumbPath | string | Thumbnail storage path |
createdAt | datetime | Creation timestamp |
updatedAt | datetime | Last update timestamp |
Response
201 Created: Media successfully uploaded401 Unauthorized: Invalid or missing API key413 Payload Too Large: File exceeds the 200 MB upload limit
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
201Resource created
400Bad request
401Unauthorized
