API pengklonan suara dan penjanaan dengan suara yang ditetapkan (tidak disyorkan)
⛔ Laluan lama, tidak disyorkan untuk integrasi baharu. Halaman ini menerangkan laluan
personaawal (voice_task_id/generate-with-voice). Ia masih berfungsi, tetapi tidak lagi disyorkan kepada pelanggan; menu di kiri menandakannya sebagai "tidak disyorkan".Untuk integrasi baharu gunakan 【Disyorkan】 API profil suara: bina profil suara daripada satu sampel vokal (
POST /api/music/voice-profile/create), kemudian gunakannya untuk membuat kover lagu tertentu atau menyanyikan lagu baharu. Profil suara ialah sumber kelas pertama: boleh disenaraikan, diambil dan dipadam, serta audio sumbernya disimpan secara kekal.Jika produk anda memerlukan kitaran lengkap "bina suara → guna semula jangka panjang → kover", utamakan laluan baharu.
Penting: suara yang diklon boleh luput.
voice_id/voice_task_idyang dihasilkan oleh pengklonan suara bukan sumber yang boleh digunakan selama-lamanya: ia boleh berhenti berfungsi kerana tempoh sah, keadaan akaun atau perubahan keadaan suara. Pihak yang berintegrasi tidak boleh mengklon sekali kemudian menggunakan semula ID suara yang di-cache secara tempatan selama-lamanya.Amalan yang disyorkan:
- Simpan
voice_task_id,voice_id,is_available,updated_atdan masa penjanaan berjaya yang terakhir.- Sebelum setiap penjanaan dengan suara yang diklon, panggil
GET /api/voice/clone/tasks/{voice_task_id}atauPOST /api/voice/clone/tasks/{voice_task_id}/checkdan pastikanis_available=true.- Jika endpoint memulangkan bahawa suara tidak tersedia, tugasan tidak wujud atau
selected voice is not ready, minta pengguna mengklon semula atau memilih suara lain yang tersedia.- Jangan berjanji kepada pengguna akhir bahawa suara yang diklon ialah "aset kekal"; tunjukkan dalam antara muka produk bahawa "suara boleh luput dan perlu disahkan semula atau diklon semula".
Penerangan endpoint
Kumpulan endpoint ini membina suara yang boleh diguna semula dan menjana lagu dengannya. Pemanggil hanya memerlukan API Key yang dikeluarkan platform; pelayan mengendalikan penghantaran tugasan, penyegerakan status, pengebilan dan muat turun.
Pengesahan: Authorization: Bearer YOUR_API_KEY
Pengebilan:
- Pengesahan suara, pengklonan suara, pertanyaan status, pemadaman dan muat turun: percuma.
- Pintu masuk klon satu langkah dalam ruang kerja: 5 ¥ tetap setiap panggilan; ia menyelesaikan pengesahan suara sumber dan audio pengesahan kedua secara automatik, dan memulangkan dana jika gagal.
- Meneruskan secara automatik ke audio pengesahan selepas klon biasa: 5 ¥ tetap setiap panggilan; jika gagal dipulangkan mengikut aliran sedia ada.
- Menjana lagu dengan suara yang diklon: berbayar, 1.2 ¥ tetap setiap panggilan; setiap panggilan biasanya memulangkan 2 tugasan pemegang tempat.
- Apabila Max Mode dihidupkan (
max_mode: truepadaPOST /api/music/generate-with-voice), kadar 1.2 ¥ setiap panggilan dibilkan pada 2×, iaitu 2.4 ¥ setiap panggilan; penjanaan suara juga menyokongvariety(0-4, tanpa caj tambahan); peraturan nilainya ada dalam bahagian "Parameter lanjutan" pada gambaran keseluruhan API baharu.
Aliran panggilan
- Panggil
POST /api/voice/clone/validateuntuk memuat naik suara sumber dan mendapatvoice_task_id. - Tunggu atau tinjau
GET /api/voice/clone/tasks/{voice_task_id}sehingga mendapatvalidate_info. - Pengguna membaca teks itu dengan kuat dan merakam audio pengesahan.
- Panggil
POST /api/voice/clone/tasks/{voice_task_id}/generateuntuk menghantar audio pengesahan. - Panggil
POST /api/voice/clone/tasks/{voice_task_id}/checkatau terus pertanyaan tugasan sehinggais_available=true. - Panggil
POST /api/music/generate-with-voiceuntuk menjana lagu dengan suara itu. - Endpoint penjanaan memulangkan tugasan pemegang tempat dahulu; apabila penjanaan selesai dan anda mendapat
song_idsebenar, gunakan endpoint muat turun untuk mendapatkan satu fail atau satu pakej. - (Pilihan) Apabila suara tidak diperlukan lagi, panggil
DELETE /api/voice/clone/voices/{voice_task_id}untuk memadamnya; semantiknya dalam bahagian 6.
Terdapat juga pengklonan satu langkah: pada halaman rakaman/muat naik suara sumber yang pertama dalam ruang kerja, anda boleh memilih selesai dalam satu langkah; sistem menyelesaikan pengesahan dan pembinaan suara sekali gus, jadi anda tidak perlu merakam audio pengesahan kedua; kosnya 5 ¥ setiap panggilan dan dipulangkan jika gagal.
Medan tugasan suara
| Medan | Jenis | Penerangan |
|---|---|---|
voice_task_id |
number | ID tugasan suara dalam platform; semua endpoint berikutnya menggunakan ID ini |
voice_id |
string | ID suara yang boleh digunakan untuk menjana lagu; dipulangkan apabila tugasan boleh digunakan |
voice_name |
string | Nama suara |
description |
string | Penerangan suara |
style |
string | Gaya suara |
singer_skill_level |
string | Tahap vokal; nilai biasa: beginner, intermediate, professional |
language |
string | Bahasa suara sumber, contohnya zh, en |
validate_info |
string | Teks pengesahan yang perlu dibaca dengan kuat |
validate_status |
string | Status tugasan pengesahan |
voice_status |
string | Status pembinaan suara |
is_available |
boolean | Sama ada sudah boleh digunakan untuk menjana lagu |
status |
string | Status tugasan pada platform |
stage |
string | Peringkat semasa |
error_code |
string | Kod ralat apabila gagal |
error_message |
string | Punca kegagalan |
source_duration_seconds |
number | Tempoh audio sumber dalam saat |
created_at |
number | Cap masa penciptaan |
updated_at |
number | Cap masa pengemaskinian |
completed_at |
number | Cap masa penyiapan |
1. Hantar suara sumber untuk pengesahan
Endpoint: POST /api/voice/clone/validate
Parameter body
| Parameter | Jenis | Wajib | Lalai | Penerangan |
|---|---|---|---|---|
voice_url |
string | Tidak | - | URL audio suara sumber. Ini atau file_base64 |
file_base64 |
string | Tidak | - | Audio dalam base64. Ini atau voice_url |
file_name |
string | Tidak | - | Nama fail; disyorkan apabila menggunakan file_base64 |
voice_name |
string | Tidak | dijana automatik | Nama suara |
description |
string | Tidak | - | Penerangan suara |
style |
string | Tidak | - | Gaya suara |
singer_skill_level |
string | Tidak | beginner |
Tahap vokal |
language |
string | Tidak | zh |
Bahasa suara sumber |
vocal_start_s |
number | Ya | - | Saat mula vokal yang boleh digunakan |
vocal_end_s |
number | Ya | - | Saat akhir vokal yang boleh digunakan |
source_duration_seconds |
number | Tidak | - | Jumlah tempoh audio sumber dalam saat |
vocal_end_s - vocal_start_smesti memenuhi syarat minimum segmen vokal. Muat naik rakaman vokal yang bersih, tanpa iringan atau bunyi bising yang jelas.
Contoh permintaan
curl -X POST https://www.suno-api.io/api/voice/clone/validate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_url": "https://example.com/source-voice.wav",
"voice_name": "Suara wanita Mandarin saya",
"description": "Suara wanita Mandarin yang jernih dan semula jadi",
"style": "Mandopop",
"singer_skill_level": "intermediate",
"language": "zh",
"vocal_start_s": 1.2,
"vocal_end_s": 18.5,
"source_duration_seconds": 20
}'
Contoh respons
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "Suara wanita Mandarin saya",
"language": "zh",
"validate_status": "submitted",
"is_available": false,
"status": "validate_submitted",
"stage": "validate_submitted",
"created_at": 1780480000,
"updated_at": 1780480000
}
}
}
2. Pertanyaan tugasan suara
Endpoint: GET /api/voice/clone/tasks/{voice_task_id}
Contoh permintaan
curl https://www.suno-api.io/api/voice/clone/tasks/123 \
-H "Authorization: Bearer YOUR_API_KEY"
Contoh respons
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "Suara wanita Mandarin saya",
"validate_info": "Baca dengan kuat teks pengesahan yang dipulangkan di sini",
"validate_status": "success",
"is_available": false,
"status": "validate_ready",
"stage": "validate_callback"
}
}
}
3. Jana semula teks pengesahan
Endpoint: POST /api/voice/clone/tasks/{voice_task_id}/regenerate
Panggil apabila teks pengesahan tidak sesuai untuk dibaca dengan kuat atau pengesahan perlu diulang.
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/regenerate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
4. Hantar audio pengesahan dan bina suara
Endpoint: POST /api/voice/clone/tasks/{voice_task_id}/generate
Parameter body
| Parameter | Jenis | Wajib | Lalai | Penerangan |
|---|---|---|---|---|
verify_url |
string | Tidak | - | URL audio yang dibaca daripada teks pengesahan. Ini atau file_base64 |
file_base64 |
string | Tidak | - | Audio pengesahan dalam base64. Ini atau verify_url |
file_name |
string | Tidak | - | Nama fail; disyorkan apabila menggunakan file_base64 |
voice_name |
string | Tidak | nama tugasan | Nama suara |
description |
string | Tidak | penerangan tugasan | Penerangan suara |
style |
string | Tidak | gaya tugasan | Gaya suara |
singer_skill_level |
string | Tidak | tetapan tugasan | Tahap vokal |
Contoh permintaan
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"verify_url": "https://example.com/verify-voice.wav",
"voice_name": "Suara wanita Mandarin saya"
}'
5. Periksa sama ada suara boleh digunakan
Endpoint: POST /api/voice/clone/tasks/{voice_task_id}/check
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/check \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Apabila tugasan boleh digunakan, is_available dalam respons ialah true dan voice_id dipulangkan.
6. Padam suara
Endpoint: DELETE /api/voice/clone/voices/{voice_task_id}
Pengebilan: percuma.
curl -X DELETE https://www.suno-api.io/api/voice/clone/voices/123 \
-H "Authorization: Bearer YOUR_API_KEY"
Contoh respons
{
"success": true,
"message": "",
"data": {
"voice_task_id": 123,
"deleted": true
}
}
| Medan | Jenis | Penerangan |
|---|---|---|
| voice_task_id | number | ID tugasan suara yang dipadam |
| deleted | boolean | Sentiasa true; permintaan pemadaman telah diterima |
Apa yang berlaku selepas pemadaman
- Tidak boleh lagi digunakan untuk menjana lagu baharu: memanggil
POST /api/music/generate-with-voicedenganvoice_task_idini (atauvoice_id-nya) akan ditolak dengan mesejselected voice is not ready, tanpa caj. - Lagu yang sudah dijana dengannya tidak terjejas sama sekali: main balik, muat turun, sambungan, penggantian dan pemisahan stem berfungsi seperti biasa.
- Tugasan suara ini hilang daripada pertanyaan:
GET /api/voice/clone/tasks/{voice_task_id}memulangkanrecord not found. - Audio sumber disimpan mengikut polisi penyimpanan kekal platform (sejak 2026-09-23 pemadaman tidak lagi membersihkan sampel vokal yang anda muat naik), tetapi itu tidak bermakna ia boleh dipulihkan: tugasan lama telah tamat dan untuk terus menggunakan suara yang sama anda perlu melalui aliran pengklonan semula, yang menghasilkan
voice_task_idbaharu. - Padam dua kali: memadam tugasan yang sama sekali lagi memulangkan
record not found(ia sudah dalam keadaan dipadam dan tidak boleh ditemui).
7. Jana lagu dengan suara yang diklon
Endpoint: POST /api/music/generate-with-voice
Pengebilan: 1.2 ¥ setiap panggilan.
Parameter body
| Parameter | Jenis | Wajib | Lalai | Penerangan |
|---|---|---|---|---|
voice_task_id |
number | Ya | - | ID tugasan suara yang sudah boleh digunakan |
voice_id |
string | Tidak | - | Medan pengesahan pilihan; jika dihantar ia mesti sepadan dengan voice_id pada tugasan |
customMode |
boolean | Tidak | false |
false ialah mod ilham, true ialah mod lanjutan |
prompt |
string | Ya | - | Dalam mod ilham ialah penerangan lagu, dalam mod lanjutan ialah lirik. Kedua-duanya tidak boleh kosong |
style |
string | Ya dalam mod lanjutan | - | Tag gaya; tidak boleh kosong apabila customMode=true |
title |
string | Ya dalam mod lanjutan | - | Tajuk lagu; tidak boleh kosong apabila customMode=true |
negativeTags |
string | Tidak | - | Gaya yang dikecualikan |
instrumental |
boolean | Tidak | false |
Medan keserasian; penjanaan dengan suara yang diklon sentiasa dianggap lagu bervokal |
waitAudio |
boolean | Tidak | false |
Medan keserasian; endpoint ini sentiasa memulangkan tugasan pemegang tempat secara tak segerak dan tidak menunggu audio |
model |
string | Tidak | suno-v6 |
Model penjanaan lagu biasa; boleh guna suno-v6, suno-v6-wild atau suno-v6-mini |
vocalGender |
string | Tidak | - | Keutamaan jantina vokal |
lyricsMode |
string | Tidak | - | Medan keserasian; laluan penghantaran suara yang diklon semasa tidak mengubah mod lirik sendiri |
weirdnessConstraint |
number | Tidak | - | Kekuatan kreativiti |
styleWeight |
number | Tidak | - | Pemberat gaya |
audioWeight |
number | Tidak | lalai platform | Audio Influence (sejauh mana audio rujukan diambil kira), julat 0.0-1.0. Jika tidak dihantar, lalai platform digunakan (bersamaan 25% dalam antara muka rasmi); 0 ialah nilai sah yang bermaksud tidak condong sama sekali kepada rujukan. Medan ini berkait rapat dengan sourceClipId pada baris berikutnya: dengan sumber ia menunjuk kepada audio rujukan, tanpa sumber ia menunjuk kepada suara yang diklon; platform hanya mempunyai satu slider ini untuk kedua-dua kes, jadi jangan pecahkannya kepada dua parameter mengikut kes penggunaan |
sourceClipId |
string | Tidak | - | ID klip sebenar dalam ruang kerja bagi lagu sumber. Jika dihantar, anda masuk ke kover dengan suara yang diklon; jika tidak, ia penjanaan biasa dengan suara yang diklon |
sourceAudioUrl |
string | Tidak | - | Medan paparan sumber; ia tidak terlibat dalam pemilikan atau keputusan akaun, pelayan berpandukan rekod pangkalan datanya |
sourceTitle |
string | Tidak | - | Medan paparan sumber; ia tidak terlibat dalam pemilikan atau keputusan akaun |
clientSubmissionId |
string | Tidak | - | Medan keserasian Create UI; untuk penyahduaan yang boleh dipercayai dalam API pelanggan, header Idempotency-Key mesti digunakan |
suno-v6, suno-v6-wild dan suno-v6-mini disokong; model kosong dianggap suno-v6. Model lama V5/V5.5 telah dihentikan, tetapi tugasan sejarah mungkin masih memaparkan nama model lama.
Struktur permintaan bersama juga mentafsir medan keserasian Create UI seperti task, soundType, soundLoop, soundBpm, soundKey, voiceTaskId dan voiceId, tetapi ia bukan parameter pelanggan yang sah untuk endpoint ini: tugasan suara mesti dihantar sebagai voice_task_id, pengesahan suara pilihan sebagai voice_id, dan penjanaan muzik dengan suara tidak pernah membaca medan sound.
Cara mengisi parameter penjanaan
- Apabila
customMode=false,promptmengandungi penerangan lagu; apabilacustomMode=true,promptmengandungi lirik penuh, danstylesertatitlejuga mesti diisi. Jangan hantar lirik ke medan penerangan mod ilham dan jangan anggap penerangan lagu sebagai lirik mod lanjutan. weirdnessConstraintdanstyleWeightialah nisbah perpuluhan dari0.0hingga1.0;50atau50%tidak boleh dihantar.0.5ialah nilai seimbang; tidak menghantarnya bermaksud "tidak dinyatakan", dan0ialah nilai eksplisit yang sah.vocalGenderhanya menerimam,male,fataufemale.instrumentaldi sini hanyalah medan keserasian: penjanaan dengan suara yang diklon sentiasa dianggap lagu bervokal.waitAudiotidak mengubah tingkah laku di sini; endpoint sentiasa memulangkan tugasan pemegang tempat secara tak segerak.audio_urlkosong dalam hasil awal adalah normal: pertanyaan denganclient_request_iddan baca alamat audio hanya selepas hasilnya siap.
Parameter header
| Header | Wajib | Penerangan |
|---|---|---|
Authorization: Bearer ... |
Ya | Token API pelanggan |
Content-Type: application/json |
Ya | Body permintaan JSON |
Idempotency-Key |
Tidak, sangat disyorkan | Maksimum 128 aksara. Dengan pengguna, token, endpoint, kunci dan body yang sama, pengebilan dan penciptaan tugasan berlaku sekali sahaja |
Tingkah laku Idempotency-Key:
- Permintaan pertama menulis rekod idempotensi kekal sebelum pengebilan;
- Jika kunci yang sama dengan permintaan yang sama sudah selesai, respons penerimaan pertama dipaparkan semula, tanpa caj kedua dan tanpa tugasan kedua;
- Kunci yang sama dengan body berbeza akan ditolak;
- Kunci yang sama yang masih diproses memulangkan ralat "sedang diproses" yang stabil dan hanya mendedahkan
client_request_idyang selamat apabila ia telah dijana; - Jika permintaan pertama dengan sesuatu kunci gagal, status gagal kekal; cubaan semula memerlukan kunci baharu.
Syarat kover dengan sourceClipId
Kover daripada sumber dalam API pelanggan dikendalikan sepenuhnya di pihak pelayan: akses kepada lagu sumber diselesaikan oleh pelayan dan pelanggan tidak menghantar sebarang maklumat akaun. Boleh atau tidak ditentukan oleh respons sebenar endpoint.
Sumber mesti milik pengguna API semasa, lagu ruang kerja yang telah siap dan bukan pending:, serta mempunyai audio yang boleh digunakan. Disokong penjanaan biasa, sumber muat naik biasa dan lagu akhir muat naik diperkukuh; rekod pertengahan muat naik diperkukuh ditolak sebelum pengebilan. Pelayan hanya menerima ID lagu sumber yang dihantar pelanggan dan tidak pernah menerima ID akaun; sumber yang tidak tersedia atau belum siap memulangkan ralat sebelum pengebilan.
Contoh permintaan
curl -X POST https://www.suno-api.io/api/music/generate-with-voice \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_task_id": 123,
"customMode": true,
"prompt": "Tulis lagu pop Mandarin tentang tepi laut pada malam musim panas",
"style": "Mandopop, warm piano, emotional",
"title": "Bayu laut malam musim panas",
"negativeTags": "noise, low quality",
"instrumental": false,
"model": "suno-v6"
}'
Contoh respons
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"items": [
{
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "submitted",
"type": "voice_generate",
"title": "Bayu laut malam musim panas",
"prompt": "Tulis lagu pop Mandarin tentang tepi laut pada malam musim panas"
},
{
"placeholder_id": "pending:cu_1780480000_abcd1234:1",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 1,
"status": "submitted",
"type": "voice_generate",
"title": "Bayu laut malam musim panas",
"prompt": "Tulis lagu pop Mandarin tentang tepi laut pada malam musim panas"
}
],
"pre_consumed_quota": 600000,
"billing_source": "wallet"
}
}
Tentang tugasan pemegang tempat dan song_id akhir
generate-with-voice ialah endpoint penjanaan tak segerak. Respons berjaya hanya bermakna tugasan penjanaan telah dihantar, bukan bahawa lagu sudah siap.
Maksud medan utama dalam respons:
| Medan | Penerangan |
|---|---|
client_request_id |
ID penjejakan permintaan penjanaan ini. Satu permintaan biasanya menjana 2 lagu dan kedua-dua hasil menggunakan client_request_id yang sama. |
items[].placeholder_id |
ID pemegang tempat tempatan platform, biasanya dalam bentuk pending:{client_request_id}:{index}. Ia bukan ID lagu akhir. |
items[].client_request_index |
Indeks hasil dalam permintaan yang sama, biasanya 0 dan 1. |
items[].status |
Status awal selepas penghantaran, contohnya submitted. Kejayaan atau kegagalan seterusnya mengikut rekod tugasan akhir. |
Perhatian: placeholder_id yang bermula dengan pending: tidak boleh digunakan sebagai song_id akhir dan tidak boleh dihantar terus ke /api/music/query atau endpoint muat turun. Memanggil /api/music/query hanya dengan nilai pending:* mungkin memulangkan tatasusunan kosong [], kerana lagu sebenar belum siap atau tugasan pemegang tempat belum digantikan dengan ID lagu akhir.
Contoh salah:
{
"song_ids": "pending:cu_1780480000_abcd1234:0"
}
Aliran betul:
- Panggil
POST /api/music/generate-with-voiceuntuk menghantar tugasan penjanaan muzik dengan suara. - Simpan
client_request_id,items[].placeholder_iddanitems[].client_request_indexdaripada respons. - Tinjau
GET /api/music/generate-with-voice/results?client_request_id=cu_xxx. - Apabila
items[].song_idmempunyai nilai dan tidak bermula denganpending:, panggil/api/music/query,/api/music/download-fileatau/api/music/download-all.
Versi semasa menambah endpoint pertanyaan awam:
GET /api/music/generate-with-voice/results?client_request_id=cu_xxx
Ia memulangkan hasil tugasan bagi client_request_id yang sama di bawah pengguna semasa, supaya pelanggan boleh mencari song_id akhir sendiri. Dalam senarai yang dipulangkan:
song_idialah ID lagu sebenar;placeholder_idhanya muncul selagi tugasan masih dalam keadaan pemegang tempat;- nilai yang bermula dengan
pending:tidak boleh digunakan dengan/api/music/queryatau endpoint muat turun.
Jika anda hanya menyimpan client_request_id atau ID pemegang tempat pending:*, panggil endpoint hasil ini dahulu; jika song_id sebenar masih tidak dijumpai, hantar client_request_id kepada sokongan teknikal untuk dikesan.
Pertanyaan hasil penjanaan muzik dengan suara
Endpoint: GET /api/music/generate-with-voice/results
Pengebilan: percuma.
Parameter query
| Parameter | Jenis | Wajib | Penerangan |
|---|---|---|---|
client_request_id |
string | Ya | ID penjejakan yang dipulangkan oleh generate-with-voice |
Contoh permintaan
curl -X GET "https://www.suno-api.io/api/music/generate-with-voice/results?client_request_id=cu_1780480000_abcd1234" \
-H "Authorization: Bearer YOUR_API_KEY"
Contoh respons semasa dijana
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "processing",
"items": [
{
"song_id": "",
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "processing",
"type": "voice_generate",
"title": "Bayu laut malam musim panas"
}
]
}
}
Contoh respons selepas selesai
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "completed",
"items": [
{
"song_id": "song_abc123",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "completed",
"type": "voice_generate",
"title": "Bayu laut malam musim panas",
"audio_url": "https://...",
"image_url": "https://...",
"duration": 180.5
}
]
}
}
Maksud status peringkat atas
| Status | Penerangan |
|---|---|
not_found |
Bagi pengguna semasa belum ada rekod tugasan dengan client_request_id itu |
processing |
Sekurang-kurangnya satu hasil belum siap; teruskan tinjauan |
completed |
Semua hasil sudah siap; song_id boleh ditanya atau dimuat turun |
partial |
Sebahagian siap, sebahagian gagal; tangani song_id yang siap dahulu |
failed |
Semua hasil gagal; lihat items[].error_message |
8. Muat turun satu fail
Endpoint: POST /api/music/download-file
Parameter body
| Parameter | Jenis | Wajib | Penerangan |
|---|---|---|---|
song_id |
string | Ya | ID lagu |
kind |
string | Ya | Jenis muat turun: audio, cover, wav, video |
Contoh permintaan
curl -X POST https://www.suno-api.io/api/music/download-file \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "song_abc123",
"kind": "audio"
}' \
--output song.mp3
Responsnya ialah strim fail; Content-Type dan nama fail mengikut apa yang dipulangkan backend.
9. Muat turun sumber lagu sebagai pakej
Endpoint: POST /api/music/download-all
Parameter body
| Parameter | Jenis | Wajib | Penerangan |
|---|---|---|---|
song_id |
string | Ya | ID lagu |
Contoh permintaan
curl -X POST https://www.suno-api.io/api/music/download-all \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "song_abc123"
}' \
--output song.zip
Pakej biasanya mengandungi audio, kulit album dan metadata.json; jika sesuatu jenis sumber belum dijana, ia tidak dimasukkan ke dalam arkib.
Ralat biasa
| message | Penerangan |
|---|---|
voice audio is required |
Semasa menghantar suara sumber, voice_url mahupun file_base64 tidak diberikan |
invalid voice task id |
ID tugasan suara dalam laluan tidak sah |
voice validation is not ready |
Teks pengesahan belum tersedia, jadi audio pengesahan tidak boleh dihantar |
selected voice is not ready |
Suara yang dipilih belum boleh menjana lagu (belum sedia, telah dipadam, atau bukan milik akaun semasa) |
selected voice does not match voice task |
voice_id dalam permintaan tidak sepadan dengan tugasan |
voice task is required |
voice_task_id tiada semasa menjana lagu dengan suara |
record not found |
Tugasan / lagu tidak wujud, bukan milik akaun API Key semasa, atau sudah dipadam (menanyakan tugasan ini selepas suara dipadam akan menunjukkan perkara yang sama) |
Ralat kumpulan ini sentiasa memulangkan HTTP 200: nilai kejayaan daripada medan
successdalam body (falsebermaksud gagal, puncanya dalammessage) dan jangan hanya melihat kod status HTTP. Semantik penuh pemadaman suara (sama ada masih boleh digunakan, sama ada boleh dipulihkan) ada dalam bahagian 6.
Dapatkan kunci API
Cipta kunci API dalam konsol selepas mendaftar. Setiap penjanaan berharga 0.6 ¥ dan mengembalikan 2 lagu, muat turun tanpa had dan nombor telefon tidak diperlukan.
Dapatkan kunci API Kembali ke gambaran