Prefer Upload File (multipart) for real files. Base64 inflates the payload by about a third, and JSON request bodies are limited to 100 KB, so this endpoint only suits very small files (about 75 KB or less). The multipart endpoint streams files up to 25 MB.
curl --location 'https://apigw.klinkcx.com/api/v1/media-manager/files' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==",
"fileName": "red-pixel.png",
"mimeType": "image/png",
"title": "Red Pixel Test",
"description": "A tiny test image to verify upload",
"altText": "Alt text",
"isPrivate": false,
"folderId": "019b666f-5b1e-738e-b88f-6e08c466a4f7",
"isFavorite": true,
"sortOrder": 0
}'{
"data": {
"id": "a1196518-4c90-4ed0-ab9f-d5a1c8d58870",
"uploadId": "a1196518-035f-49b6-9d22-951f6f0a7a39",
"folderId": null,
"title": "Red Pixel Test",
"description": "A tiny test image to verify upload",
"altText": "Alt text",
"sortOrder": 0,
"isFavorite": true,
"isPrivate": false,
"createdAt": "2026-02-17T05:00:23.000000Z",
"updatedAt": "2026-02-17T05:00:23.000000Z",
"upload": {
"id": "a1196518-035f-49b6-9d22-951f6f0a7a39",
"fileName": "red-pixel.png",
"fileSize": 70,
"fileUrl": "https://cdn.klink.cloud/media-manager/your-image-url"
}
}
}