API de descărcare Free2
Descrierea endpoint-ului
Free2 este un canal separat de descărcare cu plată: rezolvă fișiere MP3/WAV/versuri/metadate pornind de la un ID de piesă (sau de la un link de piesă suno.com) și returnează adrese de descărcare găzduite de platformă. Acceptă doar o cheie API — nu acceptă o sesiune de browser — iar răspunsul nu conține niciodată sursa de redare criptată de la Suno.
Endpoint: POST /api/music/free2
Facturare: se percepe per piesă rezolvată cu succes, în prezent implicit 0,2 CNY per piesă. Alegerea mai multor tipuri de fișier într-o cerere nu costă suplimentar; piesele care nu pot fi rezolvate nu se taxează. Cel mult 10 piese per cerere (după eliminarea duplicatelor); suma efectiv debitată urmează configurația de prețuri din back-office.
Model recomandat: suno-v6. Sunt disponibile suno-v6, suno-v6-wild și suno-v6-mini.
Autentificare
| Parametru | Tip | Obligatoriu | Observații |
|---|---|---|---|
| Authorization | string | da | Bearer YOUR_API_KEY |
| Content-Type | string | da | application/json |
Parametrii cererii
| Parametru | Tip | Obligatoriu | Implicit | Observații |
|---|---|---|---|---|
| song_id | string | nu | - | Un singur ID de piesă; funcționează și un link de piesă suno.com (inclusiv linkul scurt /s/) |
| song_ids | string[] | nu | - | Forma pentru mai multe piese (recomandată); cel mult 10 per cerere |
| songs | string[] | nu | - | Alias al song_ids |
| files | string[] | da | - | Tipurile de fișier de care ai nevoie: mp3, wav, lyrics, metadata; m4a nu este acceptat |
Indică cel puțin unul dintre song_id și song_ids; indică cel puțin un element în files.
Exemplu de cerere
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ăspuns
{
"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
}
}
| Câmp | Tip | Observații |
|---|---|---|
| songs | array | Rezultat per piesă: song_id, files[] și error la eșec |
| requested_songs | number | Numărul de piese după normalizare și eliminarea duplicatelor |
| succeeded_songs | number | Numărul de reușite; facturarea se bazează pe acest număr |
| price | number | Suma efectiv debitată pentru acest apel (yuani) |
Când se cere o singură piesă, răspunsul returnează în plus song_id și files la nivel superior, pentru compatibilitate cu forma veche pentru o singură piesă.
Reutilizarea adreselor din cache (fără costuri)
Pentru o piesă pe care ai descărcat-o deja, o nouă descărcare nu necesită o nouă rezolvare și nu se taxează din nou: folosește POST /api/music/free2/cached pentru a obține adresele actuale ale fișierelor descărcate anterior de acest cont.
Endpoint: POST /api/music/free2/cached
Facturare: Gratuit. Este un cache doar pentru citire: fără rezolvare, fără transcodare, fără taxare; se returnează doar adrese deja pregătite și nerecuperate.
⚠️ Valabilitatea adresei de descărcare: 7 zile — salvează-o la timp.
songs[].files[].urleste servit de stocarea obiectelor a platformei și expiră implicit după 7 zile (fișierele sunt recuperate, iar adresa veche returnează 404); salvează-le în propriul spațiu de stocare în aceste 7 zile. După expirare, apelează din nouPOST /api/music/free2pentru a le pregăti din nou și a obține o adresă validă (această re-pregătire se taxează după regulile normale;/api/music/free2/cachedreturnează doar adrese din cache încă valide).
Parametrii cererii: identici cu POST /api/music/free2 (oricare dintre song_id / song_ids / songs, și cel puțin un element în 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-…"]
}
}
| Câmp | Tip | Observații |
|---|---|---|
| items | array | Lista de adrese gata de descărcat (song_id + type + url) |
| songs | array | Rezultate per piesă; missing_files sunt formatele care nu au fost găsite în cache de această dată |
| missing | string[] | Această piesă nu are niciun cache utilizabil (trebuie rezolvată din nou cu POST /api/music/free2, iar acel pas se taxează per piesă) |
Adresele se returnează doar pentru piesele pe care le-ai descărcat anterior; piesele fără istoric de descărcare sau ale căror resurse au fost deja recuperate apar doar în missing și nu primesc nicio adresă.
Note
POST /api/music/free2poate rezolva orice piesă publică de pe Suno (inclusiv piese care nu sunt pe această platformă); când o piesă nu poate fi rezolvată, se returneazăerrordoar pentru acea piesă, iar celelalte piese din același lot nu sunt afectate. În schimb,POST /api/music/free2/cachedreturnează adrese doar pentru piesele descărcate de acest cont.- Prima rezolvare a unei piese creează fișierele găzduite, care apoi sunt reutilizate; nu trimite tipuri duplicate în
files, serverul elimină duplicatele automat. - Diferența față de API de descărcare și ascultare a conținutului media al pieselor: Free2 este cu plată, acceptă direct linkuri suno.com și nu oferă, în afara versurilor, tipuri precum cronologie/MIDI.
Obține o cheie API
Creează o cheie API în consolă după înregistrare. Fiecare generare costă 0,6 ¥ și returnează 2 piese, descărcările sunt nelimitate și nu este nevoie de număr de telefon.
Obține cheia API Înapoi la prezentare