App Update Server
Version management and update service
| App Name | Platform (OS-Device) | Version | Build | Size | Release Date | Release Notes | Status | Actions |
|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||
| Time | App Name | Platform | Old Version | New Version | Status | OS Version | Device Info | User Info | Duration | Error | IP Address |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Loading... | |||||||||||
Public API reference for client applications. All endpoints return JSON responses unless otherwise specified.
Authentication
All client API endpoints require API Key authentication via HTTP header.
X-API-Key: your-api-key-hereX-API-Key HTTP header, not in URL query parameters. This is more secure because:
- Headers are not logged in server access logs
- Headers are not stored in browser history
- Headers are not visible in URL bar or shared links
- Headers are encrypted in HTTPS connections
curl -X POST https://app.fsiinc.com/api/check-update \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key-here" \
-d '{"app_name": "MyApp", "platform": "android-phone", "current_version": "1.0.0"}'
Client API Endpoints
/api/check-update
Check if there's an update available for an app.
{
"app_name": "string (required)",
"platform": "string (required)",
"current_version": "string (required)",
"device_info": "object (optional)",
"user_info": "object (optional)",
"os_version": "string (optional)"
}Response:
{
"has_update": true/false,
"latest_version": "string",
"version_info": {...},
"message": "string"
}device_info, user_info, os_version) are used for checking updates only. Upgrade logs are recorded when the client actually downloads the update file (via the download endpoint), not when checking for updates.
/api/latest-version/{app_name}/{platform}
Get the latest version information for a specific app and platform.
X-API-Key: your-api-keyExample:
/api/latest-version/MyApp/android-phone
/api/download/{app_name}/{platform}/{version}/{filename}
Download the update file for a specific version.
X-API-Key: your-api-keyPOST /api/upgrade-logs endpoint after successful installation to record the upgrade.
/api/upgrade-logs
Upload upgrade log after successful installation (called by the app).
X-API-Key: your-api-keyRequest:
{
"app_name": "string (required)",
"platform": "string (required)",
"old_version": "string (required)",
"new_version": "string (required)",
"device_info": "object (optional)",
"user_info": "object (optional)",
"os_version": "string (optional)",
"install_status": "string (optional: success, failed, cancelled)",
"error_message": "string (optional)",
"install_duration": "number (optional, seconds)"
}Response:
{
"status": "success",
"message": "Upgrade log recorded"
}Platform Format
Platform should be in the format: operating-system-device
android-phone, android-tablet, ios-iphone, ios-ipad,windows, macos, linux
Notes
- All API endpoints require
X-API-Keyheader for authentication - All API endpoints are case-insensitive for
app_nameandplatformparameters - Rate limiting is enabled (default: 60 requests per minute per IP)
- API Key authentication is enabled by default (can be disabled via environment variable)
- File paths use lowercase for compatibility, but app names are stored with original case
- Version management (upload/update/delete) is only available through the web interface