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", ... }