API unduhan Free2
Deskripsi endpoint
Free2 adalah kanal unduhan berbayar tersendiri: dari sebuah ID lagu (atau tautan lagu suno.com) ia menyiapkan berkas MP3/WAV/lirik/metadata dan mengembalikan alamat unduhan yang dihosting platform. Kanal ini hanya menerima API Key, tidak menerima sesi login peramban, dan hasilnya tidak memuat sumber pemutaran terenkripsi dari Suno.
Endpoint: POST /api/music/free2
Biaya: Ditagih per jumlah lagu yang berhasil, saat ini default 0,2 CNY per lagu. Memilih beberapa jenis berkas dalam satu permintaan tidak menambah biaya; lagu yang gagal disiapkan tidak dikenai biaya. Maksimal 10 lagu per permintaan (setelah de-duplikasi); jumlah yang benar-benar ditagih mengikuti konfigurasi harga di back-office.
Model yang disarankan: suno-v6. Tersedia suno-v6, suno-v6-wild, dan suno-v6-mini.
Autentikasi
| Parameter | Tipe | Wajib | Catatan |
|---|---|---|---|
| Authorization | string | ya | Bearer YOUR_API_KEY |
| Content-Type | string | ya | application/json |
Parameter permintaan
| Parameter | Tipe | Wajib | Default | Catatan |
|---|---|---|---|---|
| song_id | string | tidak | - | ID satu lagu; tautan lagu suno.com juga bisa (termasuk tautan pendek /s/) |
| song_ids | string[] | tidak | - | Bentuk banyak lagu (disarankan), maksimal 10 lagu per permintaan |
| songs | string[] | tidak | - | Alias dari song_ids |
| files | string[] | ya | - | Jenis berkas yang diperlukan: mp3, wav, lyrics, metadata; m4a tidak didukung |
Sediakan minimal salah satu dari song_id dan song_ids; sertakan minimal satu nilai pada files.
Contoh permintaan
curl -X POST https://www.suno-api.io/api/music/free2 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": ["song_id_1", "song_id_2"],
"files": ["mp3", "wav", "lyrics"]
}'
Respons
{
"code": 200,
"message": "success",
"data": {
"songs": [
{
"song_id": "song_id_1",
"files": [
{"type": "mp3", "url": "https://media.suno-api.io/assets/song_id_1-free2-v1-mp3.mp3"}
]
},
{
"song_id": "song_id_2",
"files": [],
"error": {"code": "song_not_found", "message": "song not found or not owned by the current user"}
}
],
"requested_songs": 2,
"succeeded_songs": 1,
"price": 0.2
}
}
| Field | Tipe | Catatan |
|---|---|---|
| songs | array | Hasil per lagu: song_id, files[], dan error bila gagal |
| requested_songs | number | Jumlah lagu setelah normalisasi dan de-duplikasi |
| succeeded_songs | number | Jumlah yang berhasil; penagihan dihitung dari angka ini |
| price | number | Jumlah yang benar-benar ditagih pada panggilan ini (yuan) |
Bila hanya satu lagu yang diminta, respons juga mengembalikan song_id dan files di tingkat atas untuk kompatibilitas dengan bentuk satu lagu versi lama.
Menggunakan ulang alamat cache (tanpa biaya)
Untuk lagu yang sudah pernah Anda unduh, mengunduh lagi tidak perlu disiapkan ulang dan tidak dikenai biaya lagi: gunakan POST /api/music/free2/cached untuk mengambil alamat terkini dari berkas yang pernah diunduh akun ini.
Endpoint: POST /api/music/free2/cached
Biaya: Gratis. Ini cache hanya-baca: tidak menyiapkan ulang, tidak transcoding, tidak menagih; hanya mengembalikan alamat yang sudah siap dan belum ditarik kembali.
⚠️ Masa berlaku alamat unduhan: 7 hari — simpan tepat waktu.
songs[].files[].urldisediakan oleh penyimpanan objek platform dan kedaluwarsa setelah 7 hari secara default (berkas ditarik kembali dan alamat lama mengembalikan 404); simpan berkasnya ke penyimpanan Anda sendiri dalam 7 hari itu. Setelah kedaluwarsa, panggilPOST /api/music/free2lagi untuk menyiapkannya ulang dan mendapatkan alamat valid yang baru (penyiapan ulang itu dikenai biaya sesuai aturan normal;/api/music/free2/cachedhanya mengembalikan alamat cache yang masih berlaku).
Parameter permintaan: sama persis dengan POST /api/music/free2 (salah satu dari song_id / song_ids / songs, dan minimal satu nilai pada files).
curl -X POST https://www.suno-api.io/api/music/free2/cached \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "song_ids": ["98ca3f1d-…", "a185b3d9-…"], "files": ["mp3"] }'
{
"success": true,
"data": {
"items": [
{ "song_id": "98ca3f1d-…", "type": "mp3", "url": "https://…/assets/98ca3f1d-…-free2-v1-mp3.mp3" }
],
"songs": [
{ "song_id": "98ca3f1d-…", "files": [ { "type": "mp3", "url": "https://…" } ], "missing_files": [] },
{ "song_id": "a185b3d9-…", "files": [], "missing_files": ["mp3"] }
],
"missing": ["a185b3d9-…"]
}
}
| Field | Tipe | Catatan |
|---|---|---|
| items | array | Daftar alamat yang siap diunduh (song_id + type + url) |
| songs | array | Hasil per lagu; missing_files adalah format yang kali ini tidak ada di cache |
| missing | string[] | Lagu ini tidak punya cache yang bisa dipakai sama sekali (perlu disiapkan ulang dengan POST /api/music/free2, yang ditagih per lagu) |
Alamat hanya dikembalikan untuk lagu yang pernah Anda unduh; lagu tanpa riwayat unduhan, atau yang asetnya sudah ditarik kembali, hanya muncul di missing dan tidak diberi alamat apa pun.
Catatan
POST /api/music/free2dapat menyiapkan lagu publik mana pun di Suno (termasuk lagu yang tidak ada di platform ini); bila sebuah lagu gagal disiapkan,errorhanya dikembalikan untuk lagu itu dan lagu lain dalam batch yang sama tidak terpengaruh. SedangkanPOST /api/music/free2/cachedhanya mengembalikan alamat untuk lagu yang pernah diunduh akun ini.- Penyiapan pertama sebuah lagu akan membuat berkas yang dihosting, lalu berkas itu dipakai ulang; jangan mengirim jenis yang sama dua kali di
files, server melakukan de-duplikasi otomatis. - Perbedaan dari API unduhan dan pratinjau media lagu: Free2 berbayar, mendukung pengiriman tautan suno.com secara langsung, dan tidak menyediakan tipe timeline/MIDI selain lirik.
Dapatkan kunci API
Buat kunci API di konsol setelah mendaftar. Setiap pembuatan berbiaya 0,6 ¥ dan menghasilkan 2 lagu, unduhan tidak terbatas, dan nomor telepon tidak diperlukan.
Ambil kunci API Kembali ke ringkasan