Documentation MuPiBox MuPiBox NG

L'API HTTP de la MuPiBox

L'interface HTTP locale du boîtier : consulter l'état, piloter la lecture, envoyer des annonces et des messages, avec des exemples pour curl et la domotique.

La MuPiBox dispose d'une API HTTP locale. L'interface tactile, l'administration et l'appli MuPiBox l'utilisent, et vous pouvez l'utiliser pour vos propres scripts ou votre domotique. Toutes les adresses commencent par http://<boîtier>:8090/api/ (boîtier = adresse IP ou nom, voir Premier démarrage). Les réponses sont en JSON.

Accès et sécurité

DomaineQui peut y accéder ?
Lecteur et état (/api/status, /api/command, /api/speak, /api/message …)tout appareil du réseau domestique, sans connexion
Administration (/api/admin/…)uniquement connecté à l'administration dès qu'un mot de passe d'administration est défini
Réseau (/api/connectivity/…)depuis le réseau domestique uniquement connecté à l'administration
Interface Home Assistant (/api/ha/v1/…)uniquement en HTTPS (port 8443) avec un jeton appairé ; utilisée par l'intégration

Le boîtier bloque les requêtes d'écriture provenant d'autres sites dans un navigateur. Les scripts comme curl ou les systèmes domotiques n'envoient pas cette origine de navigateur et sont autorisés.

Consulter l'état

Méthode et cheminRenvoie
GET /api/health{"status":"ok","version":"…"}, idéal pour vérifier que le boîtier répond
GET /api/statusétat du lecteur : state (playing, paused, stopped, error), folder, queue, index, position, duration (secondes), volume, max_volume, now_playing (titre radio)
GET /api/infoversion, langue et réglages nécessaires aux interfaces
GET /api/librarybibliothèque locale avec dossiers (id, name) et titres
GET /api/homecatégories et médias de l'écran d'accueil
GET /api/mupihat/statusbatterie, charge et tension avec le MuPiHAT
GET /api/system/metricsprocesseur, mémoire, stockage et température
curl http://mupibox.local:8090/api/status

Piloter la lecture

POST /api/command avec un objet JSON. Le champ action choisit la commande :

actionAutres champsEffet
toggle–basculer lecture/pause
play, pause, stop–lire, mettre en pause, arrêter
next, previous–titre suivant ou précédent
seekvalue (secondes)aller à une position
volumevalue (0 jusqu'au volume maximal)régler le volume
volume_deltavalue (p. ex. 5 ou -5)modifier le volume de façon relative
folderfolder_idlancer un dossier/une histoire depuis le début
resumefolder_id, item_indexlancer un dossier à partir d'un titre donné (0 = premier)

Le folder_id figure dans GET /api/library. Le volume est toujours limité au volume maximal réglé, et les réglages du contrôle parental peuvent aussi restreindre les commandes de l'API.

# Lecture/pause
curl -X POST -H 'Content-Type: application/json' \
  -d '{"action":"toggle"}' http://mupibox.local:8090/api/command

# Volume à 30
curl -X POST -H 'Content-Type: application/json' \
  -d '{"action":"volume","value":30}' http://mupibox.local:8090/api/command

Annonces et messages

Méthode et cheminJSONEffet
POST /api/speak{"text":"À table !"}lit le texte avec la voix réglée ; la musique se met en pause puis reprend
POST /api/message{"title":"Coucou","message":"Bientôt l'heure de dormir","duration_ms":8000}affiche un message à l'écran (title et duration_ms facultatifs)
curl -X POST -H 'Content-Type: application/json' \
  -d '{"text":"N’oublie pas de te brosser les dents !"}' http://mupibox.local:8090/api/speak

La première annonce d'une phrase peut prendre quelques secondes, car le boîtier génère d'abord la voix ; les phrases répétées viennent du cache.

Erreurs et réponses

Les erreurs arrivent en JSON {"error":"…"} avec le statut HTTP correspondant : 400 (requête incorrecte), 401 (connexion requise), 403 (non autorisé), 409 (impossible pour l'instant, p. ex. sans mot de passe d'administration), 503 (service indisponible).

© 2026 MuPiBox