Suno نص إلى موسيقى
استخدم نقطة نهاية تحويل النص إلى موسيقى لإنشاء مهمة غير متزامنة.
نظرة عامة
استخدم نقطة نهاية تحويل النص إلى موسيقى مع نموذج مدعوم. استخدم معرّف المهمة المُعاد لاسترداد حالتها، أو أدخل callback_url للتسليمات الموثقة أدناه.
البدء السريع
- أنشئ مفتاح API واضبطه كـ RUNAPI_API_KEY.
- اختر نموذجاً مدعوماً وأرسل طلب POST يطابق مخطط ذلك النموذج.
- احفظ معرّف المهمة المُعاد، ثم استطلع الحالة حتى تبلغ حالة نهائية أو تعالج عمليات الاستدعاء الموثقة أدناه.
نقطة النهاية
- عنوان URL الأساسي
https://runapi.ai- إصدار API
v1- المصادقة
Authorization: Bearer YOUR_API_TOKEN
النماذج المدعومة
افتح صفحة النموذج للاطلاع على التسعير الحالي وحدود المعدل وتفاصيل الاستخدام التجاري.
مخطط الطلب
تعتمد الحقول والقيم المسموح بها على النموذج المحدد. عند التوفير، يستقبل callback_url عمليات تسليم المهمة الموثّقة أدناه.
suno-v415 حقل
audio_weightnumberوزن الصوت (0-1).
نطاق:0 - 1
callback_urlstringرابط Webhook لإشعارات غير متزامنة.
continue_atnumberالطابع الزمني بالثواني للاستمرار منه.
lyricsstringكلمات الغناء الدقيقة.
حد:5000
modelstringمعرّف النموذج.
negative_tagsstringالأساليب الواجب تجنبها.
persona_idstringمعرّف الشخصية.
persona_typestringنوع الشخصية.
القيم المسموح بها:style, voice
promptstringموجز الأغنية للكلمات التلقائية.
حد:5000
stylestringأسلوب الموسيقى.
حد:1000
style_weightnumberوزن الالتزام بالأسلوب (0-1).
نطاق:0 - 1
titlestringعنوان الموسيقى.
حد:80
vocal_genderstringجنس الصوت الغنائي.
القيم المسموح بها:male, female
vocal_modestringوضع توليد الصوت الغنائي.
القيم المسموح بها:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberقيد الغرابة (0-1).
نطاق:0 - 1
suno-v4.515 حقل
audio_weightnumberوزن الصوت (0-1).
نطاق:0 - 1
callback_urlstringرابط Webhook لإشعارات غير متزامنة.
continue_atnumberالطابع الزمني بالثواني للاستمرار منه.
lyricsstringكلمات الغناء الدقيقة.
حد:5000
modelstringمعرّف النموذج.
negative_tagsstringالأساليب الواجب تجنبها.
persona_idstringمعرّف الشخصية.
persona_typestringنوع الشخصية.
القيم المسموح بها:style, voice
promptstringموجز الأغنية للكلمات التلقائية.
حد:5000
stylestringأسلوب الموسيقى.
حد:1000
style_weightnumberوزن الالتزام بالأسلوب (0-1).
نطاق:0 - 1
titlestringعنوان الموسيقى.
حد:80
vocal_genderstringجنس الصوت الغنائي.
القيم المسموح بها:male, female
vocal_modestringوضع توليد الصوت الغنائي.
القيم المسموح بها:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberقيد الغرابة (0-1).
نطاق:0 - 1
suno-v4.5-all15 حقل
audio_weightnumberوزن الصوت (0-1).
نطاق:0 - 1
callback_urlstringرابط Webhook لإشعارات غير متزامنة.
continue_atnumberالطابع الزمني بالثواني للاستمرار منه.
lyricsstringكلمات الغناء الدقيقة.
حد:5000
modelstringمعرّف النموذج.
negative_tagsstringالأساليب الواجب تجنبها.
persona_idstringمعرّف الشخصية.
persona_typestringنوع الشخصية.
القيم المسموح بها:style, voice
promptstringموجز الأغنية للكلمات التلقائية.
حد:5000
stylestringأسلوب الموسيقى.
حد:1000
style_weightnumberوزن الالتزام بالأسلوب (0-1).
نطاق:0 - 1
titlestringعنوان الموسيقى.
حد:80
vocal_genderstringجنس الصوت الغنائي.
القيم المسموح بها:male, female
vocal_modestringوضع توليد الصوت الغنائي.
القيم المسموح بها:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberقيد الغرابة (0-1).
نطاق:0 - 1
suno-v4.5-plus15 حقل
audio_weightnumberوزن الصوت (0-1).
نطاق:0 - 1
callback_urlstringرابط Webhook لإشعارات غير متزامنة.
continue_atnumberالطابع الزمني بالثواني للاستمرار منه.
lyricsstringكلمات الغناء الدقيقة.
حد:5000
modelstringمعرّف النموذج.
negative_tagsstringالأساليب الواجب تجنبها.
persona_idstringمعرّف الشخصية.
persona_typestringنوع الشخصية.
القيم المسموح بها:style, voice
promptstringموجز الأغنية للكلمات التلقائية.
حد:5000
stylestringأسلوب الموسيقى.
حد:1000
style_weightnumberوزن الالتزام بالأسلوب (0-1).
نطاق:0 - 1
titlestringعنوان الموسيقى.
حد:80
vocal_genderstringجنس الصوت الغنائي.
القيم المسموح بها:male, female
vocal_modestringوضع توليد الصوت الغنائي.
القيم المسموح بها:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberقيد الغرابة (0-1).
نطاق:0 - 1
suno-v515 حقل
audio_weightnumberوزن الصوت (0-1).
نطاق:0 - 1
callback_urlstringرابط Webhook لإشعارات غير متزامنة.
continue_atnumberالطابع الزمني بالثواني للاستمرار منه.
lyricsstringكلمات الغناء الدقيقة.
حد:5000
modelstringمعرّف النموذج.
negative_tagsstringالأساليب الواجب تجنبها.
persona_idstringمعرّف الشخصية.
persona_typestringنوع الشخصية.
القيم المسموح بها:style, voice
promptstringموجز الأغنية للكلمات التلقائية.
حد:5000
stylestringأسلوب الموسيقى.
حد:1000
style_weightnumberوزن الالتزام بالأسلوب (0-1).
نطاق:0 - 1
titlestringعنوان الموسيقى.
حد:80
vocal_genderstringجنس الصوت الغنائي.
القيم المسموح بها:male, female
vocal_modestringوضع توليد الصوت الغنائي.
القيم المسموح بها:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberقيد الغرابة (0-1).
نطاق:0 - 1
suno-v5.516 حقل
audio_weightnumberوزن الصوت (0-1).
نطاق:0 - 1
callback_urlstringرابط Webhook لإشعارات غير متزامنة.
continue_atnumberالطابع الزمني بالثواني للاستمرار منه.
duration_secondsintegerالمدة المطلوبة بالثواني؛ متاحة فقط للطلبات المخصصة في Suno V5.5.
نطاق:10 - 360
lyricsstringكلمات الغناء الدقيقة.
حد:5000
modelstringمعرّف النموذج.
negative_tagsstringالأساليب الواجب تجنبها.
persona_idstringمعرّف الشخصية.
persona_typestringنوع الشخصية.
القيم المسموح بها:style, voice
promptstringموجز الأغنية للكلمات التلقائية.
حد:5000
stylestringأسلوب الموسيقى.
حد:1000
style_weightnumberوزن الالتزام بالأسلوب (0-1).
نطاق:0 - 1
titlestringعنوان الموسيقى.
حد:80
vocal_genderstringجنس الصوت الغنائي.
القيم المسموح بها:male, female
vocal_modestringوضع توليد الصوت الغنائي.
القيم المسموح بها:auto_lyrics, exact_lyrics, instrumental
weirdness_constraintnumberقيد الغرابة (0-1).
نطاق:0 - 1
القواعد الشرطية
تسري هذه المتطلبات عندما تتطابق جميع الشروط المدرجة.
-
عندما
vocal_mode = auto_lyrics- مطلوب
prompt- غير مقبول
lyrics,style,title,negative_tags,vocal_gender,duration_seconds
-
عندما
vocal_mode = exact_lyrics- مطلوب
lyrics,style,title- غير مقبول
prompt
-
عندما
vocal_mode = instrumental- مطلوب
style,title- غير مقبول
prompt,lyrics,vocal_gender
-
عندما
model = suno-v4- مطلوب
- غير مقبول
duration_seconds
-
عندما
model = suno-v4.5- مطلوب
- غير مقبول
duration_seconds
-
عندما
model = suno-v4.5-all- مطلوب
- غير مقبول
duration_seconds
-
عندما
model = suno-v4.5-plus- مطلوب
- غير مقبول
duration_seconds
-
عندما
model = suno-v5- مطلوب
- غير مقبول
duration_seconds
إنشاء قبول
POST /api/v1/suno/text_to_music
مخطط الاستجابة
{
"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
}
مثال على الاستجابة
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
الاستطلاع قيد المعالجة
GET /api/v1/suno/text_to_music/:id
مخطط الاستجابة
{
"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
}
مثال على الاستجابة
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"generation_stage": "text_generated",
"id": "tsk_reference_demo",
"status": "processing"
}
اكتمل الاستطلاع
GET /api/v1/suno/text_to_music/:id
مخطط الاستجابة
{
"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
}
مثال على الاستجابة
{
"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"
}
فشل الاستطلاع
GET /api/v1/suno/text_to_music/:id
مخطط الاستجابة
{
"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
}
مثال على الاستجابة
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"error": "Task processing failed.",
"id": "tsk_reference_demo",
"status": "failed"
}
استدعاء العميل: قيد المعالجة
POST callback_url
مخطط الاستجابة
{
"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
}
مثال على الاستجابة
{
"generation_stage": "text_generated",
"id": "tsk_reference_demo",
"status": "processing"
}
استدعاء العميل: مكتمل
POST callback_url
مخطط الاستجابة
{
"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
}
مثال على الاستجابة
{
"audios": [
{
"audio_url": "https://file.runapi.ai/reference-audio.mp3",
"id": "audio_reference"
}
],
"id": "tsk_reference_demo",
"status": "completed"
}
استدعاء العميل: فشل
POST callback_url
مخطط الاستجابة
{
"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
}
مثال على الاستجابة
{
"error": {
"code": "generation_failed",
"message": "Task processing failed."
},
"id": "tsk_reference_demo",
"status": "failed"
}
الأخطاء
POST /api/v1/suno/text_to_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Authentication required"
}
الأخطاء
GET /api/v1/suno/text_to_music/:id
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Authentication required"
}
الأخطاء
POST /api/v1/suno/text_to_music
مخطط الاستجابة
{
"oneOf": [
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "ملخص التحقق القابل للقراءة البشرية.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "رسائل التحقق مفتاحها حقل الطلب العام، مع مصفوفة من السلاسل القابلة للقراءة البشرية لكل حقل.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
مثال على الاستجابة
{
"error": "Validation failed",
"errors": {
"prompt": [
"is required"
]
}
}
الأخطاء
POST /api/v1/suno/text_to_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Insufficient balance"
}
الأخطاء
POST /api/v1/suno/text_to_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "API key credit limit exceeded"
}
الأخطاء
POST /api/v1/suno/text_to_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "The request uses features that are not supported for the selected model"
}
الأخطاء
POST /api/v1/suno/text_to_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Rate limit reached. Please retry later."
}
الأخطاء
POST /api/v1/suno/text_to_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Service under maintenance, please try again later"
}
الأخطاء
POST /api/v1/suno/text_to_music
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "The request timed out"
}
الأخطاء
GET /api/v1/suno/text_to_music/:id
مخطط الاستجابة
{
"properties": {
"error": {
"description": "رسالة خطأ قابلة للقراءة البشرية.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
مثال على الاستجابة
{
"error": "Task with id 'tsk_reference_demo' not found"
}
نماذج الأكواد المولَّدة
استخدم cURL مباشرةً، أو ثبّت SDK للغة البرمجة التي تستخدمها. كل نموذج يُرسل الطلب الذي تم التحقق من صحته كما هو موضح في هذا المرجع.
التثبيت
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"
)