API de mise à jour
Une application interroge LUMA Store avec sa version actuelle. L’API répond avec la dernière version compatible et l’URL de son fichier.
Démarrage rapide avec Harmonix
Le slug harmonix identifie l’application dans le Store. Cet exemple cherche une mise à jour Android stable à partir de la version 1.4.0.
GET /api/v1/apps/harmonix/updates
?current_version=1.4.0
&platform=android
&arch=universal
&channel=stableAucune clé API n’est nécessaire. Utilisez l’adresse publique de votre instance LUMA Store comme domaine.
Téléchargement automatique
L’endpoint /download fonctionne sans paramètre : il détecte le système d’exploitation du visiteur et redirige vers le binaire stable correspondant.
GET /api/v1/apps/harmonix/downloadPour cibler précisément un package, trois paramètres optionnels et uniquement ceux-ci sont acceptés :
GET /api/v1/apps/harmonix/download
?platform=macos&arch=arm64&channel=stable| Paramètre | Obligatoire | Valeurs |
|---|---|---|
platform | Non | windows, macos, linux ou android. Détecté depuis le User-Agent si absent. |
arch | Non | x64, arm64 ou universal. Détectée si possible, sinon un package universel est privilégié. |
channel | Non | stable, beta ou nightly. Défaut : stable |
Si aucune plateforme n’est détectée et aucun paramètre n’est fourni, l’utilisateur est redirigé vers la page web de l’application.
Liste des packages
L’endpoint /packages retourne tous les binaires disponibles pour une application, triés par version décroissante.
GET /api/v1/apps/harmonix/packages{
"data": {
"slug": "harmonix",
"name": "Harmonix",
"packages": [
{
"version": "1.5.0",
"channel": "stable",
"platform": "android",
"architecture": "arm64",
"packageType": "apk",
"fileName": "harmonix-1.5.0.apk",
"sizeBytes": 28746123,
"sha256": "empreinte-sha256",
"downloadUrl": "https://store.example/api/v1/downloads/release-uuid"
},
{
"version": "1.5.0",
"channel": "stable",
"platform": "windows",
"architecture": "x64",
"packageType": "exe",
"fileName": "harmonix-1.5.0-x64.exe",
"sizeBytes": 52428800,
"sha256": "empreinte-sha256",
"downloadUrl": "https://store.example/api/v1/downloads/release-uuid"
}
]
},
"meta": { "count": 6, "apiVersion": "v1" }
}Paramètres de vérification
| Paramètre | Obligatoire | Valeurs |
|---|---|---|
current_version | Oui | Version installée, par exemple 1.4.0 |
platform | Oui | windows, macos, linux ou android |
arch | Non | x64, arm64 ou universal. Défaut : universal |
channel | Non | stable, beta ou nightly. Défaut : stable |
Comprendre la réponse
Mise à jour disponible
available vaut true. Le bloc artifact fournit le fichier, sa taille, son empreinte et son URL de téléchargement.
{
"data": {
"available": true,
"currentVersion": "1.4.0",
"version": "1.5.0",
"releaseNotes": "Corrections et améliorations.",
"publishedAt": "2026-08-19T12:00:00.000Z",
"artifact": {
"id": "release-uuid",
"fileName": "harmonix-1.5.0.apk",
"size": 28746123,
"sha256": "empreinte-sha256",
"url": "https://store.example/api/v1/downloads/release-uuid"
}
},
"meta": { "apiVersion": "v1" }
}Application déjà à jour
L’absence de mise à jour est une réponse normale avec le statut HTTP 200.
{
"data": {
"available": false,
"currentVersion": "1.5.0"
},
"meta": { "apiVersion": "v1" }
}Exemple TypeScript
Vérifiez d’abord le statut HTTP, puis lisez data.available avant de proposer le téléchargement.
const params = new URLSearchParams({
current_version: "1.4.0",
platform: "android",
arch: "universal",
channel: "stable",
});
const response = await fetch(
`https://store.example/api/v1/apps/harmonix/updates?${params}`
);
if (!response.ok) {
throw new Error(`LUMA Store a répondu ${response.status}`);
}
const result = await response.json();
if (result.data.available) {
console.log(result.data.version);
console.log(result.data.artifact.url);
}Téléchargement et intégrité
L’URL retournée accepte l’en-tête HTTP Range pour reprendre un téléchargement interrompu. Après réception, calculez l’empreinte SHA-256 du fichier et comparez-la à artifact.sha256 avant toute installation.
Endpoints publics
/api/v1/apps/{slug}/updatesRecherche la dernière version compatible.
/api/v1/apps/{slug}/downloadRedirige vers le binaire adapté à la plateforme. Détecte l’OS depuis le User-Agent si aucun paramètre n’est fourni.
/api/v1/apps/{slug}/packagesListe tous les packages disponibles pour une application.
/api/v1/apps/{slug}Retourne la fiche d’une application et ses versions publiées.
/api/v1/downloads/{releaseId}Télécharge le fichier associé à une version.
/api/v1/metaDécrit la version de l’API et les plateformes reconnues.
Erreurs
Les clients doivent interpréter error.code, car le texte du message peut évoluer.
| Statut | Code | Signification |
|---|---|---|
400 | invalid_parameters | Un paramètre est absent ou invalide. |
404 | not_found | Le slug ne correspond à aucune application publiée. |
429 | rate_limited | Trop de vérifications ont été envoyées. Réessayez plus tard. |
{
"error": {
"code": "invalid_parameters",
"message": "Paramètres de mise à jour invalides."
}
}