Production

Documentation de l’API Mixanalytic

Référence officielle de l’API https://mixanalytic.com. Envoyez des fichiers audio et recevez une analyse de mix par IA avec des modules au choix et une réponse compacte ou complète.

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

Authentification

Envoyez votre clé API dans l’en-tête X-API-Key pour chaque requête.

curl -X GET "https://mixanalytic.com/api/test-data" \ -H "X-API-Key: YOUR_API_KEY"
  • 401 clé manquante ou invalide
  • 403 clé d’une offre gratuite sans accès à l’API
  • 429 limite de fréquence dépassée

Portées : write sert à l’envoi et à l’analyse Mix Analyzer. content lit les données de recherche de contenu expurgées. content_write enregistre des brouillons non publics. Les portées de contenu sont réservées aux administrateurs.

Points de terminaison

Méthode Chemin Fonction
GET/api/test-dataVérification de la connexion et de l’authentification.
POST/api/uploadEnvoi et analyse d’un fichier audio.
GET/api/analyze/<file_id>Nouvelle analyse par identifiant de fichier (si le fichier d’origine existe encore).
GET/api/content/analysis-feedFlux de recherche expurgé réservé aux administrateurs pour les agents de contenu.
POST/api/content/draftsPoint de terminaison d’enregistrement et de mise à jour des brouillons, réservé aux administrateurs pour les agents de contenu.
GET/api/ai-stats?days=30Statistiques d’utilisation des analyses IA.

Requête d’envoi

POST/api/upload

Champ Type Obligatoire Remarques
filemultipart fileOuiFormats autorisés : mp3, wav, flac, m4a, aac, ogg. Maximum : 100MB.
modulesstring/listNonTous les modules sont sélectionnés par défaut si ce champ est omis.
detail_levelstringNonfull (par défaut) ou summary.

Une valeur detail_level invalide renvoie 400. Les fichiers trop volumineux renvoient 413.

Sélection des modules

Définissez les modules d’analyse renvoyés et calculés avec modules.

Formats pris en charge :

  • Chaîne séparée par des virgules : modules=frequency_balance,clarity,mood
  • Chaîne représentant un tableau JSON : modules=["frequency_balance","clarity","mood"]
  • Clé répétée (requête ou formulaire) : modules=frequency_balance&modules=clarity
  • Tous les modules : modules=all ou modules=*
Module Description
frequency_balanceÉvaluation des fréquences et de l’équilibre sur 7 bandes.
dynamic_rangePlage dynamique, facteur de crête, PLR.
stereo_fieldMesures de largeur, de phase et de corrélation.
clarityMesures de clarté et de définition spectrales.
harmonic_contentTonalité et complexité harmonique.
transientsDonnées d’attaque, de densité des transitoires et d’impact des basses.
3d_spatialCohérence de la hauteur, de la profondeur et de la largeur.
surround_compatibilityCompatibilité mono + score de phase.
headphone_optimizationScore d’optimisation de l’écoute au casque.
speaker_optimizationScore d’optimisation de l’écoute sur enceintes.
genreClassification du genre et niveau de confiance.
voicePrésence vocale et caractéristiques de la voix.
instrumentsDétection d’instruments et informations sur l’arrangement.
moodProfil d’ambiance avec énergie et valence.
keywordsMots-clés et étiquettes sémantiques.
loudnessMesurez les LUFS, les crêtes vraies, la saturation numérique et les cibles du streaming pour garder un master assez fort sans distorsion, crêtes dues aux codecs ou surprises sur les plateformes.
noiseMesurez le bruit de fond, le ronflement secteur, le souffle et les artefacts pour nettoyer les enregistrements avant que le mastering ne les rende plus forts, plus brillants et plus difficiles à masquer.
format_qualityVérifiez l’encodage avec pertes, la coupure spectrale et la résolution en bits pour éviter de faire par erreur le mastering de sources MP3, AAC ou suréchantillonnées déjà dégradées avant la sortie.
referenceRéférence
visualizationsURL des éléments visuels d’analyse générés.
ai_insightsRésumé et recommandations générés par un LLM.

Contrôle de la taille des réponses

Utilisez detail_level :

  • full (par défaut) : réponse complète
  • summary : réponse compacte pour les clients frontend ou mobiles

Exemples

1) Envoi + analyse complète

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

2) Envoi + modules sélectionnés

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) Envoi + modules sélectionnés + réponse résumée

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) Point de terminaison de test

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

5) JavaScript côté client

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);

Métadonnées standard des réponses

Les réponses d’analyse réussies incluent :

  • requested_modules
  • returned_modules
  • detail_level
  • available_modules

Codes d’erreur

Statut Signification Cause habituelle
400Requête incorrecteModule ou detail_level invalide, champ file manquant, fichier vide.
401Non autoriséClé API manquante, invalide ou expirée.
403InterditAccès à l’API non autorisé pour cette offre de compte.
404Introuvable/api/analyze/<file_id> fichier devenu indisponible (suppression pour confidentialité).
413Données trop volumineusesFichier de plus de 100MB.
429Limite de fréquence dépasséeTrop de requêtes par minute, par heure ou par jour.
500Erreur serveurÉchec de l’analyse ou de l’exécution.

Remarques pour le frontend

  • Pour les clients web ou mobiles, privilégiez detail_level=summary.
  • Demandez uniquement les modules nécessaires au premier affichage pour réduire la latence et le volume des réponses.
  • Gérez 429 et 500 avec de nouvelles tentatives et un délai progressif.
  • N’exposez pas de clés de production à longue durée de vie dans des bundles publics.