Update API reference
Your client application asks the server one question — "is there a newer version of me?" — and gets back whether to update and where to download the new build. Two read-only endpoints, no authentication required.
Base URL
https://your-server
— replace with the address where this server runs.
Endpoint
Check for an update
Call this with your App ID and the version the client is currently running. The server compares it against the latest published release and tells you whether an update exists.
| Parameter | Description | |
|---|---|---|
| appId | required | Your application's App ID, exactly as registered in the dashboard (e.g. com.example.myapp). |
| version | required | The version string the client is running, e.g. 1.0.0. Compared numerically segment by segment. |
| channel | optional | Which release channel to check. Defaults to stable. Pass beta to receive pre-release builds. |
Response — an update is available
// HTTP 200 { "appId": "com.example.myapp", "currentVersion": "1.0.0", "updateAvailable": true, "mandatory": false, "latestVersion": "1.2.0", "versionCode": 12, "releaseNotes": "Bug fixes and a faster sync engine.", "downloadUrl": "https://your-server/v1/download/ab12cd34", "fileName": "myapp-1.2.0.apk", "fileSize": 5242880, "contentType": "application/vnd.android.package-archive", "channel": "stable", "publishedAt": "2026-02-14T09:30:00.000Z" }
Response — already up to date
// HTTP 200 { "appId": "com.example.myapp", "currentVersion": "1.2.0", "latestVersion": "1.2.0", "updateAvailable": false }
When
mandatory is true, at least one release newer than the client is flagged as required — block the user from continuing until they update. An unknown appId returns 404; a missing parameter returns 400.Endpoint
Download a build
You normally don't construct this yourself — use the downloadUrl returned by the check call. It streams the uploaded file with the original filename, or redirects to the external URL if the release was published as a link.
Integration
Recommended client flow
- On launch (and optionally on a timer), call
GET /v1/checkwith your App ID and current version. - If
updateAvailableisfalse, carry on — the client is current. - If
true, show an update prompt usinglatestVersionandreleaseNotes. Ifmandatoryistrue, make it non-dismissible. - Send the user to
downloadUrlto fetch the new build.
Examples
Call it from your app
SK Update Manager · self-hosted update service