File Uploads
All routes under /api/v1/uploads require authentication. Files are stored in MinIO (S3-compatible object storage).
POST /uploads
Upload a file.
Auth: Required
Request: Multipart form data
| Field | Type | Required | Description |
|---|---|---|---|
file | file | Yes | Max 10MB |
kind | string | No | image, logo, receipt, attachment |
folder | string | No | Custom folder path |
Allowed Content Types:
image/jpegimage/pngimage/webpimage/gifapplication/pdf
Response (201):
{
"success": true,
"data": {
"url": "https://storage.ziadapos.com/uploads/uuid-filename.jpg",
"key": "uploads/uuid-filename.jpg",
"name": "product-photo.jpg",
"size": 1024000,
"content_type": "image/jpeg",
"kind": "image"
}
}DELETE /uploads
Delete a file.
Auth: Required (must belong to caller's organisation)
Request Body:
{
"key": "uploads/uuid-filename.jpg"
}Response (200): {"success": true}