API d'envoi d'audio source
Description du point d'accès
L'envoi d'audio source transforme un fichier audio local ou distant en clip source utilisable par les capacités suivantes : cover, extension, remplacement de section, séparation, etc.
Point d'accès : POST /api/music/upload-source
Facturation : Gratuit. Ce point d'accès ne fait qu'envoyer l'audio source ; il ne démarre aucune tâche de génération.
Utilisation recommandée : c'est l'étape 1 du « cover en deux étapes ». Envoyez d'abord l'audio avec ce point d'accès (c'est gratuit et vous pouvez réessayer à tout moment en cas d'échec) et conservez le
clip_idrenvoyé ; après avoir confirmé que l'envoi a abouti (statusdans un état terminé), appelez l'API de cover à partir d'un clip source pour lancer le cover — le corps de cette requête ne fait que quelques centaines d'octets, il ne peut donc pas être tronqué en transit parce que l'audio est trop volumineux. Par rapport à l'API en une seule fois envoyer puis faire un cover, cette séparation est plus robuste lorsque l'audio est volumineux, le réseau instable, ou que la même matière doit être réutilisée plusieurs fois (extension / remplacement / séparation).
Conseils pour l'envoi de gros fichiers
| Situation | Approche recommandée |
|---|---|
| L'audio est déjà public (lien direct https) | Utilisez file_url : le corps de la requête ne fait que quelques centaines d'octets, l'option la plus robuste |
| Fichier local (Node / Python / bureau) | Utilisez un envoi multipart (-F "file=@source.mp3") et ne définissez pas Content-Type manuellement |
| Seul JSON + base64 est possible | Attention : Content-Length doit être le nombre d'octets (Buffer.byteLength), sinon le corps peut être tronqué |
Une fois l'envoi terminé, vérifiez toujours que le status de la réponse est bien un état terminé et conservez le clip_id avant de passer à l'étape 2 ;
un envoi en échec n'est pas facturé et ne crée aucune tâche de génération : il suffit de réessayer.
Paramètres de la requête
Headers
Pour les requêtes JSON :
| Paramètre | Type | Obligatoire | Remarques |
|---|---|---|---|
| Authorization | string | oui | Bearer YOUR_API_KEY |
| Content-Type | string | oui | application/json |
Ne définissez pas Content-Type manuellement pour les requêtes multipart ; le client le génère automatiquement.
Paramètres du corps
| Paramètre | Type | Obligatoire | Par défaut | Remarques |
|---|---|---|---|---|
| model | string | non | suno-v6 | Nom de modèle côté client : suno-v6, suno-v6-wild ou suno-v6-mini |
| file_url | string | non | - | URL de l'audio distant |
| file_base64 | string | non | - | Audio en Base64 |
| file_name | string | non | - | Nom du fichier |
| upload_type | string | non | file_upload | Type d'envoi |
Exemple de requête JSON
curl -X POST https://www.suno-api.io/api/music/upload-source \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"file_url": "https://example.com/source.mp3",
"file_name": "source.mp3",
"upload_type": "file_upload"
}'
Exemple de requête multipart
curl -X POST https://www.suno-api.io/api/music/upload-source \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@source.mp3" \
-F "file_name=source.mp3" \
-F "upload_type=file_upload" \
-F "model=suno-v6"
Réponse
{
"clip_id": "uploaded_clip_id",
"status": "complete",
"title": "source.mp3",
"image_url": "https://...",
"audio_url": "https://...",
"display_tags": "pop, vocal",
"inferred_description": "uploaded source audio",
"clip_metadata": {}
}
Obtenir une clé d'API
Créez une clé d'API dans la console après votre inscription. Chaque génération coûte 0,6 ¥ et renvoie 2 pistes, les téléchargements sont illimités et aucun numéro de téléphone n'est requis.
Obtenir une clé d'API Retour à la présentation