Media API
API Reference
Requires Bearer token + media permission.
List all media files in the uploads directory.
// Response 200
[ { "name": "hero.jpg", "url": "/media/hero.jpg", "size": 204800, "mime": "image/jpeg" } ]Requires Bearer token + media permission. Content-Type: multipart/form-data.
Upload one or more files. Returns a single object for one file, or an array for multiple.
// Response 201 (single)
{ "name": "photo.jpg", "url": "/media/photo.jpg", "size": 98304, "mime": "image/jpeg" }Requires Bearer token + media permission.
Rename a media file. Fails with 409 if the new name already exists.
| Field | Type | Description |
|---|---|---|
newName |
string | New filename (will be sanitised) |
// Response 200
{ "name": "new-photo.jpg", "url": "/media/new-photo.jpg", ... }Requires Bearer token + media permission.
Delete a media file from the uploads directory.
// Response 200
{ "success": true }Requires Bearer token + media permission.
Return image metadata (dimensions, format, file size) for editable image formats (JPEG, PNG, WebP, GIF, TIFF).
// Response 200
{ "width": 1920, "height": 1080, "format": "jpeg", "size": 204800 }Requires Bearer token + media permission.
Apply image transformations (resize, crop, rotate, watermark, etc.) and optionally save to a new filename.
| Field | Type | Description |
|---|---|---|
operations |
object | Transformation operations to apply |
saveAs |
string | Optional. Output filename. Defaults to overwriting the source. |
// Request body
{ "operations": { "resize": { "width": 800, "height": 600 }, "format": "webp" }, "saveAs": "hero-800.webp" }
// Response 200
{ "name": "hero-800.webp", "url": "/media/hero-800.webp", ... }