Produksi

Dokumentasi API Mixanalytic

Referensi API resmi untuk https://mixanalytic.com. Gunakan API ini untuk mengunggah audio dan menerima analisis mix berbasis AI dengan pilihan modul dan mode respons ringkas atau lengkap.

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

Autentikasi

Kirim kunci API Anda dalam header X-API-Key pada setiap permintaan.

curl -X GET "https://mixanalytic.com/api/test-data" \ -H "X-API-Key: YOUR_API_KEY"
  • 401 kunci tidak ada atau tidak valid
  • 403 kunci paket gratis tanpa akses API
  • 429 batas permintaan terlampaui

Cakupan: write digunakan untuk unggah dan analisis Mix Analyzer. content membaca data riset konten dengan informasi sensitif disamarkan. content_write menyimpan draf konten nonpublik. Cakupan konten hanya untuk admin.

Endpoint

Metode Jalur Tujuan
GET/api/test-dataPemeriksaan koneksi dan autentikasi.
POST/api/uploadUnggah dan analisis berkas audio.
GET/api/analyze/<file_id>Analisis ulang berdasarkan ID berkas (jika berkas asli masih ada).
GET/api/content/analysis-feedFeed riset dengan informasi sensitif disamarkan untuk agen konten, hanya untuk admin.
POST/api/content/draftsEndpoint penyimpanan dan pembaruan draf untuk agen konten, hanya untuk admin.
GET/api/ai-stats?days=30Statistik penggunaan analisis AI.

Permintaan unggah

POST/api/upload

Kolom Jenis Wajib Catatan
filemultipart fileYaDiizinkan: mp3, wav, flac, m4a, aac, ogg. Maksimum 100MB.
modulesstring/listTidakSemua modul digunakan secara default jika tidak dicantumkan.
detail_levelstringTidakfull (default) atau summary.

detail_level yang tidak valid menghasilkan 400. Berkas yang terlalu besar menghasilkan 413.

Pemilihan modul

Tentukan modul analisis yang dikembalikan dan dihitung dengan modules.

Format yang didukung:

  • String yang dipisahkan koma: modules=frequency_balance,clarity,mood
  • String array JSON: modules=["frequency_balance","clarity","mood"]
  • Kunci berulang (kueri/formulir): modules=frequency_balance&modules=clarity
  • Semua modul: modules=all atau modules=*
Modul Deskripsi
frequency_balancePenilaian frekuensi dan keseimbangan pada 7 pita.
dynamic_rangeRentang dinamis, faktor puncak, PLR.
stereo_fieldMetrik lebar, fase, dan korelasi.
clarityMetrik kejernihan dan definisi spektral.
harmonic_contentNada dasar dan kompleksitas harmonik.
transientsData attack, kepadatan transien, dan punch frekuensi rendah.
3d_spatialKonsistensi tinggi, kedalaman, dan lebar.
surround_compatibilityKompatibilitas mono + skor fase.
headphone_optimizationSkor pengoptimalan pemutaran melalui headphone.
speaker_optimizationSkor pengoptimalan pemutaran melalui speaker.
genreKlasifikasi genre dan tingkat keyakinan.
voiceKehadiran vokal dan karakteristik suara.
instrumentsDeteksi instrumen dan informasi aransemen.
moodProfil suasana dengan energi dan valensi.
keywordsKata kunci dan tag semantik.
loudnessUkur LUFS, true peak, clipping, dan target streaming agar master cukup keras tanpa distorsi, puncak akibat codec, atau kejutan pada platform.
noiseUkur noise floor, dengung listrik, desis, dan artefak agar rekaman dapat dibersihkan sebelum mastering membuatnya lebih keras, lebih cerah, dan lebih sulit disembunyikan.
format_qualityPeriksa encoding lossy, batas spektral, dan bit depth agar Anda tidak tanpa sengaja melakukan mastering dari sumber MP3, AAC, atau audio yang ditingkatkan resolusinya tetapi sudah terdegradasi sebelum rilis.
referenceReferensi
visualizationsURL untuk aset visual analisis yang dihasilkan.
ai_insightsRingkasan dan rekomendasi yang dihasilkan LLM.

Pengaturan ukuran respons

Gunakan detail_level:

  • full (default): payload lengkap
  • summary: payload ringkas untuk klien frontend atau seluler

Contoh

1) Unggah + analisis lengkap

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

2) Unggah + modul terpilih

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) Unggah + modul terpilih + payload ringkasan

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 uji

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

5) JavaScript sisi klien

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

Metadata respons standar

Respons analisis yang berhasil mencakup:

  • requested_modules
  • returned_modules
  • detail_level
  • available_modules

Kode kesalahan

Status Makna Penyebab umum
400Permintaan tidak validModul/detail_level tidak valid, kolom file tidak ada, berkas kosong.
401Tidak berwenangKunci API tidak ada, tidak valid, atau kedaluwarsa.
403DilarangAkses API tidak diizinkan untuk tingkat akun ini.
404Tidak ditemukan/api/analyze/<file_id> berkas tidak lagi tersedia (dihapus demi privasi).
413Payload terlalu besarBerkas lebih besar dari 100MB.
429Batas permintaan terlampauiTerlalu banyak permintaan per menit, jam, atau hari.
500Kesalahan serverKegagalan analisis atau runtime.

Catatan frontend

  • Untuk klien web atau seluler, utamakan detail_level=summary.
  • Minta hanya modul yang dibutuhkan untuk tampilan awal untuk mengurangi latensi dan ukuran payload.
  • Tangani 429 dan 500 dengan percobaan ulang dan jeda yang makin lama.
  • Jangan memaparkan kunci produksi berumur panjang dalam bundle publik.