API lagu utuh (Get Full Song)
Deskripsi endpoint
Penyambungan lagu utuh menggabungkan "lagu asli + potongan yang baru dibuat" menjadi satu lagu lengkap: setelah Extend akan menyambung bagian berikutnya, setelah Replace Section akan menjahit potongan baru kembali ke lagu asli. Antarmuka web resmi menyebut kemampuan ini Get Full Song.
Endpoint: POST /api/music/concat
Biaya: Berbayar, tetap 0,05 CNY per panggilan. Penyambungan terpisah dari harga pembuatan dan tidak ikut dalam Max Mode maupun pengali profil suara; jumlah yang benar-benar ditagih mengikuti konfigurasi harga di back-office.
Waktu tunggu dan timeout (penting): ini endpoint sinkron — pesanan baru diterima dan diteruskan ke penyambungan saat respons tiba. Setel timeout klien 300 detik atau lebih; tidak ada respons bukan berarti tidak ada yang disambung, dan jangan mencoba ulang langsung setelah timeout (itu menduplikasi pesanan dan menagih dua kali). Jika koneksi terputus, periksa lagi nanti dengan
GET /api/music/songs.
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 | ya | - | song_id potongan yang akan disambung (hasil Extend atau Replace Section); harus sudah selesai |
| is_infill | boolean | tidak | false | false = penyambungan perpanjangan; true = penyambungan penggantian (infill) |
| source_audio_url | string | tidak | - | Alamat audio sumber, bila potongan berasal dari akun eksternal |
| source_file_name | string | tidak | - | Nama berkas sumber, bila potongan berasal dari akun eksternal |
| source_title | string | tidak | - | Judul sumber, bila potongan berasal dari akun eksternal |
audio_id, source_clip_id, dan sourceClipId adalah penulisan yang setara dengan song_id; gunakan salah satu.
Contoh permintaan
curl -X POST https://www.suno-api.io/api/music/concat \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "extended_or_replaced_clip_id",
"is_infill": false
}'
Untuk menyambung setelah mengganti bagian, setel is_infill ke true:
{ "song_id": "infilled_clip_id", "is_infill": true }
Respons
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "concat_clip_id",
"song_title": "Judul lagu sumber",
"status": "queued"
}
]
}
}
Penyambungan hanya mengembalikan 1 hasil (tidak menghasilkan 2 lagu sekaligus). Simpan clips[].song_id lalu poling API kueri lagu dan riwayat sampai complete sebelum mengambil audio.
Dari mana durasi hasil berasal
Penyambungan tidak sekadar menempel dua berkas berurutan; lagu sumber dipotong menurut titik waktu yang tercatat di riwayat potongan:
| Mode | Susunan hasil |
|---|---|
is_infill: false |
lagu sumber [0 .. continue_at] + seluruh panjang potongan perpanjangan |
is_infill: true |
lagu sumber [0 .. titik awal] + potongan baru yang menggantikan + lagu sumber [titik akhir .. akhir lagu] |
Dengan begitu audio asli setelah titik lanjut dibuang, sehingga tidak ada bagian yang terduplikasi seluruhnya.
Catatan
- Hanya potongan yang sudah selesai yang bisa disambung; bila potongan masih dibuat, tunggu sampai selesai.
- Hasilnya adalah rekaman baru; potongan asli tetap tersimpan dan masih bisa dipakai.
- Untuk menggabungkan dua lagu berbeda menjadi satu, gunakan API mashup; untuk menyisakan satu bagian saja, gunakan API pemotongan.
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