Özel mod üretim API'si
Uç nokta açıklaması
Özel mod; sözler, stil ve başlık hazır olduğunda ve söyleyen sesi, stil etkisinin gücünü ve üretimin rastgelelik derecesini kontrol etmek istediğinizde uygundur.
Uç nokta: POST /api/music/create/custom
Faturalama: Ücretli, şu anda varsayılan olarak çağrı başına 0,6 ¥. Her çağrı genellikle 2 şarkı döndürür; gerçekte tahsil edilen tutar güncel arka ofis fiyat yapılandırmasına göre belirlenir.
Max Mode / Variety: bu uç nokta isteğe bağlı max_mode ve variety (0-4) parametrelerini destekler. max_mode
açıkken bu çağrı 2 kat fiyattan faturalanır (0,6 → 1,2 ¥ / çağrı); variety için ek ücret alınmaz.
Anlamları ve nasıl gönderilecekleri Yeni API genel bakışı sayfasındaki
"Gelişmiş parametreler" bölümündedir.
Bekleme süreleri ve zaman aşımları (önemli): bu uç nokta senkrondur — sipariş ancak yanıt geldiğinde kabul edilir ve üretime verilir. Ölçümlere göre isteklerin çoğu 1-3 saniyede yanıtlanır, yaklaşık %10'u 30 saniyeyi aşar ve en uzunu yaklaşık 230 saniyedir. İstemci zaman aşımını 300 saniye veya üzerine ayarlayın; yanıt gelmemesi hiçbir şey üretilmediği anlamına gelmez ve zaman aşımından hemen sonra yeniden denemeyin (siparişi çoğaltır ve tekrar ücret alır). Bağlantı koptuysa daha sonra
GET /api/music/songsile kontrol edin. Yeni API genel bakışı sayfasındaki "Bekleme süreleri ve zaman aşımı ayarları" bölümüne bakın.
İstek parametreleri
Headers
| Parametre | Tür | Zorunlu | Notlar |
|---|---|---|---|
| Authorization | string | evet | Bearer YOUR_API_KEY |
| Content-Type | string | evet | application/json |
Gövde parametreleri
| Parametre | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|
| model | string | hayır | suno-v6 |
Müşteriye görünen model adı: suno-v6, suno-v6-wild veya suno-v6-mini |
| lyrics | string | hayır | - | Sözler; enstrümantal bir parçada boş kalabilir |
| style_tags | string | evet | - | Stil etiketleri; birden fazlası virgülle ayrılabilir |
| song_title | string | hayır | - | Şarkı başlığı |
| instrumental | boolean | hayır | false |
Enstrümantal parça üretilsin mi |
| negative_tags | string | hayır | - | İstemediğiniz stiller veya efektler |
| vocal_gender | string | hayır | - | Vokal cinsiyeti: m, f, male veya female |
| style_weight | number | hayır | - | Stil etkisi, 0.0 ile 1.0 arası |
| weirdness_constraint | number | hayır | - | Rastgelelik, 0.0 ile 1.0 arası |
| wait_completion | boolean | hayır | false |
Yanıt vermeden önce üretimin bitmesini bekleyip beklememek |
Gelişmiş parametre notları
Vokal cinsiyeti vocal_gender
- Erkek ses için
mveyamale, kadın ses içinfveyafemalegönderin. - Servis
malevefemaledeğerlerini sırasıylamvefolarak normalleştirir. instrumental=trueiken üretim servisine vokal cinsiyeti parametresi gönderilmez.
Stil etkisi style_weight
Sonucun style_tags değerine ne kadar güçlü uyduğunu kontrol eder. Değer yükseldikçe sonuç, verdiğiniz stil etiketlerine daha çok uyar.
Rastgelelik weirdness_constraint
Sonucun ne kadar değiştiğini ve deneysel davrandığını kontrol eder. Yüksek değerler genelde daha fazla çeşitlilik; düşük değerler daha güvenli bir sonuç verir.
Her iki sayısal parametre de 0.0 ile 1.0 arasındadır ve 0 geçerli bir açık değerdir. Yalnızca alanı tamamen atlamak "belirtilmedi" anlamına gelir.
Doldururken bunların yüzde tamsayıları değil ondalık kesirler olduğunu unutmayın. Önerilen ölçek: 0.0–0.3 tutucu, 0.4–0.6 dengeli, 0.7–1.0 daha deneysel; belirgin bir tercihiniz yoksa 0.5 kullanın ya da alanları atlayın. Örnek: weirdness_constraint: 0.5, asla 50 veya 50%.
instrumental=true olduğunda sonuç enstrümantaldir, bu yüzden sözler ve vokal cinsiyeti sözlü bir şarkıdaki gibi işlemez; vokal gerekiyorsa false gönderin veya alanı atlayın. Mantıksal alanlar JSON true/false kullanmalıdır, metin değil.
Python istek örneği
import requests
response = requests.post(
'https://www.suno-api.io/api/music/create/custom',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={
'model': 'suno-v6',
'lyrics': '[Verse]\nGece denizin üzerine iniyor\nakşam rüzgârı pencereyi sıyırıp geçiyor',
'style_tags': 'Mandopop, acoustic guitar, warm vocal',
'song_title': 'Deniz kenarında akşam rüzgârı',
'vocal_gender': 'male',
'style_weight': 0.68,
'weirdness_constraint': 0.32,
},
timeout=300,
)
response.raise_for_status()
songs = response.json()
Kabul makbuzu modu (isteğe bağlı)
Bu uç nokta, basit mod üretim API'sindeki kabul makbuzu modunu da destekler: gövdeye "accept_mode": "async" (veya X-Accept-Mode: async başlığı) eklendiğinde uç nokta hemen 202 ve bir makbuz numarası döndürür, üretim arka planda sürer ve ilerlemeyi GET /api/music/requests/{request_id} ile izlersiniz.
Uzun bağlantı tutmaması gereken ya da zaman aşımının "hiç üretilmedi" diye okunmasını istemeyen istemciler için uygundur. Bu parametre olmadan davranış tam olarak eskisi gibidir.
curl -X POST https://www.suno-api.io/api/music/create/custom \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--max-time 300 \
-d '{
"style_tags": "Mandopop, acoustic guitar, warm vocal",
"song_title": "Deniz kenarında akşam rüzgârı",
"vocal_gender": "male",
"accept_mode": "async"
}'
Yanıt yapısı ve yoklama yöntemi, basit mod üretim API'sindeki "Kabul makbuzu modu" bölümündedir.
Parametre doğrulama
Bu durumlar HTTP 400 döndürür ve hatanın message alanı geçersiz alanı belirtir:
style_weightveyaweirdness_constraintbir sayı değil.- Sayısal bir değer
0.0altında veya1.0üzerinde. vocal_gender,m,f,male,femaledeğerlerinden biri değil.
Metin alanı sınırları
Bu alanlar da aşıldığında HTTP 400 döndürür, üretime hiç girmez ve ön tahsilat yapılmaz. Sayım Unicode karakterle yapılır (bir Han karakteri 1 sayılır) ve baştaki/sondaki boşluklar da sayılır:
| Alan | Sınır |
|---|---|
prompt (sözler, lyrics ile uyumlu) |
3000 karakter |
style_tags (stil, tags, style ile uyumlu) |
1000 karakter |
negative_tags (hariç tutulan stiller) |
1000 karakter |
song_title (başlık, title ile uyumlu) |
100 karakter |
Hata mesajı style_tags must not exceed 1000 characters; received 2772 biçimindedir. İlk sözcük aşılan alanın adı, sonda ise ölçülen sayıdır, yani 400 aldığınızda alanları tek tek denemek yerine bu iki sayıya göre kısaltırsınız. Genel kurallar Yeni API genel bakışının "Metin alanı sınırları" bölümündedir.
Yanıt
Uç nokta genellikle 2 şarkı içeren bir dizi döndürür. Asenkron istek genelde pending durumuyla başlar; song_id değerini kaydedin ve nihai durumu ve ses adresini şarkı sorgulama API'sinden alın. Şarkı alanları basit mod üretim API'sindekiyle aynıdır.
Uyumlu alanlar
| Önerilen alan | Uyumlu alan |
|---|---|
vocal_gender |
vocalGender |
style_weight |
styleWeight |
weirdness_constraint |
weirdnessConstraint |
Yeni entegrasyonlar her yerde snake_case kullanmalıdır. Aynı istek hem snake_case hem camelCase taşıyorsa snake_case değeri geçerlidir.
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