Gambaran keseluruhan dokumentasi Suno API
Daftar dengan alamat e-mel dan anda sudah boleh mencipta kunci API. Satu penjanaan berharga 0.6 ¥, menghasilkan 2 lagu, dan merangkumi muat turun MP3/WAV, lagu cover, Extend, pemisahan stem serta klon suara. URL asas: https://www.suno-api.io.
Halaman ini menyenaraikan model yang tersedia sekarang, semua endpoint penjanaan dan penyuntingan, cara pengebilan, dan susunan bacaan yang disyorkan. Jika anda baru pertama kali berintegrasi, bacalah dari atas ke bawah; bahagian penyelesaian masalah 401/403/429 juga ada di sini.
Jawapan ringkas
Bagaimana saya mendapat kunci API? Daftar dengan alamat e-mel, buka konsol, pergi ke pengurusan token dan cipta satu token. Tiada nombor telefon dan tiada kad bank diperlukan.
Berapa kos satu panggilan? Satu penjanaan berharga 0.6 ¥ dan menghasilkan 2 lagu. Pertanyaan status, WAV, lirik bertimestamp dan cadangan prompt adalah percuma.
Model mana yang disokong? suno-v6 (lalai), suno-v6-wild dan suno-v6-mini. Model penjanaan standard v5.5 dan lebih lama telah ditarik; kerja sedia ada tidak terjejas.
Apakah URL asasnya? https://www.suno-api.io, dengan pengepala Authorization: Bearer YOUR_API_KEY.
Model yang tersedia sekarang
Model untuk pelanggan bagi penjanaan lagu standard ialah suno-v6, suno-v6-wild dan suno-v6-mini. Jika model ditinggalkan, sistem menggunakan suno-v6.
Model standard suno-v2, suno-v3, suno-v3-5, suno-v4, suno-v4-5, suno-v4-5-all, suno-v4-5-plus, suno-v5 dan suno-v5-5 telah ditarik. Tugasan lama mungkin masih memaparkan nama-nama itu; itu data sejarah, bukan tanda model tersebut boleh dipakai untuk permintaan baharu. Pemisahan stem ialah pengecualian — lihat API pemisahan stem (pisah vokal/muzik).
Pengesahan
Setiap endpoint awam berkunci API menggunakan set pengepala yang sama:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
URL asas:
https://www.suno-api.io
Konvensyen parameter umum
numberdalam body mesti nombor JSON, bukan rentetan peratus. Keamatan 50% ditulis0.5, tidak pernah50atau50%.booleanmestitrueataufalse. Jangan gunakan0atau1sebagai ganti.- Medan bertanda "tidak" boleh ditinggalkan sepenuhnya. Jika anda tidak pasti apa fungsi sesuatu parameter, biarkan kosong supaya perkhidmatan menggunakan gelagat lalainya; jangan hantar rentetan kosong,
nullatau0sebagai ganti "tidak dihantar", kerana0ialah nilai sah bagi sesetengah medan nombor. - Nama medan sensitif pada ejaan. Setiap halaman endpoint menyenaraikan nama yang disyorkan dan alias yang serasi; hantar tepat seperti dalam jadual parameter. Di tempat dokumentasi menyatakan snake_case dan camelCase kedua-duanya diterima, jangan hantar kedua-duanya sekali gus.
- Setiap medan tempoh yang berakhir dengan
_satauSecondsdiukur dalam saat dan menerima perpuluhan. Timestamp Unix dijelaskan secara berasingan, termasuk sama ada dalam saat atau milisaat. - ID yang bermula dengan
pending:ialah pemegang tempat platform, bukansong_idsebenar. Gunakannya hanya di tempat endpoint menyatakan sokongan pemegang tempat secara jelas; selain itu tunggusong_idsebenar.
Had medan teks
Melebihi had teks mengembalikan HTTP 400 terus: tiada apa-apa dijana, tiada caj pendahuluan dan tiada rekod tugasan dicipta. Pengiraan mengikut aksara Unicode (satu aksara Han dikira 1) dan ruang di hadapan/hujung turut dikira.
| Medan (termasuk alias serasi yang didokumenkan pada setiap endpoint) | Had |
|---|---|
prompt / lyrics / description / theme / gpt_description_prompt |
3000 aksara |
style_tags / tags / style / original_tags |
1000 aksara |
negative_tags |
1000 aksara |
song_title / title |
100 aksara |
Medan message menyebut medan mana yang melanggar dan panjang yang diukur, jadi dua nombor itu sudah cukup untuk memendekkannya:
{
"error": {
"message": "style_tags must not exceed 1000 characters; received 2772",
"type": "invalid_request_error"
}
}
Terpakai kepada: /api/music/create, /api/music/create/custom, /api/music/extend, /api/music/upload-cover, /api/music/generate-from-source, /api/music/add-instrumental, /api/music/add-vocal, /api/music/add-stem, /api/music/mashup, /api/music/sample, /api/music/inspo, /api/music/crop, /api/music/remove-section, /api/music/fade, /api/music/reverse, /api/music/speed, /api/music/replace-section, /api/music/generate-with-voice.
Satu pengecualian: medan description bagi POST /api/music/sounds dihadkan kepada 100 aksara, kerana laluan kesan bunyi menggunakan had platform yang lebih pendek.
Penjanaan tak segerak dan alamat audio
Endpoint penjanaan muzik secara lalai berfungsi secara tak segerak. Apabila respons pertama membawa status bernilai pending, submitted atau processing, audio_url, video_url atau cover_url yang kosong adalah normal dan bukan tanda tugasan gagal. Simpan song_id sebenar (atau client_request_id yang dikembalikan endpoint) kemudian panggil endpoint pertanyaan yang sepadan; baca dan muat turun alamat audio hanya apabila status selesai.
⚠️ Alamat audio luput selepas 7 hari — pindahkan fail anda tepat pada masanya
audio_url,wav_url,video_urldan alamat yang dikembalikan endpoint muat turun disajikan daripada storan objek platform dan luput selepas 7 hari secara lalai (fail dikitar semula; alamat lama mengembalikan 404 / gagal dimuat turun).
- Dalam tempoh 7 hari itu, pindahkan fail ke storan anda sendiri (storan objek anda, CDN atau cakera pelayan). Jangan anggap alamat kami sebagai pautan berumur panjang.
- Alamat yang telah luput tidak memerlukan penjanaan semula lagu dan tiada kos tambahan: panggil semula API pertanyaan lagu (atau API muat turun media) untuk mendapatkan alamat baharu yang masih sah bagi lagu tersebut.
Masa menunggu dan tetapan timeout
Endpoint penjanaan bersifat segerak: pesanan hanya diterima dan diserahkan kepada platform untuk dijana apabila responsnya tiba. Sebelum itu, perkhidmatan perlu menjadualkan akaun dan melepasi pemeriksaan keselamatan yang diwajibkan, dan tiada respons pertengahan — tiada endpoint lain boleh melihat pesanan itu. Jadi satu-satunya bukti yang boleh dipercayai bahawa "sesuatu sudah dijana" ialah respons itu sendiri, bukan apa-apa yang anda perhatikan semasa menunggu.
Masa menunggu yang diukur (keluarga /api/music/create dalam production, 2026-09-18 hingga 2026-09-20)
| Persentil | Masa menunggu |
|---|---|
| p50 | kira-kira 1.2–1.6 saat |
| p75 | kira-kira 2–6 saat |
| p90 | kira-kira 42–49 saat |
| p95 | kira-kira 48–76 saat |
| p99 | kira-kira 109–160 saat |
| paling lama | kira-kira 230 saat |
- Kira-kira 10% permintaan mengambil masa lebih 30 saat dan kira-kira 1% mengambil 1–2 minit. Permintaan yang lambat biasanya bermakna permintaan itu perlu melepasi pemeriksaan keselamatan dahulu.
- Medan permintaan, bentuk respons, kod ralat dan pengebilan tidak berubah, jadi integrasi sedia ada hanya perlu menaikkan timeout klien — tiada perubahan kod lain.
Keperluan integrasi
- Tetapkan timeout klien 300 saat atau lebih. Klien yang lalai 30, 60 atau 120 saat akan memutuskan sambungan semasa menunggu.
- Tiada respons tidak bermakna tiada apa-apa dijana. Semasa timeout atau sambungan terputus, pesanan mungkin sudah diterima dan sedang dijana.
- Jangan cuba semula sejurus selepas timeout: penghantaran berganda mencipta pesanan kedua dan mencaj lagi.
- Jika sambungan terputus, senaraikan lagu anda dengan
GET /api/music/songs(terbaharu dahulu) sebentar kemudian — pesanan yang telah diterima akan muncul seperti biasa. Hantar semula hanya selepas anda mengesahkan pesanan itu benar-benar tiada. - Semasa melaporkan masalah, sertakan pengepala respons
X-Oneapi-Request-Idsupaya permintaan itu boleh dikesan terus.
Tidak mahu memegang sambungan lama? Gunakan mod terima-resit. POST /api/music/create dan POST /api/music/create/custom menyokong resit terima secara pilihan: tambah "accept_mode": "async" ke dalam body (atau pengepala X-Accept-Mode: async) dan endpoint terus mengembalikan 202 bersama nombor resit sementara penjanaan berterusan di latar belakang; panggil GET /api/music/requests/{request_id} untuk memantau kemajuannya. Klien yang timeoutnya hanya beberapa puluh saat tidak lagi tersalah membaca "tiada respons" sebagai "tiada apa-apa dijana", dan tidak boleh dicaj dua kali akibat percubaan semula. Lihat "Mod terima-resit" dalam API penjanaan mod mudah.
Sebagai rujukan:
python requestsmenggunakantimeout=300,urllibmenggunakanurlopen(..., timeout=300), Node menggunakanreq.setTimeout(300000), curl menggunakan--max-time 300.
Senarai endpoint yang disyorkan
| Keupayaan | Method | Path | Nota kos | Dokumentasi |
|---|---|---|---|---|
| Baki akaun | GET | /api/user/balance |
Percuma | Lihat |
| Penjanaan mod mudah | POST | /api/music/create |
Berbayar, kini lalai 0.6 ¥ setiap panggilan | Lihat |
| Penjanaan mod tersuai | POST | /api/music/create/custom |
Berbayar; menyokong jantina vokal, pengaruh gaya dan tahap keanehan | Lihat |
| Penjanaan pertuturan | POST | /api/music/speech |
Berbayar, kini lalai 0.6 ¥ setiap panggilan; muzik latar pilihan | Lihat |
| Kemajuan melalui resit terima | GET | /api/music/requests/{request_id} |
Percuma; digunakan bersama accept_mode=async |
Lihat |
| Kesan bunyi | POST | /api/music/sounds |
Berbayar, kini lalai 0.6 ¥ setiap panggilan | Lihat |
| Penjanaan lirik | POST | /api/lyrics/generate |
Percuma dalam kuota (10/minit, 300/hari), selepas itu 0.1 ¥ setiap panggilan | Lihat |
| Penciptaan profil suara (disyorkan) | POST | /api/music/voice-profile/create |
Percuma (enhanced=true dibilkan pada harga muat naik diperkukuh) |
Lihat |
| Cover dengan suara (disyorkan) | POST | /api/music/voice-profile/cover |
1.2 ¥ setiap panggilan; 2.4 ¥ dengan Max Mode | Lihat |
| Senarai / butiran / padam suara (disyorkan) | GET/POST | /api/music/voice-profile/list, /{voice_id}, /delete |
Percuma | Lihat |
| Klon suara (rantaian lama, tidak disyorkan) | POST | /api/voice/clone/validate |
Percuma | Lihat |
| Pertanyaan tugasan klon suara | GET | /api/voice/clone/tasks/:voice_task_id |
Percuma | Lihat |
| Jana semula teks pengesahan | POST | /api/voice/clone/tasks/:voice_task_id/regenerate |
Percuma | Lihat |
| Hantar audio pengesahan dan cipta suara | POST | /api/voice/clone/tasks/:voice_task_id/generate |
Dibilkan mengikut peraturan klon suara | Lihat |
| Semak sama ada suara yang diklon boleh digunakan | POST | /api/voice/clone/tasks/:voice_task_id/check |
Percuma | Lihat |
| Padam suara yang diklon | DELETE | /api/voice/clone/voices/:voice_task_id |
Percuma | Lihat |
| Jana muzik dengan suara pilihan | POST | /api/music/generate-with-voice |
Berbayar, 1.2 ¥ setiap panggilan; 2.4 ¥ dengan Max Mode | Lihat |
| Pertanyaan hasil penjanaan dengan suara pilihan | GET | /api/music/generate-with-voice/results |
Percuma | Lihat |
| Pengukuhan gaya | POST | /api/music/boost-style |
Percuma dalam kuota (10/minit, 300/hari), selepas itu 0.1 ¥ setiap panggilan | Lihat |
| Cadangan prompt | POST | /api/prompts/suggestions |
Percuma dalam kuota (10/minit, 300/hari), selepas itu 0.1 ¥ setiap panggilan | Lihat |
| Muat naik audio sumber | POST | /api/music/upload-source |
Percuma | Lihat |
| Hantar muat naik diperkukuh | POST | /api/music/enhanced-upload |
Berbayar, 10 ¥ setiap panggilan | Lihat |
| Senarai tugasan muat naik diperkukuh | GET | /api/music/enhanced-upload |
Percuma | Lihat |
| Pertanyaan satu tugasan muat naik diperkukuh | GET | /api/music/enhanced-upload/:id |
Percuma | Lihat |
| Batal tugasan muat naik diperkukuh | POST | /api/music/enhanced-upload/:id/cancel |
Percuma; hanya peringkat yang boleh dibatalkan dipulangkan wang | Lihat |
| Muat naik lalu cover | POST | /api/music/upload-cover |
Berbayar, kini lalai 0.6 ¥ setiap panggilan; untuk audio besar lebih baik guna dua langkah upload-source + generate-from-source |
Lihat |
| Cover daripada klip sumber | POST | /api/music/generate-from-source |
Berbayar, kini lalai 0.6 ¥ setiap panggilan | Lihat |
| Extend | POST | /api/music/extend |
Berbayar, kini lalai 0.6 ¥ setiap panggilan | Lihat |
| Replace Section | POST | /api/music/replace-section |
Berbayar, kini lalai 0.6 ¥ setiap panggilan | Lihat |
| Get Full Song | POST | /api/music/concat |
Berbayar, tetap 0.05 ¥ setiap panggilan | Lihat |
| Remaster | POST | /api/music/remaster |
Berbayar, kini lalai 0.6 ¥ setiap panggilan | Lihat |
| Tambah instrumental | POST | /api/music/add-instrumental |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Tambah vokal | POST | /api/music/add-vocal |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Tambah stem | POST | /api/music/add-stem |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Mashup | POST | /api/music/mashup |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Sample | POST | /api/music/sample |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Inspo | POST | /api/music/inspo |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Crop | POST | /api/music/crop |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Padam bahagian | POST | /api/music/remove-section |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Fade in/out | POST | /api/music/fade |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Terbalikkan | POST | /api/music/reverse |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Ubah kelajuan | POST | /api/music/speed |
Berbayar, dibilkan mengikut model yang diminta | Lihat |
| Pemisahan stem (pisah vokal/muzik) | POST | /api/music/separate |
Berbayar; two lalai 0.6 ¥ setiap panggilan, twelve 3.0 ¥ |
Lihat |
| Buang vokal | POST | /api/music/vocal-removal |
Percuma | Lihat |
| Padam stem | POST | /api/music/stem-delete |
Percuma | Lihat |
| Jana / dapatkan WAV | POST | /api/music/wav |
Percuma | Lihat |
| Dapatkan MIDI | POST | /api/music/download-file (kind=midi) |
Percuma | Lihat |
| Alamat media / strim pratonton | POST | /api/music/download-url, /api/music/generation-stream-url |
Percuma | Lihat |
| Muat turun fail lagu | POST | /api/music/download-file |
Percuma | Lihat |
| Muat turun pakej lagu | POST | /api/music/download-all |
Percuma | Lihat |
| Alamat muat turun stabil | GET | /api/music/download |
Percuma | Lihat |
| Muat turun free2 | POST | /api/music/free2 |
Berbayar, 0.2 ¥ setiap lagu yang berjaya | Lihat |
| Pertanyaan status satu lagu | POST | /api/music/query |
Percuma | Lihat |
| Sejarah lagu akaun | GET | /api/music/songs |
Percuma | Lihat |
| Parameter penjanaan lagu | GET | /api/music/songs/:song_id |
Percuma | Lihat |
| Lirik bertimestamp | POST | /api/lyrics/timeline |
Percuma | Lihat |
| Kelayakan lesen dan identiti | GET | /api/music/authorization/context |
Percuma | Lihat |
| Ikat identiti lesen | POST | /api/music/authorization/identity |
Percuma; tidak boleh diubah selepas disahkan | Lihat |
| Senarai lagu yang boleh dilesenkan | GET | /api/music/authorization/songs |
Percuma; pengikatan identiti diperlukan | Lihat |
| Keluarkan lesen komersial | POST | /api/music/authorization/certificates |
Percuma; kelayakan diperlukan | Lihat |
| Sejarah lesen | GET | /api/music/authorization/certificates |
Percuma | Lihat |
| Butiran lesen | GET | /api/music/authorization/certificates/:id |
Percuma | Lihat |
| Muat turun PDF lesen | GET | /api/music/authorization/certificates/:id/download |
Percuma | Lihat |
/api/voice/clone/*dan/api/music/generate-with-voiceialah rantaian klon suara generasi awal dan tidak disyorkan untuk integrasi baharu; gunakan 【Disyorkan】 API profil suara sebaliknya.
Parameter lanjutan: Max Mode dan Variety
Endpoint penjanaan menyokong dua parameter pilihan ini (meninggalkannya mengekalkan gelagat dan harga sebelumnya):
| Parameter | Jenis | Julat | Nota |
|---|---|---|---|
| max_mode | boolean | true / false |
Menggunakan lebih banyak pengiraan untuk meningkatkan konsistensi sepanjang lagu; permintaan ini dibilkan pada 2× harga |
| variety | integer | 0-4 |
Tahap variasi gaya: 0=Mati, 1=Normal, 2=Tinggi, 3=Tambahan, 4=Maksimum. Tinggalkan untuk menggunakan tahap lalai model (keluarga v6 lalai 1); tiada caj tambahan |
Kedua-dua parameter ini disokong oleh: POST /api/music/create, POST /api/music/create/custom,
POST /api/music/extend, POST /api/music/upload-cover, POST /api/music/generate-from-source,
POST /api/music/add-instrumental, POST /api/music/add-vocal, POST /api/music/add-stem,
POST /api/music/mashup, POST /api/music/sample, POST /api/music/inspo,
POST /api/music/replace-section, POST /api/music/voice-profile/cover, POST /api/music/speech.
- Harga 2× dalam praktik: endpoint yang berharga 0.6 ¥ setiap panggilan menjadi 1.2 ¥ dengan
max_mode; jana dengan suara pilihan berharga 1.2 ¥ setiap panggilan dan 2.4 ¥ dengan Max Mode; cover dengan suara bagi 【Disyorkan】 API profil suara juga 1.2 ¥ setiap panggilan (2.4 ¥ denganmax_mode). varietyhanya terpakai kepada keluargasuno-v6(suno-v6,suno-v6-wild,suno-v6-mini); menghantarnya bersama model lain mengembalikan 400.- Kesan bunyi, pemisahan stem, concat, WAV dan tindakan penyuntingan Studio (crop, padam bahagian, fade, terbalikkan, ubah kelajuan dan sebagainya) tidak menerima kedua-dua parameter ini — menghantarnya secara jelas mengembalikan 400, supaya tiada parameter diabaikan secara senyap.
varietyialah integer mentah 0-4;style_weightdanweirdness_constraintialah perpuluhan dari 0 hingga 1, jadi skalanya berbeza.
Medan respons lagu yang biasa
Endpoint penjanaan, cover, extend, pemisahan dan pertanyaan biasanya mengembalikan tatasusunan lagu dengan medan berikut:
| Medan | Jenis | Nota |
|---|---|---|
song_id |
string | ID lagu atau tugasan |
song_title |
string | Tajuk lagu |
status |
string | Status seperti pending, completed, failed |
audio_url |
string | Alamat audio, dikembalikan apabila penjanaan selesai |
video_url |
string | Alamat video, mungkin kosong |
cover_url |
string | Alamat imej kulit |
lyrics |
string | Teks lirik |
style_tags |
string | Tag gaya |
duration |
number | Tempoh audio dalam saat |
created_at |
string | Masa penciptaan |
model_version |
string | Versi model |
generation_type |
string | Jenis penjanaan |
error_message |
string | Sebab kegagalan |
Empat langkah berintegrasi (contoh minimum yang berfungsi)
Lengkapkan keempat-empat langkah ini dan anda sudah ada lagu pertama; senarai medan penuh setiap langkah ada pada halaman yang sepadan dalam senarai endpoint yang disyorkan.
# 1) Hantar permintaan penjanaan: 0.6 ¥, menghasilkan 2 lagu
curl -X POST https://www.suno-api.io/api/music/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"description": "bright Mandarin pop, piano intro, warm female vocal", "model": "suno-v6"}'
# 2) Polling tugasan sehingga status completed (selang 3-5 saat sudah sesuai)
curl -X POST https://www.suno-api.io/api/music/query \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_id": "song_id yang dikembalikan pada langkah 1"}'
# 3) Dapatkan alamat media: endpoint baca semuanya percuma; tersedia song / wav / video / cover / midi
curl -X POST https://www.suno-api.io/api/music/download-url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_id": "song_id yang sama", "kind": "song"}'
Apabila berlaku masalah: 401 / 402 / 403 / 429 dibincangkan dalam rujukan ralat; timeout dan caj berganda dalam bahagian "Masa menunggu dan tetapan timeout" di atas; butiran setiap endpoint dalam senarai endpoint yang disyorkan di bawah.
Saranan
- Integrasi baharu sebaiknya menggunakan
suno-v6sepanjang aliran. - Bagi endpoint yang menyebut harga lalai, jumlah yang benar-benar dibilkan mengikut konfigurasi harga back-office semasa dan model yang diminta.
- Endpoint penjanaan biasanya mengembalikan tugasan dahulu; baca audio akhirnya melalui
/api/music/query. wait_completion=truemenyekat sehingga selesai dan sesuai untuk ujian bervolume rendah; dalam production, polling lebih disyorkan.- Endpoint penjanaan boleh mengambil masa yang sangat lama untuk membalas — tetapkan timeout klien 300 saat atau lebih, dan ingat bahawa "tiada respons" tidak sama dengan "tiada apa-apa dijana"; lihat "Masa menunggu dan tetapan timeout" di atas.
- Keupayaan muat naik, cover, replace dan WAV bergantung pada akaun platform dan kebenaran klip sumber; apabila gagal, baca dahulu
messageatauerror_messageyang dikembalikan.
Tentang dokumentasi ini
Halaman ini disusun semula mengikut keupayaan yang benar-benar dipaparkan Create UI, dan integrasi baharu sebaiknya membacanya dahulu. Dokumentasi API lama masih tersedia dalam bahagian "Dokumentasi API lama (serasi)" untuk pemanggil yang mahu terus menggunakannya.
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