Skip to main content

Upload App

Upload a new version of an application, including the binary file and relevant metadata.

Endpoint

POST /upload

Authentication

HeaderValue
AuthorizationBearer <jwt_token>

Request Body

The request uses multipart/form-data format with the following fields:

FieldTypeRequiredDescription
filefileApp binary file(s)
app_namestringName of the application
versionstringVersion of the application
channelstringChannel (e.g., stable, beta)
publishbooleanMarks the version available for users
criticalbooleanMarks the version as critical
platformstringPlatform (e.g., linux, windows)
archstringArchitecture (e.g., amd64, arm64)
changelogstringChangelog in markdown format

Example Request

Single File Upload

curl -X POST --location 'http://localhost:9000/upload' \
--header 'Authorization: Bearer <jwt_token>' \
--form 'file=@"/path_to_file/myapp.deb"' \
--form 'data="{\"app_name\":\"myapp\",\"version\":\"0.0.1\",\"channel\":\"stable\",\"publish\":true,\"platform\":\"linux\",\"arch\":\"amd64\",\"changelog\":\"### Changelog\\n\\n- Added new feature X\\n- Fixed bug Y\"}"'

Multiple File Upload

curl -X POST --location 'http://localhost:9000/upload' \
--header 'Authorization: Bearer <jwt_token>' \
--form 'file=@"/path_to_file/myapp.deb"' \
--form 'file=@"/path_to_file/myapp.rpm"' \
--form 'data="{\"app_name\":\"myapp\",\"version\":\"0.0.1\",\"channel\":\"stable\",\"publish\":true,\"platform\":\"linux\",\"arch\":\"amd64\",\"changelog\":\"### Changelog\\n\\n- Added new feature X\\n- Fixed bug Y\"}"'

Response

Success Response (200 OK)

{
"uploadResult.Uploaded": "6411c7c0ec4ff9a9a9bc18fa"
}

Response Fields

FieldTypeDescription
uploadResult.UploadedstringThe unique identifier (ID) of the uploaded version

Notes

  • You can upload multiple files for different platforms/architectures in a single request
  • The changelog field supports markdown formatting
  • Critical versions are typically used for security updates or critical bug fixes
  • Published versions are immediately available to end users
  • The channel field helps organize releases (e.g., stable, beta, nightly)
  • File uploads support common package formats (.deb, .rpm, .exe, .dmg, etc.)