Suno Metinden Müziğe
Asenkron bir Görev oluşturmak için metinden müziğe uç noktasını kullanın.
Genel Bakış
Metinden müziğe uç noktasını desteklenen bir modelle kullanın. Durumunu almak için döndürülen Görev Kimliğini kullanın veya aşağıda belgelenen teslimler için callback_url sağlayın.
Hızlı başlangıç
- Bir API anahtarı oluşturun ve RUNAPI_API_KEY olarak ayarlayın.
- Desteklenen bir model seçin ve gövdesi o modelin şemasıyla eşleşen bir POST isteği gönderin.
- Döndürülen görev kimliğini saklayın, ardından bir terminal durumuna ulaşana kadar yoklama yapın ya da aşağıda belgelenen geri çağırmaları işleyin.
Uç Nokta
- Temel URL
https://runapi.ai- API sürümü
v1- Kimlik doğrulama
Authorization: Bearer YOUR_API_TOKEN
Desteklenen modeller
Güncel fiyatlandırma, hız sınırları ve ticari kullanım ayrıntıları için bir model sayfası açın.
İstek şeması
Alanlar ve izin verilen değerler seçili modele göre değişir. Sağlandığında, callback_url aşağıda belgelenen Görev teslimatlarını alır.
suno-v415 alan
audio_weightnumberSes ağırlığı (0-1).
Aralık:0 - 1
callback_urlstringAsenkron bildirimler için webhook URL'si.
continue_atnumberDevam edilecek saniye cinsinden zaman damgası.
lyricsstringSöylenecek tam şarkı sözleri.
Sınır:5000
modelstringModel tanımlayıcısı.
negative_tagsstringKaçınılacak stiller.
persona_idstringPersona kimliği.
persona_typestringPersona türü.
İzin verilen değerler:style, voice
promptstringOtomatik sözler için şarkı özeti.
Sınır:5000
stylestringMüzik tarzı.
Sınır:1000
style_weightnumberStil uyum ağırlığı (0-1).
Aralık:0 - 1
titlestringMüzik başlığı.
Sınır:80
vocal_genderstringVokal cinsiyeti.
İzin verilen değerler:male, female
vocal_modestringVokal oluşturma modu.
İzin verilen değerler:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberTuhaflık kısıtlaması (0-1).
Aralık:0 - 1
suno-v4.515 alan
audio_weightnumberSes ağırlığı (0-1).
Aralık:0 - 1
callback_urlstringAsenkron bildirimler için webhook URL'si.
continue_atnumberDevam edilecek saniye cinsinden zaman damgası.
lyricsstringSöylenecek tam şarkı sözleri.
Sınır:5000
modelstringModel tanımlayıcısı.
negative_tagsstringKaçınılacak stiller.
persona_idstringPersona kimliği.
persona_typestringPersona türü.
İzin verilen değerler:style, voice
promptstringOtomatik sözler için şarkı özeti.
Sınır:5000
stylestringMüzik tarzı.
Sınır:1000
style_weightnumberStil uyum ağırlığı (0-1).
Aralık:0 - 1
titlestringMüzik başlığı.
Sınır:80
vocal_genderstringVokal cinsiyeti.
İzin verilen değerler:male, female
vocal_modestringVokal oluşturma modu.
İzin verilen değerler:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberTuhaflık kısıtlaması (0-1).
Aralık:0 - 1
suno-v4.5-all15 alan
audio_weightnumberSes ağırlığı (0-1).
Aralık:0 - 1
callback_urlstringAsenkron bildirimler için webhook URL'si.
continue_atnumberDevam edilecek saniye cinsinden zaman damgası.
lyricsstringSöylenecek tam şarkı sözleri.
Sınır:5000
modelstringModel tanımlayıcısı.
negative_tagsstringKaçınılacak stiller.
persona_idstringPersona kimliği.
persona_typestringPersona türü.
İzin verilen değerler:style, voice
promptstringOtomatik sözler için şarkı özeti.
Sınır:5000
stylestringMüzik tarzı.
Sınır:1000
style_weightnumberStil uyum ağırlığı (0-1).
Aralık:0 - 1
titlestringMüzik başlığı.
Sınır:80
vocal_genderstringVokal cinsiyeti.
İzin verilen değerler:male, female
vocal_modestringVokal oluşturma modu.
İzin verilen değerler:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberTuhaflık kısıtlaması (0-1).
Aralık:0 - 1
suno-v4.5-plus15 alan
audio_weightnumberSes ağırlığı (0-1).
Aralık:0 - 1
callback_urlstringAsenkron bildirimler için webhook URL'si.
continue_atnumberDevam edilecek saniye cinsinden zaman damgası.
lyricsstringSöylenecek tam şarkı sözleri.
Sınır:5000
modelstringModel tanımlayıcısı.
negative_tagsstringKaçınılacak stiller.
persona_idstringPersona kimliği.
persona_typestringPersona türü.
İzin verilen değerler:style, voice
promptstringOtomatik sözler için şarkı özeti.
Sınır:5000
stylestringMüzik tarzı.
Sınır:1000
style_weightnumberStil uyum ağırlığı (0-1).
Aralık:0 - 1
titlestringMüzik başlığı.
Sınır:80
vocal_genderstringVokal cinsiyeti.
İzin verilen değerler:male, female
vocal_modestringVokal oluşturma modu.
İzin verilen değerler:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberTuhaflık kısıtlaması (0-1).
Aralık:0 - 1
suno-v515 alan
audio_weightnumberSes ağırlığı (0-1).
Aralık:0 - 1
callback_urlstringAsenkron bildirimler için webhook URL'si.
continue_atnumberDevam edilecek saniye cinsinden zaman damgası.
lyricsstringSöylenecek tam şarkı sözleri.
Sınır:5000
modelstringModel tanımlayıcısı.
negative_tagsstringKaçınılacak stiller.
persona_idstringPersona kimliği.
persona_typestringPersona türü.
İzin verilen değerler:style, voice
promptstringOtomatik sözler için şarkı özeti.
Sınır:5000
stylestringMüzik tarzı.
Sınır:1000
style_weightnumberStil uyum ağırlığı (0-1).
Aralık:0 - 1
titlestringMüzik başlığı.
Sınır:80
vocal_genderstringVokal cinsiyeti.
İzin verilen değerler:male, female
vocal_modestringVokal oluşturma modu.
İzin verilen değerler:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberTuhaflık kısıtlaması (0-1).
Aralık:0 - 1
suno-v5.516 alan
audio_weightnumberSes ağırlığı (0-1).
Aralık:0 - 1
callback_urlstringAsenkron bildirimler için webhook URL'si.
continue_atnumberDevam edilecek saniye cinsinden zaman damgası.
duration_secondsintegerSaniye cinsinden tercih edilen süre; yalnızca Suno V5.5 özel istekleri için geçerlidir.
Aralık:10 - 360
lyricsstringSöylenecek tam şarkı sözleri.
Sınır:5000
modelstringModel tanımlayıcısı.
negative_tagsstringKaçınılacak stiller.
persona_idstringPersona kimliği.
persona_typestringPersona türü.
İzin verilen değerler:style, voice
promptstringOtomatik sözler için şarkı özeti.
Sınır:5000
stylestringMüzik tarzı.
Sınır:1000
style_weightnumberStil uyum ağırlığı (0-1).
Aralık:0 - 1
titlestringMüzik başlığı.
Sınır:80
vocal_genderstringVokal cinsiyeti.
İzin verilen değerler:male, female
vocal_modestringVokal oluşturma modu.
İzin verilen değerler:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberTuhaflık kısıtlaması (0-1).
Aralık:0 - 1
Koşullu kurallar
Bu gereksinimler, listelenen tüm koşulların eşleştiği durumlarda uygulanır.
-
Şu durumlarda
vocal_mode = auto_lyrics- Gerekli
prompt- Kabul edilmez
lyrics,style,title,negative_tags,vocal_gender,duration_seconds
-
Şu durumlarda
vocal_mode = exact_lyrics- Gerekli
lyrics,style,title- Kabul edilmez
prompt
-
Şu durumlarda
vocal_mode = instrumental- Gerekli
style,title- Kabul edilmez
prompt,lyrics,vocal_gender
-
Şu durumlarda
model = suno-v4- Gerekli
- Kabul edilmez
duration_seconds
-
Şu durumlarda
model = suno-v4.5- Gerekli
- Kabul edilmez
duration_seconds
-
Şu durumlarda
model = suno-v4.5-all- Gerekli
- Kabul edilmez
duration_seconds
-
Şu durumlarda
model = suno-v4.5-plus- Gerekli
- Kabul edilmez
duration_seconds
-
Şu durumlarda
model = suno-v5- Gerekli
- Kabul edilmez
duration_seconds
Kabul oluştur
POST /api/v1/suno/text_to_music
Yanıt şeması
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
},
"task_replayed": {
"type": "boolean"
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
Yoklama işleniyor
GET /api/v1/suno/text_to_music/:id
Yanıt şeması
{
"properties": {
"audios": {
"items": {
"properties": {
"audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"duration": {
"type": "number"
},
"id": {
"type": "string"
},
"image_url": {
"type": "string",
"x-runapi-generated-media": true
},
"lyrics": {
"type": "string"
},
"model_name": {
"type": "string"
},
"stream_audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
},
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"generation_stage": {
"enum": [
"text_generated",
"first_audio_ready"
],
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
}
},
"required": [
"id",
"status",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"generation_stage": "text_generated",
"id": "tsk_reference_demo",
"status": "processing"
}
Yoklama tamamlandı
GET /api/v1/suno/text_to_music/:id
Yanıt şeması
{
"properties": {
"audios": {
"items": {
"properties": {
"audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"duration": {
"type": "number"
},
"id": {
"type": "string"
},
"image_url": {
"type": "string",
"x-runapi-generated-media": true
},
"lyrics": {
"type": "string"
},
"model_name": {
"type": "string"
},
"stream_audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
},
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"generation_stage": {
"enum": [
"text_generated",
"first_audio_ready",
"all_audios_ready",
"failed"
],
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"completed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"audios",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"audios": [
{
"audio_url": "https://file.runapi.ai/reference-audio.mp3",
"id": "audio_reference"
}
],
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "completed"
}
Yoklama başarısız oldu
GET /api/v1/suno/text_to_music/:id
Yanıt şeması
{
"properties": {
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"error": {
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"error": "Task processing failed.",
"id": "tsk_reference_demo",
"status": "failed"
}
Müşteri geri çağırması: işleniyor
POST callback_url
Yanıt şeması
{
"properties": {
"audios": {
"items": {
"properties": {
"audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"duration": {
"type": "number"
},
"id": {
"type": "string"
},
"image_url": {
"type": "string",
"x-runapi-generated-media": true
},
"lyrics": {
"type": "string"
},
"model_name": {
"type": "string"
},
"stream_audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
},
"generation_stage": {
"enum": [
"text_generated",
"first_audio_ready"
],
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"processing"
],
"type": "string"
}
},
"required": [
"id",
"status"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"generation_stage": "text_generated",
"id": "tsk_reference_demo",
"status": "processing"
}
Müşteri geri çağırması: tamamlandı
POST callback_url
Yanıt şeması
{
"properties": {
"audios": {
"items": {
"properties": {
"audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"duration": {
"type": "number"
},
"id": {
"type": "string"
},
"image_url": {
"type": "string",
"x-runapi-generated-media": true
},
"lyrics": {
"type": "string"
},
"model_name": {
"type": "string"
},
"stream_audio_url": {
"type": "string",
"x-runapi-generated-media": true
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
},
"generation_stage": {
"enum": [
"text_generated",
"first_audio_ready",
"all_audios_ready",
"failed"
],
"type": "string"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"completed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"audios"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"audios": [
{
"audio_url": "https://file.runapi.ai/reference-audio.mp3",
"id": "audio_reference"
}
],
"id": "tsk_reference_demo",
"status": "completed"
}
Müşteri geri çağırması: başarısız oldu
POST callback_url
Yanıt şeması
{
"properties": {
"error": {
"oneOf": [
{
"type": "string"
},
{
"properties": {
"code": {
"type": "string"
},
"limit_cents": {
"type": "integer"
},
"message": {
"type": "string"
},
"reset_at": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"used_cents": {
"type": "integer"
},
"window": {
"enum": [
"1h",
"1d",
"7d",
"daily",
"weekly",
"monthly",
"lifetime"
],
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object",
"unevaluatedProperties": false
}
]
},
"id": {
"type": "string"
},
"status": {
"enum": [
"failed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": {
"code": "generation_failed",
"message": "Task processing failed."
},
"id": "tsk_reference_demo",
"status": "failed"
}
Hatalar
POST /api/v1/suno/text_to_music
Yanıt şeması
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": "Authentication required"
}
Hatalar
GET /api/v1/suno/text_to_music/:id
Yanıt şeması
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": "Authentication required"
}
Hatalar
POST /api/v1/suno/text_to_music
Yanıt şeması
{
"oneOf": [
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir doğrulama özeti.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Herkese açık istek alanına göre anahtarlanan doğrulama mesajları; her alan için insan tarafından okunabilir dizelerden oluşan bir dizi içerir.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
Yanıt örneği
{
"error": "Validation failed",
"errors": {
"prompt": [
"is required"
]
}
}
Hatalar
POST /api/v1/suno/text_to_music
Yanıt şeması
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": "Insufficient balance"
}
Hatalar
POST /api/v1/suno/text_to_music
Yanıt şeması
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": "API key credit limit exceeded"
}
Hatalar
POST /api/v1/suno/text_to_music
Yanıt şeması
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": "The request uses features that are not supported for the selected model"
}
Hatalar
POST /api/v1/suno/text_to_music
Yanıt şeması
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": "Rate limit reached. Please retry later."
}
Hatalar
POST /api/v1/suno/text_to_music
Yanıt şeması
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": "Service under maintenance, please try again later"
}
Hatalar
POST /api/v1/suno/text_to_music
Yanıt şeması
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": "The request timed out"
}
Hatalar
GET /api/v1/suno/text_to_music/:id
Yanıt şeması
{
"properties": {
"error": {
"description": "İnsan tarafından okunabilir hata mesajı.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Yanıt örneği
{
"error": "Task with id 'tsk_reference_demo' not found"
}
Oluşturulan Kod Örnekleri
Doğrudan cURL kullanın veya diliniz için bir SDK yükleyin. Her örnek, bu başvuruda gösterilen doğrulanmış isteği gönderir.
Yükle
pip install runapi-suno
import os
from runapi.suno import SunoClient
client = SunoClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_music.create(
model="suno-v5",
vocal_mode="auto_lyrics",
prompt="An uplifting acoustic pop song about a rainy city night.",
persona_id="persona_reference",
persona_type="style"
)