API de téléchargement Free2
Description du point d'accès
Free2 est un canal de téléchargement payant distinct : il résout des fichiers MP3/WAV/paroles/métadonnées à partir d'un ID de morceau (ou d'un lien de morceau suno.com) et renvoie des adresses de téléchargement hébergées par la plateforme. Il n'accepte qu'une clé d'API — pas de session de navigateur — et la réponse ne contient jamais la source de lecture chiffrée de Suno.
Point d'accès : POST /api/music/free2
Facturation : facturé par morceau résolu avec succès, actuellement 0,2 CNY par morceau par défaut. Choisir plusieurs types de fichiers dans une même requête ne coûte rien de plus ; les morceaux non résolus ne sont pas facturés. Au maximum 10 morceaux par requête (après déduplication) ; le montant réellement débité suit la configuration tarifaire du back-office.
Modèle recommandé : suno-v6. suno-v6, suno-v6-wild et suno-v6-mini sont disponibles.
Authentification
| Paramètre | Type | Obligatoire | Remarques |
|---|---|---|---|
| Authorization | string | oui | Bearer YOUR_API_KEY |
| Content-Type | string | oui | application/json |
Paramètres de la requête
| Paramètre | Type | Obligatoire | Par défaut | Remarques |
|---|---|---|---|---|
| song_id | string | non | - | Un ID de morceau ; un lien de morceau suno.com fonctionne aussi (y compris le lien court /s/) |
| song_ids | string[] | non | - | Forme multi-morceaux (recommandée) ; au maximum 10 par requête |
| songs | string[] | non | - | Alias de song_ids |
| files | string[] | oui | - | Les types de fichiers souhaités : mp3, wav, lyrics, metadata ; m4a n'est pas pris en charge |
Indiquez au moins l'un de song_id et song_ids ; indiquez au moins un élément dans files.
Exemple de requête
curl -X POST https://www.suno-api.io/api/music/free2 \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": ["song_id_1", "song_id_2"],
"files": ["mp3", "wav", "lyrics"]
}'
Réponse
{
"code": 200,
"message": "success",
"data": {
"songs": [
{
"song_id": "song_id_1",
"files": [
{"type": "mp3", "url": "https://media.suno-api.io/assets/song_id_1-free2-v1-mp3.mp3"}
]
},
{
"song_id": "song_id_2",
"files": [],
"error": {"code": "song_not_found", "message": "song not found or not owned by the current user"}
}
],
"requested_songs": 2,
"succeeded_songs": 1,
"price": 0.2
}
}
| Champ | Type | Remarques |
|---|---|---|
| songs | array | Résultat par morceau : song_id, files[], et error en cas d'échec |
| requested_songs | number | Nombre de morceaux après normalisation et déduplication |
| succeeded_songs | number | Nombre de réussites ; la facturation se base sur ce nombre |
| price | number | Montant réellement débité pour cet appel (yuans) |
Si un seul morceau est demandé, la réponse renvoie aussi song_id et files au niveau supérieur, pour compatibilité avec l'ancienne forme mono-morceau.
Réutiliser les adresses en cache (gratuit)
Pour un morceau déjà téléchargé, un nouveau téléchargement ne nécessite pas de nouvelle résolution et n'est pas refacturé : utilisez POST /api/music/free2/cached pour récupérer les adresses actuelles des fichiers que ce compte a téléchargés auparavant.
Point d'accès : POST /api/music/free2/cached
Facturation : Gratuit. C'est un cache en lecture seule : aucune résolution, aucun transcodage, aucune facturation ; seules les adresses déjà préparées et non récupérées sont renvoyées.
⚠️ Validité de l'adresse de téléchargement : 7 jours — sauvegardez à temps.
songs[].files[].urlest servi par le stockage objet de la plateforme et expire par défaut au bout de 7 jours (les fichiers sont récupérés et l'ancienne adresse renvoie 404) ; sauvegardez-les dans votre propre stockage dans ces 7 jours. Une fois l'adresse expirée, rappelezPOST /api/music/free2pour la préparer à nouveau et obtenir une adresse valide (cette re-préparation est facturée selon les règles normales ;/api/music/free2/cachedne renvoie que les adresses de cache encore valides).
Paramètres de la requête : identiques à POST /api/music/free2 (l'un de song_id / song_ids / songs, et au moins un élément dans files).
curl -X POST https://www.suno-api.io/api/music/free2/cached \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "song_ids": ["98ca3f1d-…", "a185b3d9-…"], "files": ["mp3"] }'
{
"success": true,
"data": {
"items": [
{ "song_id": "98ca3f1d-…", "type": "mp3", "url": "https://…/assets/98ca3f1d-…-free2-v1-mp3.mp3" }
],
"songs": [
{ "song_id": "98ca3f1d-…", "files": [ { "type": "mp3", "url": "https://…" } ], "missing_files": [] },
{ "song_id": "a185b3d9-…", "files": [], "missing_files": ["mp3"] }
],
"missing": ["a185b3d9-…"]
}
}
| Champ | Type | Remarques |
|---|---|---|
| items | array | Liste d'adresses prêtes à télécharger (song_id + type + url) |
| songs | array | Résultats par morceau ; missing_files sont les formats qui n'ont pas trouvé de cache cette fois |
| missing | string[] | Ce morceau n'a aucun cache exploitable (il faut le résoudre à nouveau via POST /api/music/free2, étape facturée par morceau) |
Les adresses ne sont renvoyées que pour les morceaux que vous avez déjà téléchargés ; les morceaux sans historique de téléchargement, ou dont les actifs ont été récupérés, n'apparaissent que dans missing et aucune adresse n'est renvoyée.
Remarques
POST /api/music/free2peut résoudre n'importe quel morceau public de Suno (y compris des morceaux absents de cette plateforme) ; lorsqu'un morceau ne peut pas être résolu, uneerrorest renvoyée uniquement pour ce morceau, sans affecter les autres du même lot. En revanche,POST /api/music/free2/cachedne renvoie des adresses que pour les morceaux téléchargés par ce compte.- La première résolution d'un morceau crée les fichiers hébergés, ensuite réutilisés ; ne mettez pas de types en double dans
files, le serveur déduplique automatiquement. - Différence avec l'API de téléchargement et d'écoute des médias de morceaux : Free2 est payant, accepte directement les liens suno.com et ne propose pas, au-delà des paroles, de types comme timeline/MIDI.
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