Producción

Documentación de la API de Mixanalytic

Referencia oficial de la API de https://mixanalytic.com. Usa esta API para subir audio y recibir análisis de mezcla con IA, con módulos seleccionables y respuestas compactas o completas.

URL base: https://mixanalytic.com/api

Autenticación

Envía tu clave de API en la cabecera X-API-Key en cada solicitud.

curl -X GET "https://mixanalytic.com/api/test-data" \ -H "X-API-Key: YOUR_API_KEY"
  • 401 clave ausente o no válida
  • 403 clave de plan gratuito sin acceso a la API
  • 429 límite de solicitudes superado

Ámbitos: write permite subir y analizar en Mix Analyzer. content lee datos de investigación de contenido con datos sensibles ocultos. content_write guarda borradores de contenido no públicos. Los ámbitos de contenido son exclusivos de administradores.

Endpoints

Método Ruta Propósito
GET/api/test-dataComprobación de conectividad y autenticación.
POST/api/uploadSubir y analizar un archivo de audio.
GET/api/analyze/<file_id>Volver a analizar mediante el ID de archivo (si el archivo original aún existe).
GET/api/content/analysis-feedFeed de investigación con datos sensibles ocultos para agentes de contenido, exclusivo de administradores.
POST/api/content/draftsEndpoint para guardar o actualizar borradores para agentes de contenido, exclusivo de administradores.
GET/api/ai-stats?days=30Estadísticas de uso del análisis de IA.

Solicitud de subida

POST/api/upload

Campo Tipo Obligatorio Notas
filemultipart fileSíPermitidos: mp3, wav, flac, m4a, aac, ogg. Máx. 100MB.
modulesstring/listNoSi se omite, se usan todos los módulos por defecto.
detail_levelstringNofull (por defecto) o summary.

Un valor de detail_level no válido devuelve 400. Los archivos demasiado grandes devuelven 413.

Selección de módulos

Controla qué módulos de análisis se devuelven (y se calculan) con modules.

Formatos admitidos:

  • Cadena separada por comas: modules=frequency_balance,clarity,mood
  • Cadena de array JSON: modules=["frequency_balance","clarity","mood"]
  • Clave repetida (consulta/formulario): modules=frequency_balance&modules=clarity
  • Todos los módulos: modules=all o modules=*
Módulo Descripción
frequency_balancePuntuación de frecuencias y equilibrio en 7 bandas.
dynamic_rangeRango dinámico, factor de cresta, PLR.
stereo_fieldMétricas de anchura, fase y correlación.
clarityMétricas de claridad y definición espectral.
harmonic_contentTonalidad y complejidad armónica.
transientsDatos de ataque, densidad de transitorios y pegada en graves.
3d_spatialConsistencia de altura, profundidad y anchura.
surround_compatibilityCompatibilidad mono y puntuación de fase.
headphone_optimizationPuntuación de optimización de reproducción con auriculares.
speaker_optimizationPuntuación de optimización de reproducción con altavoces.
genreClasificación de género y nivel de confianza.
voicePresencia vocal y características de la voz.
instrumentsDetección de instrumentos e información del arreglo.
moodPerfil de estado de ánimo con energía y valencia.
keywordsPalabras clave y etiquetas semánticas.
loudnessMide LUFS, pico real, clipping y objetivos de streaming para que el máster tenga suficiente nivel sin distorsión, picos del códec ni sorpresas en plataformas.
noiseMide ruido de fondo, zumbido de red, siseo y artefactos para limpiar audio antes de que el mastering los haga más fuertes, brillantes y difíciles de ocultar.
format_qualityRevisa codificación con pérdida, corte espectral y profundidad de bits para no masterizar audio MP3, AAC o ampliado y degradado por error antes de publicar.
referenceReferencia
visualizationsURL de los recursos visuales generados para el análisis.
ai_insightsResumen y recomendaciones generados por LLM.

Control del tamaño de respuesta

Usa detail_level:

  • full (por defecto): respuesta completa
  • summary: respuesta compacta para clientes web y móviles

Ejemplos

1) Subida y análisis completo

curl -X POST "https://mixanalytic.com/api/upload" \ -H "X-API-Key: YOUR_API_KEY" \ -F "file=@/path/to/track.mp3"

2) Subida y módulos seleccionados

curl -X POST "https://mixanalytic.com/api/upload" \ -H "X-API-Key: YOUR_API_KEY" \ -F "file=@/path/to/track.mp3" \ -F "modules=frequency_balance,dynamic_range,genre,mood,keywords"

3) Subida, módulos seleccionados y respuesta resumida

curl -X POST "https://mixanalytic.com/api/upload" \ -H "X-API-Key: YOUR_API_KEY" \ -F "file=@/path/to/track.mp3" \ -F "modules=frequency_balance,stereo_field,clarity,ai_insights" \ -F "detail_level=summary"

4) Endpoint de prueba

curl -X GET "https://mixanalytic.com/api/test-data" \ -H "X-API-Key: YOUR_API_KEY"

5) JavaScript del lado del cliente

const formData = new FormData(); formData.append('file', fileInput.files[0]); formData.append('modules', 'frequency_balance,dynamic_range,mood,ai_insights'); formData.append('detail_level', 'summary'); const res = await fetch('https://mixanalytic.com/api/upload', { method: 'POST', headers: { 'X-API-Key': 'YOUR_API_KEY' }, body: formData }); const data = await res.json(); console.log(data.analysis, data.returned_modules);

Metadatos estándar de respuesta

Las respuestas de análisis correctas incluyen:

  • requested_modules
  • returned_modules
  • detail_level
  • available_modules

Códigos de error

Estado Significado Causa habitual
400Solicitud incorrectaMódulo/detail_level no válido, campo de archivo ausente o archivo vacío.
401No autorizadoClave de API ausente, no válida o caducada.
403ProhibidoEl nivel de cuenta no permite el acceso a la API.
404No encontrado/api/analyze/<file_id> archivo ya no disponible (eliminación por privacidad).
413Contenido demasiado grandeArchivo de más de 100MB.
429Límite de solicitudes superadoDemasiadas solicitudes por minuto, hora o día.
500Error del servidorFallo de análisis o de ejecución.

Notas para el frontend

  • Para clientes web y móviles, usa preferentemente detail_level=summary.
  • Solicita solo los módulos necesarios para el primer renderizado para reducir la latencia y el tamaño de la respuesta.
  • Gestiona 429 y 500 con reintentos e intervalos de espera crecientes.
  • No expongas claves de producción de larga duración en paquetes públicos.