Documentación de MuPiBox MuPiBox NG

API HTTP de la MuPiBox

La interfaz HTTP local de la caja: consultar el estado, controlar la reproducción y enviar avisos y mensajes, con ejemplos para curl y domótica.

La MuPiBox tiene una API HTTP local. La usan la interfaz táctil, la administración y la app MuPiBox, y tú puedes usarla para tus propios scripts o tu domótica. Todas las direcciones empiezan por http://<caja>:8090/api/ (caja = dirección IP o nombre, ver Primer arranque). Las respuestas son JSON.

Acceso y seguridad

Ámbito¿Quién puede acceder?
Reproductor y estado (/api/status, /api/command, /api/speak, /api/message …)cualquier dispositivo de la red doméstica, sin iniciar sesión
Administración (/api/admin/…)solo con sesión de administración cuando hay una contraseña de administración
Red (/api/connectivity/…)desde la red doméstica solo con sesión de administración
Interfaz de Home Assistant (/api/ha/v1/…)solo por HTTPS (puerto 8443) con un token emparejado; la usa la integración

La caja bloquea las peticiones de escritura que llegan desde otras webs en un navegador. Los scripts como curl o los sistemas domóticos no envían ese origen de navegador y están permitidos.

Consultar el estado

Método y rutaDevuelve
GET /api/health{"status":"ok","version":"…"}, ideal para comprobar si la caja responde
GET /api/statusestado del reproductor: state (playing, paused, stopped, error), folder, queue, index, position, duration (segundos), volume, max_volume, now_playing (título de radio)
GET /api/infoversión, idioma y los ajustes que necesitan las interfaces
GET /api/librarybiblioteca local con carpetas (id, name) y pistas
GET /api/homecategorías y medios de la pantalla de inicio
GET /api/mupihat/statusbatería, carga y tensión con el MuPiHAT
GET /api/system/metricsCPU, memoria, almacenamiento y temperatura
curl http://mupibox.local:8090/api/status

Controlar la reproducción

POST /api/command con un objeto JSON. El campo action elige la orden:

actionOtros camposEfecto
toggle–alternar reproducción/pausa
play, pause, stop–reproducir, pausar, detener
next, previous–pista siguiente o anterior
seekvalue (segundos)saltar a una posición
volumevalue (0 hasta el volumen máximo)fijar el volumen
volume_deltavalue (p. ej. 5 o -5)cambiar el volumen de forma relativa
folderfolder_idiniciar una carpeta/audiocuento desde el principio
resumefolder_id, item_indexiniciar una carpeta en una pista concreta (0 = primera)

El folder_id aparece en GET /api/library. El volumen siempre se limita al volumen máximo configurado, y los ajustes del control parental también pueden limitar las órdenes de la API.

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

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

Avisos y mensajes

Método y rutaJSONEfecto
POST /api/speak{"text":"¡A cenar!"}lee el texto con la voz configurada; la música se pausa y continúa después
POST /api/message{"title":"Hola","message":"Pronto a dormir","duration_ms":8000}muestra un mensaje en la pantalla (title y duration_ms opcionales)
curl -X POST -H 'Content-Type: application/json' \
  -d '{"text":"¡No olvides lavarte los dientes!"}' http://mupibox.local:8090/api/speak

El primer aviso de una frase puede tardar unos segundos porque la caja genera primero la voz; las frases repetidas salen de la caché.

Errores y respuestas

Los errores llegan como JSON {"error":"…"} con el estado HTTP adecuado: 400 (petición incorrecta), 401 (hace falta iniciar sesión), 403 (no permitido), 409 (no es posible ahora, p. ej. sin contraseña de administración), 503 (servicio no disponible).

© 2026 MuPiBox