Passer au contenu principal
POST
Référencer la piste source : la source doit être votre propre audio importé via uploadTask ; passez le task_id + audio_index de cette tâche d’import (quel morceau dans music[] du résultat, indexé à partir de 1, 1 par défaut). Utiliser une piste générée comme source échouera — vous ne pouvez référencer que les pistes que vous avez importées vous-même.
custom détermine quels champs prennent effet : les champs renseignés sous le mauvais mode sont silencieusement ignorés par l’amont (sans erreur). Avec custom=true, prompt (paroles), title, tags, negative_tags, style_weight, weirdness_constraint et audio_weight prennent effet et gpt_description est écarté ; 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

Authorization
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

model
string
défaut:"suno"
Modèle audio. Actuellement, passez suno (par défaut suno si non fourni).
task_id
string
requis
Le task_id de la tâche d’import uploadTask qui contient la piste source (doit être une piste que vous avez importée vous-même ; utiliser une piste issue d’une tâche de génération comme source échouera). S’il manque ou si la source ne peut pas être résolue, un 400 est renvoyé dès la soumission.
audio_index
integer
défaut:"1"
Quel morceau du data.music[] du résultat de la tâche source (indexé à partir de 1 ; par défaut 1 ; une génération produit généralement 2 morceaux : index 1 et 2).
version
string
défaut:"v5.5"
Version de génération : uniquement v5 / v5.5 ; par défaut v5.5 si non fournie. Toute autre valeur renvoie directement 400 dès la soumission.
custom
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).
prompt
string
Paroles. Prend effet lorsque custom=true (ignoré en mode inspiration).
gpt_description
string
Prompt d’inspiration. Obligatoire lorsque custom=false — s’il manque, la requête échoue avec 400 dès la soumission (l’amont n’est pas appelé, rien n’est facturé).
title
string
Titre. Ne prend effet que lorsque custom=true.
tags
string
Tags de style. Ne prend effet que lorsque custom=true.
negative_tags
string
Tags de style à exclure. Ne prend effet que lorsque custom=true.
style_weight
number
Poids du style, 0.001.00 (les valeurs hors plage renvoient directement 400 dès la soumission). Ne prend effet que lorsque custom=true.
weirdness_constraint
number
Créativité, 0.001.00 (alias weirdness). Ne prend effet que lorsque custom=true.
audio_weight
number
Poids de l’audio, 0.001.00. Ne prend effet que lorsque custom=true.
vocal_gender
string
Genre vocal : 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 est pending et progress évolue : en 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 indique la raison et le quota pré-déduit est automatiquement remboursé.

Response

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