Upload asset
Changed on<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Uploads a file to the app's media library. Send it as multipart/form-data in a field named file.
The file name decides what's accepted. It must end in one of these extensions: 3g2, 3gp, avi, csv, docx, fbx, gif, glb, gltf, ico, jpeg, jpg, json, m4v, md, mkv, mov, mp3, mp4, mtl, obj, ogv, pdf, png, svg, txt, wav, webm, webp, wmv, xlsx, zip. HTML files aren't accepted. The size limit depends on the type, from 1 MB for ico to 100 MB for audio and video. Most images can be up to 40 MB. The asset's file_name is the uploaded file's name with the same character rules as Create asset, and its file_type is the extension, in lowercase.
The file is stored at a public URL, returned in file_url, so anyone with the URL can open it.
In this response, created_date and updated_date include a +00:00 offset. List assets returns them without one.
This endpoint is limited to 60 requests per minute. Some workspaces have a different limit.
<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>
<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>
Request
- Base URL: https://app.base44.com
- URL: https://app.base44.com/api/apps/{app_id}/assets/upload
- Auth: HTTP bearer
Path parameters
ID of the app whose media library to change.
Response
The new asset.
Example response
{
"id": "68b0e1f2a3c4d5e6f7a8b9c0",
"app_id": "6820f3a4e7b91d003c45a1f2",
"file_name": "Logo-dark.png",
"file_url": "https://media.base44.com/files/public/6820f3a4e7b91d003c45a1f2/Logo-dark.png",
"source_type": "upload",
"file_type": "png",
"created_date": "2026-01-15T09:23:41",
"updated_date": "2026-01-15T09:31:07"
}Changes
- ○
endpoint added
- ○