Güçlendirilmiş yükleme API'si
Uç nokta açıklaması
Güçlendirilmiş yükleme yerel bir ses dosyası gönderir; sistem güçlendirmeyi arka planda yapar ve çalınabilir eksiksiz bir şarkı üretir. Gönderme çağrısı görev bilgisini hemen döndürür ve istemci ilerlemeyi sorgu uç noktasıyla yoklar.
Gönderme uç noktası: POST /api/music/enhanced-upload
Tek görev sorgusu: GET /api/music/enhanced-upload/:id
Görevi iptal etme: POST /api/music/enhanced-upload/:id/cancel
Liste sorgusu: GET /api/music/enhanced-upload
Faturalama: Çağrı başına 10 ¥; suno-enhanced-upload sabit fiyatıyla önceden tahsil edilir. Görev başarısız olursa ya da izin verilen aşamada iptal edilirse önceden alınan tutar otomatik iade edilir. Gerçekte tahsil edilen tutar güncel arka ofis fiyat yapılandırmasına göre belirlenir.
Çağrı akışı
- Ses dosyasını yüklemek için
POST /api/music/enhanced-uploadçağırın. - Dönen
task_iddeğerini saklayın. - İlerlemeyi ve sonucu görmek için
GET /api/music/enhanced-upload/:idçağırın. - Suno nihai render'ı bitirdiğinde hizmet, o göreve bağlı Suno hesabıyla Studio'nun yetkili indirme uç noktasını çağırır ve MP3'ü CN2 medya hizmetine yazar.
- Görev ancak CN2 varlığı hazır olduğunda
completedolur; o anda yanıttakiaudio_urlüzerinden CDN ses adresi alınır.
/api/forbidden, Suno Studio üst verisinde görülebilen bir yer tutucu adrestir; çalınabilir veya indirilebilir bir kaynak değildir. Müşteriye hiçbir zaman döndürülmez ve tamamlanma kanıtı olarak kullanılmaz. Render bitmiş ama CN2 hâlâ hazırlanıyorsa uç nokta processing döndürmeye devam eder ve audio_url döndürmez; istemci yoklamayı sürdürmeli ve boş adresi başarısızlık saymamalıdır.
Güçlendirilmiş yükleme gönderme
Headers
| Parametre | Tür | Zorunlu | Notlar |
|---|---|---|---|
| Authorization | string | evet | Bearer YOUR_API_KEY |
| Content-Type | string | hayır | multipart isteklerde elle ayarlamayın; istemcinin oluşturmasına bırakın |
Form parametreleri
| Parametre | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|
| file | file | evet | - | Yerel ses dosyası, en fazla 80 MB |
| title | string | hayır | uzantısız dosya adı | Şarkı başlığı |
İstek örneği
Aşağıdaki örnek, üretim doğrulamasındakiyle aynı çağrı biçimini kullanır; ancak API anahtarı bir yer tutucuyla değiştirilmiştir.
curl.exe --http1.1 -s -S \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@source.aac" \
-F "title=Enhanced upload demo" \
"https://www.suno-api.io/api/music/enhanced-upload"
Yanıt
{
"success": true,
"message": "",
"data": {
"task_id": 3209,
"song_id": "pending:enhanced-upload:cu_20260611003241723483700xnCcQg",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"title": "Enhanced upload demo",
"file_name": "source.aac",
"status": "queued",
"created_at": 1781137961,
"pre_consumed_quota": 5000000,
"billing_source": "wallet"
}
}
Tek görev sorgulama
İstek örneği
curl.exe --http1.1 -s -S \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://www.suno-api.io/api/music/enhanced-upload/3209"
İşleniyor yanıtı örneği
{
"success": true,
"message": "",
"data": {
"task": {
"task_id": 3209,
"song_id": "pending:enhanced-upload:cu_20260611003241723483700xnCcQg",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"title": "Enhanced upload demo",
"file_name": "source.aac",
"status": "processing",
"type": "enhanced_upload",
"progress": {
"stage": "media_preparing",
"percent": 98,
"label": "正在准备播放资源",
"updated_at": 1781138500
},
"pre_consumed_quota": 5000000,
"billing_source": "wallet",
"created_at": 1781137961,
"updated_at": 1781138500
}
}
}
Tamamlandı yanıtı örneği
{
"success": true,
"message": "",
"data": {
"task": {
"task_id": 3209,
"song_id": "56cbd0bb-0e8c-4a34-8729-55d5c05d9c53",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"title": "Enhanced upload demo",
"file_name": "source.aac",
"status": "completed",
"type": "enhanced_upload",
"audio_url": "https://media.code-go.com/assets/56cbd0bb-0e8c-4a34-8729-55d5c05d9c53-mp3.mp3",
"duration": 217.74,
"progress": {
"stage": "completed",
"percent": 100,
"label": "已完成",
"updated_at": 1781138943
},
"pre_consumed_quota": 5000000,
"billing_source": "wallet",
"created_at": 1781137961,
"updated_at": 1781138943,
"completed_at": 1781138943
}
}
}
Görevi iptal etme
İptal, yalnızca görev ve arka uç iş akışı hâlâ queued aşamasındayken mümkündür. Görev leasing, running, processing aşamasına girdikten veya tamamlandıktan sonra iptal edilemez.
İstek örneği
curl.exe --http1.1 -s -S -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://www.suno-api.io/api/music/enhanced-upload/3209/cancel"
Yanıt
{
"success": true,
"message": "",
"data": {
"task_id": 3209,
"song_id": "pending:enhanced-upload:cu_20260611003241723483700xnCcQg",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"status": "cancelled"
}
}
Görev işlenmeye başladıysa uç nokta şunu döndürür:
{
"success": false,
"message": "强化上传已开始处理,无法取消"
}
Görev listesini sorgulama
Liste uç noktası yalnızca mevcut API anahtarının ait olduğu kullanıcının güçlendirilmiş yükleme görevlerini döndürür; normal üretim, cover ve uzatma görevleri karışmaz.
Sorgu parametreleri
| Parametre | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|
| p | number | hayır | 1 | Sayfa numarası |
| page_size | number | hayır | sistem varsayılanı | Sayfa başına kayıt, en fazla 100 |
İstek örneği
curl.exe --http1.1 -s -S \
-H "Authorization: Bearer YOUR_API_KEY" \
"https://www.suno-api.io/api/music/enhanced-upload?p=1&page_size=3"
Yanıt
{
"success": true,
"message": "",
"data": {
"page": 1,
"page_size": 3,
"total": 1,
"items": [
{
"task_id": 3209,
"song_id": "56cbd0bb-0e8c-4a34-8729-55d5c05d9c53",
"client_request_id": "cu_20260611003241723483700xnCcQg",
"title": "Enhanced upload demo",
"file_name": "source.aac",
"status": "completed",
"type": "enhanced_upload",
"audio_url": "https://media.code-go.com/assets/56cbd0bb-0e8c-4a34-8729-55d5c05d9c53-mp3.mp3",
"duration": 217.74,
"progress": {
"stage": "completed",
"percent": 100,
"label": "已完成",
"updated_at": 1781138943
},
"pre_consumed_quota": 5000000,
"billing_source": "wallet",
"created_at": 1781137961,
"updated_at": 1781138943,
"completed_at": 1781138943
}
]
}
}
Yanıt alanları açıklaması
| Alan | Tür | Notlar |
|---|---|---|
| task_id | number | Güçlendirilmiş yükleme görev ID'si; sonraki sorgular ve iptal için bu değeri kullanın |
| song_id | string | İşlenirken pending:enhanced-upload:*, tamamlandığında gerçek şarkı ID'si |
| client_request_id | string | İstemci istek izleme ID'si |
| status | string | Görev durumu: queued, processing, completed, failed, cancelled gibi |
| type | string | Her zaman enhanced_upload |
| audio_url | string | Tamamlandıktan sonraki ses adresi |
| duration | number | Ses süresi (saniye) |
| progress.stage | string | Geçerli işleme aşaması |
| progress.percent | number | İlerleme yüzdesi |
| progress.label | string | Kullanıcıya gösterilen ilerleme metni |
| pre_consumed_quota | number | Bu çağrı için önceden alınan kota |
| billing_source | string | Tahsilat kaynağı, örneğin wallet |
| error_message | string | Başarısızlık nedeni |
Notlar
- Bu uç nokta şu anda yalnızca multipart dosya yüklemeyi destekler; JSON
file_urlvefile_base64desteklenmez. - Yüklenen dosya en fazla 80 MB olabilir.
- Gönderme uç noktası asenkrondur:
queuedyanıtı görevin kuyruğa girdiği anlamına gelir, sesin bittiği anlamına gelmez. - İptal yalnızca işlemeye başlamamış görevler için geçerlidir; işleme başladıktan sonra platform hesabının iş akışı kesilmez.
- İstemci kodunda gerçek API anahtarlarını açığa çıkarmayın.
Güçlendirilmiş yükleme bittikten sonra cover başlatma
Güçlendirilmiş yükleme tamamlandığında sonucu kaynak klip olarak kullanıp POST /api/music/generate-from-source çağırarak cover başlatabilirsiniz.
Dikkat: cover bir senkron uç noktadır — sipariş ancak yanıt geldiğinde kabul edilir ve ölçümlere göre bekleme yaklaşık 230 saniyeye kadar çıkabilir. İstemci zaman aşımını 300 saniye veya üzerine ayarlayın ve zaman aşımından hemen sonra yeniden denemeyin. Ayrıntılar için Yeni API genel bakışı sayfasındaki "Bekleme süreleri ve zaman aşımı ayarları" bölümüne bakın.
Önce GET /api/music/enhanced-upload/:id çağrısını task.status completed olana kadar yoklayın. O anda:
task.song_idgerçek şarkı ID'sidir ve cover uç noktasının istediğisourceClipIdde budur;task.audio_urldeğerinisourceAudioUrlolarak da göndermeniz önerilir; böylece sunucu kaynak klip ile çalıştıran hesabın farklı olduğu durumu ele alabilir;task.task_idyalnızca güçlendirilmiş yükleme görev ID'sidir vesourceClipIdolarak kullanılamaz;pending:enhanced-upload:*işleme aşamasının yer tutucu ID'sidir ve cover için kullanılamaz.
Cover'ı başlatırken güçlendirilmiş yüklemeyle aynı API anahtarını kullanın ve isteği aşağıdaki alan eşlemesine göre kurun.
| Cover isteği alanı | Değerin kaynağı |
|---|---|
sourceClipId |
Tamamlanan güçlendirilmiş yüklemedeki task.song_id |
sourceAudioUrl |
Tamamlanan güçlendirilmiş yüklemedeki task.audio_url |
sourceTitle |
Tamamlanan güçlendirilmiş yüklemedeki task.title |
Kalan söz, stil, başlık ve model parametrelerini kaynak klipten cover API'si sayfasına göre doldurun. Cover uç noktası yeni clips[].song_id döndürdüğünde, üretim durumunu ve nihai sesi görmek için POST /api/music/query çağırın.
API anahtarı alın
Kaydolduktan sonra konsoldan bir API anahtarı oluşturun. Her üretim 0,6 ¥ tutarındadır ve 2 parça döner, indirmeler sınırsızdır ve telefon numarası gerekmez.
API anahtarı al Genel bakışa dön