Fetch Latest Version of App
This API endpoint retrieves the latest version of a specific app based on the provided parameters.
Endpoint
GET /apps/latest?app_name=<app_name>&channel=stable&platform=linux&arch=amd64&owner=admin
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
app_name | string | ✅ | The name of the app you want to fetch |
channel | string | ✅ | The release channel (e.g., stable, beta) |
platform | string | ❌ | The platform (e.g., linux, darwin) |
arch | string | ❌ | The architecture (e.g., amd64, arm64) |
package | string | ❌ | The package type (e.g., deb, rpm, dmg) |
owner | string | ✅ | Name of your admin user |
Headers
| Header | Value | Required |
|---|---|---|
X-Download-Token | fnd_… download token of the app and channel | Private apps in strict mode |
Authorization | Bearer <jwt_token> of the owning admin, or of a team user with the download permission and access to the app and channel | Alternative to X-Download-Token |
Public apps and private apps in unlisted mode need no credential. For a private app in strict mode, a request without a valid credential gets exactly the same answer as an app that does not exist, 500 Internal Server Error:
{
"error": "app_name not found in apps_meta collection"
}
Important Behavior
1. Channel Parameter
- If channels have been pre-defined, the channel parameter becomes mandatory.
2. Single URL Redirection
- If the response contains only one URL, the API will automatically redirect the request to download the build at that URL. This simplifies the process when only one option is available.
3. Flexible Responses Based on Parameters
The API responds dynamically based on the parameters you provide.
Example: Specific Parameters
GET /apps/latest?app_name=secondapp&channel=stable&platform=linux&arch=amd64&owner=admin
Returns a list of available builds:
{
"stable": {
"linux": {
"amd64": {
"deb": {
"url": "https://<bucket_name>.s3.amazonaws.com/secondapp/stable/linux/amd64/secondapp-0.0.3.deb"
},
"rpm": {
"url": "https://<bucket_name>.s3.amazonaws.com/secondapp/stable/linux/amd64/secondapp-0.0.3.rpm"
}
}
}
}
}
Example: With Package Specification
GET /apps/latest?app_name=secondapp&channel=stable&platform=linux&arch=amd64&package=deb&owner=admin
The API will redirect directly to the .deb package download URL:
https://<bucket_name>.s3.amazonaws.com/secondapp/stable/linux/amd64/secondapp-0.0.3.deb
Example: Omitting Platform and Arch
GET /apps/latest?app_name=secondapp&channel=stable&owner=admin
Returns all available builds under that channel:
{
"stable": {
"linux": {
"amd64": {
"deb": {
"url": "https://<bucket_name>.s3.amazonaws.com/secondapp/stable/linux/amd64/secondapp-0.0.3.deb"
},
"rpm": {
"url": "https://<bucket_name>.s3.amazonaws.com/secondapp/stable/linux/amd64/secondapp-0.0.3.rpm"
}
}
},
"darwin": {
"arm64": {
"dmg": {
"url": "https://<bucket_name>.s3.amazonaws.com/secondapp/stable/darwin/arm64/secondapp-0.0.3.dmg"
}
},
"amd64": {
"pkg": {
"url": "https://<bucket_name>.s3.amazonaws.com/secondapp/stable/darwin/amd64/secondapp-0.0.3.pkg"
}
}
}
}
}
Notes
- The API provides all available builds depending on what is uploaded in the specified channel, platform, and architecture
- Use specific parameters to narrow down results and get direct download URLs
- The
ownerparameter is required for proper access control - Package types are automatically detected based on available files
- Responses of private apps are never cached in Redis