Skip to main content
POST
Référencer la piste source : les opérations basées sur un morceau existant ne nécessitent de mémoriser aucun id supplémentaire, il suffit de passer task_id (le task_id correspondant à la tâche qui a produit la piste source) + audio_index (le numéro du morceau dans music[] des résultats, indexé à partir de 1, 1 par défaut).
custom détermine quels champs prennent effet : les champs renseignés dans le mauvais mode sont silencieusement ignorés (sans erreur). Avec custom=true, prompt (paroles), title, tags, negative_tags, auto_lyrics, style_weight, weirdness_constraint et audio_weight prennent effet et gpt_description est ignoré ; avec custom=false, seul gpt_description est lu (obligatoire dans ce cas — s’il manque, un 400 est renvoyé dès la soumission). vocal_gender fonctionne dans les deux modes. Si custom est omis, le backend le déduit dans cet ordre : prompt présent → true ; pas de prompt mais gpt_description présent → false ; sinon tags/title présent → true.

Authorizations

string
requis
Toutes les interfaces nécessitent une authentification via Bearer TokenObtenir la clé API :Rendez-vous sur la page de gestion des clés API pour obtenir votre clé APILors de l’utilisation, ajoutez dans l’en-tête de la requête :

Body

string
défaut:"suno"
Modèle audio. Actuellement, passez suno (par défaut suno si non fourni).
string
requis
Le task_id de notre côté correspondant à la tâche qui a produit la piste source (généralement un échantillon téléversé). En cas d’absence ou si la source ne peut pas être résolue, un 400 est renvoyé au moment de la soumission.
integer
défaut:"1"
Quel morceau du data.music[] du résultat de la tâche source (indexé à partir de 1 : 1 = premier morceau ; par défaut 1 ; une génération produit généralement 2 morceaux : index 1 et 2).
number
requis
Point de départ de l’échantillonnage (secondes). S’il manque, renvoie immédiatement un 400.
number
requis
Point de fin de l’échantillonnage (secondes). S’il manque, renvoie immédiatement un 400.
boolean
défaut:"false"
Purement instrumental ou non (true=sans voix) ; si non fourni, par défaut false (avec voix).
string
défaut:"v5.5"
Version de génération : v3.5 / v4 / v4.5 / v4.5+ / v4.5-all / v5 / v5.5, influe sur la qualité audio et la facturation ; par défaut v5.5 si omis, et une valeur invalide renvoie directement un 400 dès la soumission.
boolean
true=mode personnalisé (prompt utilisé comme paroles) ; false=mode inspiration (utilise gpt_description) ; si omis, déduit du contenu (voir l’avertissement ci-dessus).
string
Paroles. Prend effet lorsque custom=true (ignoré en mode inspiration).
string
Prompt d’inspiration. Obligatoire lorsque custom=false — s’il manque, la requête échoue avec 400 dès la soumission (rien n’est facturé).
string
Titre. Ne prend effet que lorsque custom=true.
string
Tags de style. Ne prend effet que lorsque custom=true.
string
Tags de style à exclure. Ne prend effet que lorsque custom=true.
boolean
true=réécrit les paroles fournies de façon créative. Ne prend effet que lorsque custom=true.
number
Poids du style, 0.001.00 (les valeurs hors plage renvoient directement un 400 dès la soumission). Ne prend effet que lorsque custom=true.
number
Poids de créativité, 0.001.00 (alias weirdness). Ne prend effet que lorsque custom=true.
number
Poids audio, 0.001.00. Ne prend effet que lorsque custom=true.
string
Genre de voix : Male / Female. Fonctionne dans les deux modes.
Récupérer le résultat : cette interface est une tâche asynchrone. Après soumission, vous obtenez un task_id ; interrogez GET /v1/music/tasks/{task_id} à intervalles de 3 à 5 s jusqu’à ce que status soit completed ou failed (la génération musicale prend généralement 30 à 120 s ; pendant la génération, status vaut pending et progress évolue de file d’attente 10 → prêt 50 → terminé 100). Une fois terminé, récupérez audio_url dans data.result.music[]. En cas d’échec, data.error.message en donne la raison et le quota pré-déduit est automatiquement remboursé.

Response

integer
Code de statut de la réponse
array
Tableau de données renvoyées