Suno Prolonger la musique
Utilisez le point de terminaison extend music pour créer une Task asynchrone.
Vue d'ensemble
Utilisez le point de terminaison extend music avec un modèle pris en charge. Utilisez l'ID de Task retourné pour récupérer son état, ou fournissez callback_url pour les livraisons décrites ci-dessous.
Démarrage rapide
- Créez une clé API et définissez-la comme RUNAPI_API_KEY.
- Choisissez un modèle pris en charge et envoyez une requête POST dont le corps correspond au schéma de ce modèle.
- Enregistrez l'identifiant de tâche retourné, puis interrogez l'état jusqu'à atteindre un état terminal ou gérez les callbacks documentés ci-dessous.
Point de terminaison
- URL de base
https://runapi.ai- Version de l'API
v1- Authentification
Authorization: Bearer YOUR_API_TOKEN
Modèles pris en charge
Ouvrez une page de modèle pour consulter la tarification actuelle, les limites de débit et les conditions d'utilisation commerciale.
Schéma de requête
Les champs et les valeurs autorisées dépendent du modèle sélectionné. Lorsqu'il est fourni, callback_url reçoit les livraisons de tâches documentées ci-dessous.
suno-v420 champs
audio_idstringID audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_urlstringURL audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_weightnumberPoids audio (0-1).
Plage:0 - 1
callback_urlstringURL de webhook pour les notifications asynchrones.
continue_atnumberSecondes dans la source à partir desquelles continuer. Obligatoire en mode paramètre personnalisé.
instrumentalbooleanSi vrai, génère sans voix.
lyricsstringParoles exactes. Uniquement autorisé lors de l'extension d'un audio téléchargé en mode de paramètres personnalisés.
Limite:5000
modelstringSlug du modèle.
negative_tagsstringStyles à éviter.
parameter_modestringHérite des paramètres de la piste source (source) ou fournit des paramètres personnalisés (custom).
Valeurs autorisées:source, custom
persona_idstringID du persona.
persona_typestringType de persona.
Valeurs autorisées:style, voice
promptstringDescription de l'extension. Ne peut pas être combinée avec des paroles.
Limite:5000
stylestringPréréglage de style. Obligatoire en mode de paramètre personnalisé.
Limite:1000
style_weightnumberPoids d'adhérence au style (0-1).
Plage:0 - 1
task_idstringID de task source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
titlestringTitre de la chanson. Obligatoire en mode paramètre personnalisé.
Limite:80
upload_urlstringURL audio source téléversée à partir de laquelle continuer. Fournissez l'un des éléments suivants : task_id, audio_id, audio_url ou upload_url.
vocal_genderstringGenre vocal.
Valeurs autorisées:male, female
weirdness_constraintnumberContrainte d'originalité (0-1).
Plage:0 - 1
suno-v4.520 champs
audio_idstringID audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_urlstringURL audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_weightnumberPoids audio (0-1).
Plage:0 - 1
callback_urlstringURL de webhook pour les notifications asynchrones.
continue_atnumberSecondes dans la source à partir desquelles continuer. Obligatoire en mode paramètre personnalisé.
instrumentalbooleanSi vrai, génère sans voix.
lyricsstringParoles exactes. Uniquement autorisé lors de l'extension d'un audio téléchargé en mode de paramètres personnalisés.
Limite:5000
modelstringSlug du modèle.
negative_tagsstringStyles à éviter.
parameter_modestringHérite des paramètres de la piste source (source) ou fournit des paramètres personnalisés (custom).
Valeurs autorisées:source, custom
persona_idstringID du persona.
persona_typestringType de persona.
Valeurs autorisées:style, voice
promptstringDescription de l'extension. Ne peut pas être combinée avec des paroles.
Limite:5000
stylestringPréréglage de style. Obligatoire en mode de paramètre personnalisé.
Limite:1000
style_weightnumberPoids d'adhérence au style (0-1).
Plage:0 - 1
task_idstringID de task source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
titlestringTitre de la chanson. Obligatoire en mode paramètre personnalisé.
Limite:80
upload_urlstringURL audio source téléversée à partir de laquelle continuer. Fournissez l'un des éléments suivants : task_id, audio_id, audio_url ou upload_url.
vocal_genderstringGenre vocal.
Valeurs autorisées:male, female
weirdness_constraintnumberContrainte d'originalité (0-1).
Plage:0 - 1
suno-v4.5-all20 champs
audio_idstringID audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_urlstringURL audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_weightnumberPoids audio (0-1).
Plage:0 - 1
callback_urlstringURL de webhook pour les notifications asynchrones.
continue_atnumberSecondes dans la source à partir desquelles continuer. Obligatoire en mode paramètre personnalisé.
instrumentalbooleanSi vrai, génère sans voix.
lyricsstringParoles exactes. Uniquement autorisé lors de l'extension d'un audio téléchargé en mode de paramètres personnalisés.
Limite:5000
modelstringSlug du modèle.
negative_tagsstringStyles à éviter.
parameter_modestringHérite des paramètres de la piste source (source) ou fournit des paramètres personnalisés (custom).
Valeurs autorisées:source, custom
persona_idstringID du persona.
persona_typestringType de persona.
Valeurs autorisées:style, voice
promptstringDescription de l'extension. Ne peut pas être combinée avec des paroles.
Limite:5000
stylestringPréréglage de style. Obligatoire en mode de paramètre personnalisé.
Limite:1000
style_weightnumberPoids d'adhérence au style (0-1).
Plage:0 - 1
task_idstringID de task source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
titlestringTitre de la chanson. Obligatoire en mode paramètre personnalisé.
Limite:80
upload_urlstringURL audio source téléversée à partir de laquelle continuer. Fournissez l'un des éléments suivants : task_id, audio_id, audio_url ou upload_url.
vocal_genderstringGenre vocal.
Valeurs autorisées:male, female
weirdness_constraintnumberContrainte d'originalité (0-1).
Plage:0 - 1
suno-v4.5-plus20 champs
audio_idstringID audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_urlstringURL audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_weightnumberPoids audio (0-1).
Plage:0 - 1
callback_urlstringURL de webhook pour les notifications asynchrones.
continue_atnumberSecondes dans la source à partir desquelles continuer. Obligatoire en mode paramètre personnalisé.
instrumentalbooleanSi vrai, génère sans voix.
lyricsstringParoles exactes. Uniquement autorisé lors de l'extension d'un audio téléchargé en mode de paramètres personnalisés.
Limite:5000
modelstringSlug du modèle.
negative_tagsstringStyles à éviter.
parameter_modestringHérite des paramètres de la piste source (source) ou fournit des paramètres personnalisés (custom).
Valeurs autorisées:source, custom
persona_idstringID du persona.
persona_typestringType de persona.
Valeurs autorisées:style, voice
promptstringDescription de l'extension. Ne peut pas être combinée avec des paroles.
Limite:5000
stylestringPréréglage de style. Obligatoire en mode de paramètre personnalisé.
Limite:1000
style_weightnumberPoids d'adhérence au style (0-1).
Plage:0 - 1
task_idstringID de task source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
titlestringTitre de la chanson. Obligatoire en mode paramètre personnalisé.
Limite:80
upload_urlstringURL audio source téléversée à partir de laquelle continuer. Fournissez l'un des éléments suivants : task_id, audio_id, audio_url ou upload_url.
vocal_genderstringGenre vocal.
Valeurs autorisées:male, female
weirdness_constraintnumberContrainte d'originalité (0-1).
Plage:0 - 1
suno-v520 champs
audio_idstringID audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_urlstringURL audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_weightnumberPoids audio (0-1).
Plage:0 - 1
callback_urlstringURL de webhook pour les notifications asynchrones.
continue_atnumberSecondes dans la source à partir desquelles continuer. Obligatoire en mode paramètre personnalisé.
instrumentalbooleanSi vrai, génère sans voix.
lyricsstringParoles exactes. Uniquement autorisé lors de l'extension d'un audio téléchargé en mode de paramètres personnalisés.
Limite:5000
modelstringSlug du modèle.
negative_tagsstringStyles à éviter.
parameter_modestringHérite des paramètres de la piste source (source) ou fournit des paramètres personnalisés (custom).
Valeurs autorisées:source, custom
persona_idstringID du persona.
persona_typestringType de persona.
Valeurs autorisées:style, voice
promptstringDescription de l'extension. Ne peut pas être combinée avec des paroles.
Limite:5000
stylestringPréréglage de style. Obligatoire en mode de paramètre personnalisé.
Limite:1000
style_weightnumberPoids d'adhérence au style (0-1).
Plage:0 - 1
task_idstringID de task source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
titlestringTitre de la chanson. Obligatoire en mode paramètre personnalisé.
Limite:80
upload_urlstringURL audio source téléversée à partir de laquelle continuer. Fournissez l'un des éléments suivants : task_id, audio_id, audio_url ou upload_url.
vocal_genderstringGenre vocal.
Valeurs autorisées:male, female
weirdness_constraintnumberContrainte d'originalité (0-1).
Plage:0 - 1
suno-v5.520 champs
audio_idstringID audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_urlstringURL audio source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
audio_weightnumberPoids audio (0-1).
Plage:0 - 1
callback_urlstringURL de webhook pour les notifications asynchrones.
continue_atnumberSecondes dans la source à partir desquelles continuer. Obligatoire en mode paramètre personnalisé.
instrumentalbooleanSi vrai, génère sans voix.
lyricsstringParoles exactes. Uniquement autorisé lors de l'extension d'un audio téléchargé en mode de paramètres personnalisés.
Limite:5000
modelstringSlug du modèle.
negative_tagsstringStyles à éviter.
parameter_modestringHérite des paramètres de la piste source (source) ou fournit des paramètres personnalisés (custom).
Valeurs autorisées:source, custom
persona_idstringID du persona.
persona_typestringType de persona.
Valeurs autorisées:style, voice
promptstringDescription de l'extension. Ne peut pas être combinée avec des paroles.
Limite:5000
stylestringPréréglage de style. Obligatoire en mode de paramètre personnalisé.
Limite:1000
style_weightnumberPoids d'adhérence au style (0-1).
Plage:0 - 1
task_idstringID de task source à étendre. Fournissez l'un de task_id, audio_id, audio_url ou upload_url.
titlestringTitre de la chanson. Obligatoire en mode paramètre personnalisé.
Limite:80
upload_urlstringURL audio source téléversée à partir de laquelle continuer. Fournissez l'un des éléments suivants : task_id, audio_id, audio_url ou upload_url.
vocal_genderstringGenre vocal.
Valeurs autorisées:male, female
weirdness_constraintnumberContrainte d'originalité (0-1).
Plage:0 - 1
Créer une acceptation
POST /api/v1/suno/extend_music
Schéma de réponse
{
"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
}
Exemple de réponse
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "processing"
}
Interrogation en cours
GET /api/v1/suno/extend_music/:id
Schéma de réponse
{
"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
}
Exemple de réponse
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"generation_stage": "text_generated",
"id": "tsk_reference_demo",
"status": "processing"
}
Interrogation terminée
GET /api/v1/suno/extend_music/:id
Schéma de réponse
{
"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
}
Exemple de réponse
{
"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"
}
Échec de l'interrogation
GET /api/v1/suno/extend_music/:id
Schéma de réponse
{
"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
}
Exemple de réponse
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"error": "Task processing failed.",
"id": "tsk_reference_demo",
"status": "failed"
}
Rappel client : en cours de traitement
POST callback_url
Schéma de réponse
{
"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
}
Exemple de réponse
{
"generation_stage": "text_generated",
"id": "tsk_reference_demo",
"status": "processing"
}
Rappel client : terminé
POST callback_url
Schéma de réponse
{
"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
}
Exemple de réponse
{
"audios": [
{
"audio_url": "https://file.runapi.ai/reference-audio.mp3",
"id": "audio_reference"
}
],
"id": "tsk_reference_demo",
"status": "completed"
}
Rappel client : échoué
POST callback_url
Schéma de réponse
{
"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
}
Exemple de réponse
{
"error": {
"code": "generation_failed",
"message": "Task processing failed."
},
"id": "tsk_reference_demo",
"status": "failed"
}
Erreurs
POST /api/v1/suno/extend_music
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Authentication required"
}
Erreurs
GET /api/v1/suno/extend_music/:id
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Authentication required"
}
Erreurs
POST /api/v1/suno/extend_music
Schéma de réponse
{
"oneOf": [
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "Résumé de validation lisible par l'humain.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Messages de validation indexés par champ de requête public, avec un tableau de chaînes lisibles par l'humain pour chaque champ.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
Exemple de réponse
{
"error": "model must be one of: suno-v4, suno-v4.5, suno-v4.5-all, suno-v4.5-plus, suno-v5, suno-v5.5"
}
Erreurs
POST /api/v1/suno/extend_music
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Insufficient balance"
}
Erreurs
POST /api/v1/suno/extend_music
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "API key credit limit exceeded"
}
Erreurs
POST /api/v1/suno/extend_music
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "The request uses features that are not supported for the selected model"
}
Erreurs
POST /api/v1/suno/extend_music
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Rate limit reached. Please retry later."
}
Erreurs
POST /api/v1/suno/extend_music
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Service under maintenance, please try again later"
}
Erreurs
POST /api/v1/suno/extend_music
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "The request timed out"
}
Erreurs
GET /api/v1/suno/extend_music/:id
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Task with id 'tsk_reference_demo' not found"
}
Exemples de code générés
Utilisez directement cURL, ou installez un SDK pour votre langage. Chaque exemple soumet la requête validée indiquée dans cette référence.
Installer
pip install runapi-suno
import os
from runapi.suno import SunoClient
client = SunoClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.extend_music.create(
model="suno-v5",
upload_url="https://cdn.runapi.ai/public/samples/music.mp3",
parameter_mode="custom",
instrumental=False,
prompt="Continue the arrangement with a brighter chorus.",
style="Acoustic pop with warm piano.",
title="Brighter Chorus",
continue_at=60,
persona_id="persona_reference",
persona_type="style"
)