Produção

Documentação da API do Mixanalytic

Referência oficial da API de https://mixanalytic.com. Use esta API para enviar áudio e receber análises de mixagem com IA, com módulos selecionáveis e respostas compactas ou completas.

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

Autenticação

Envie sua chave de API no cabeçalho X-API-Key em todas as solicitações.

curl -X GET "https://mixanalytic.com/api/test-data" \ -H "X-API-Key: YOUR_API_KEY"
  • 401 chave ausente ou inválida
  • 403 chave de plano gratuito sem acesso à API
  • 429 limite de solicitações excedido

Escopos: write serve para envio e análise no Mix Analyzer. content lê dados de pesquisa de conteúdo com dados sensíveis ocultados. content_write salva rascunhos de conteúdo não públicos. Os escopos de conteúdo são exclusivos de administradores.

Endpoints

Método Caminho Finalidade
GET/api/test-dataVerificação de conectividade e autenticação.
POST/api/uploadEnviar e analisar arquivo de áudio.
GET/api/analyze/<file_id>Analisar novamente pelo ID do arquivo (se o arquivo original ainda existir).
GET/api/content/analysis-feedFeed de pesquisa com dados sensíveis ocultados para agentes de conteúdo, exclusivo de administradores.
POST/api/content/draftsEndpoint para salvar ou atualizar rascunhos para agentes de conteúdo, exclusivo de administradores.
GET/api/ai-stats?days=30Estatísticas de uso da análise de IA.

Solicitação de envio

POST/api/upload

Campo Tipo Obrigatório Notas
filemultipart fileSimPermitidos: mp3, wav, flac, m4a, aac, ogg. Máx. 100MB.
modulesstring/listNãoSe omitido, todos os módulos são usados por padrão.
detail_levelstringNãofull (padrão) ou summary.

Um valor inválido de detail_level retorna 400. Arquivos grandes demais retornam 413.

Seleção de módulos

Controle quais módulos de análise são retornados (e calculados) com modules.

Formatos aceitos:

  • String separada por vírgulas: modules=frequency_balance,clarity,mood
  • String de array JSON: modules=["frequency_balance","clarity","mood"]
  • Chave repetida (consulta/formulário): modules=frequency_balance&modules=clarity
  • Todos os módulos: modules=all ou modules=*
Módulo Descrição
frequency_balancePontuação de frequência e equilíbrio em 7 bandas.
dynamic_rangeFaixa dinâmica, fator de crista, PLR.
stereo_fieldMétricas de largura, fase e correlação.
clarityMétricas de clareza e definição espectral.
harmonic_contentTonalidade e complexidade harmônica.
transientsDados de ataque, densidade de transientes e impacto dos graves.
3d_spatialConsistência de altura, profundidade e largura.
surround_compatibilityCompatibilidade mono e pontuação de fase.
headphone_optimizationPontuação de otimização da reprodução com fones de ouvido.
speaker_optimizationPontuação de otimização da reprodução com alto-falantes.
genreClassificação de gênero e confiança.
voicePresença vocal e características da voz.
instrumentsDetecção de instrumentos e informações do arranjo.
moodPerfil de humor com energia e valência.
keywordsPalavras-chave e tags semânticas.
loudnessMeça LUFS, true peak, clipping e metas de streaming para manter o master alto o bastante sem distorção, picos do codec ou surpresas nas plataformas.
noiseMeça ruído de fundo, zumbido de rede, chiado e artefatos para limpar gravações antes de ficarem mais altos, brilhantes e difíceis de esconder na masterização.
format_qualityConfira codificação com perdas, corte espectral e profundidade de bits para não masterizar MP3, AAC ou fontes ampliadas e degradadas por engano antes de lançar.
referenceReferência
visualizationsURLs dos recursos visuais gerados para a análise.
ai_insightsResumo e recomendações gerados por LLM.

Controle do tamanho da resposta

Use detail_level:

  • full (padrão): resposta completa
  • summary: resposta compacta para clientes web e móveis

Exemplos

1) Envio e análise completa

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

2) Envio e módulos selecionados

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) Envio, módulos selecionados e resposta 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 teste

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

5) JavaScript do lado do 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);

Metadados padrão da resposta

As respostas de análise bem-sucedidas incluem:

  • requested_modules
  • returned_modules
  • detail_level
  • available_modules

Códigos de erro

Status Significado Causa típica
400Solicitação inválidaMódulo/detail_level inválido, campo de arquivo ausente ou arquivo vazio.
401Não autorizadoChave de API ausente, inválida ou expirada.
403ProibidoO nível da conta não permite acesso à API.
404Não encontrado/api/analyze/<file_id> arquivo não está mais disponível (exclusão por privacidade).
413Conteúdo grande demaisArquivo maior que 100MB.
429Limite de solicitações excedidoSolicitações demais por minuto, hora ou dia.
500Erro do servidorFalha de análise ou de execução.

Notas para o frontend

  • Para clientes web e móveis, prefira detail_level=summary.
  • Solicite apenas os módulos necessários para a primeira renderização para reduzir a latência e o tamanho da resposta.
  • Trate 429 e 500 com novas tentativas e intervalos de espera crescentes.
  • Não exponha chaves de produção de longa duração em pacotes públicos.