Free2-Download-API
Beschreibung des Endpunkts
Free2 ist ein eigener kostenpflichtiger Download-Kanal: Er löst MP3/WAV/Songtext/Metadaten-Dateien anhand einer Song-ID (oder eines suno.com-Song-Links) auf und liefert von der Plattform gehostete Download-Adressen. Er akzeptiert nur einen API-Schlüssel — keine Browser-Anmeldung — und die Antwort enthält niemals Sunos verschlüsselte Wiedergabequelle.
Endpunkt: POST /api/music/free2
Abrechnung: abgerechnet pro erfolgreich aufgelöstem Song, derzeit standardmäßig 0,2 CNY pro Song. Mehrere Dateitypen in einer Anfrage kosten nichts extra; Songs, die nicht aufgelöst werden können, werden nicht berechnet. Höchstens 10 Songs pro Anfrage (nach Deduplizierung); der tatsächlich berechnete Betrag folgt der Preis-Konfiguration im Backoffice.
Empfohlenes Modell: suno-v6. Verfügbar sind suno-v6, suno-v6-wild und suno-v6-mini.
Authentifizierung
| Parameter | Typ | Erforderlich | Hinweise |
|---|---|---|---|
| Authorization | string | ja | Bearer YOUR_API_KEY |
| Content-Type | string | ja | application/json |
Anfrageparameter
| Parameter | Typ | Erforderlich | Standard | Hinweise |
|---|---|---|---|---|
| song_id | string | nein | - | Eine einzelne Song-ID; auch ein suno.com-Song-Link (inklusive /s/-Kurzlink) funktioniert |
| song_ids | string[] | nein | - | Mehr-Song-Form (empfohlen); höchstens 10 pro Anfrage |
| songs | string[] | nein | - | Alias von song_ids |
| files | string[] | ja | - | Die benötigten Dateitypen: mp3, wav, lyrics, metadata; m4a wird nicht unterstützt |
Geben Sie mindestens eines von song_id und song_ids an; geben Sie mindestens einen Eintrag in files an.
Beispielanfrage
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"]
}'
Antwort
{
"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
}
}
| Feld | Typ | Hinweise |
|---|---|---|
| songs | array | Ergebnis pro Song: song_id, files[] und bei Fehlschlag error |
| requested_songs | number | Anzahl der Songs nach Normalisierung und Deduplizierung |
| succeeded_songs | number | Anzahl der Erfolge; danach richtet sich die Abrechnung |
| price | number | Tatsächlich berechneter Betrag für diesen Aufruf (Yuan) |
Wird nur ein Song angefragt, liefert die Antwort zusätzlich song_id und files auf oberster Ebene, zur Kompatibilität mit der alten Einzel-Song-Form.
Zwischengespeicherte Adressen wiederverwenden (kostenlos)
Für einen bereits heruntergeladenen Song ist beim erneuten Download keine neue Auflösung nötig und es wird nicht erneut berechnet: Nutzen Sie POST /api/music/free2/cached, um die aktuellen Adressen der Dateien zu erhalten, die dieses Konto zuvor heruntergeladen hat.
Endpunkt: POST /api/music/free2/cached
Abrechnung: Kostenlos. Es ist ein Nur-Lese-Cache: keine Auflösung, keine Transkodierung, keine Berechnung; es werden nur bereits vorbereitete und nicht zurückgeholte Adressen zurückgegeben.
⚠️ Gültigkeit der Download-Adresse: 7 Tage — rechtzeitig sichern.
songs[].files[].urlwird vom Objektspeicher der Plattform bereitgestellt und läuft standardmäßig nach 7 Tagen ab (die Dateien werden zurückgeholt und die alte Adresse liefert 404); sichern Sie sie innerhalb dieser 7 Tage in Ihren eigenen Speicher. Nach Ablauf rufen SiePOST /api/music/free2erneut auf, um sie neu vorzubereiten und eine gültige Adresse zu erhalten (diese Neu-Vorbereitung wird nach den normalen Regeln berechnet;/api/music/free2/cachedgibt nur noch gültige Cache-Adressen zurück).
Anfrageparameter: identisch zu POST /api/music/free2 (eines von song_id / song_ids / songs, und mindestens ein Eintrag in 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-…"]
}
}
| Feld | Typ | Hinweise |
|---|---|---|
| items | array | Liste direkt herunterladbarer Adressen (song_id + type + url) |
| songs | array | Ergebnisse pro Song; missing_files sind die Formate, die diesmal keinen Cache-Treffer hatten |
| missing | string[] | Für diesen Song gibt es keinen nutzbaren Cache (er muss über POST /api/music/free2 neu aufgelöst werden, dieser Schritt wird pro Song berechnet) |
Adressen werden nur für Songs zurückgegeben, die Sie bereits heruntergeladen haben; Songs ohne Download-Datensatz oder mit zurückgeholten Assets erscheinen nur in missing und liefern keine Adresse.
Hinweise
POST /api/music/free2kann jeden öffentlichen Song auf Suno auflösen (auch Songs, die nicht auf dieser Plattform liegen); lässt sich ein Song nicht auflösen, wird nur für diesen Song einerrorzurückgegeben und die übrigen Songs desselben Batches sind nicht betroffen.POST /api/music/free2/cachedliefert dagegen nur für Songs dieses Kontos Adressen, die heruntergeladen wurden.- Die erste Auflösung eines Songs erzeugt die gehosteten Dateien, die danach wiederverwendet werden; geben Sie keine doppelten Typen in
filesan, der Server dedupliziert automatisch. - Unterschied zur API zum Herunterladen und Anhören von Song-Medien: Free2 ist kostenpflichtig, akzeptiert suno.com-Links direkt und bietet über Songtext hinaus keine Typen wie Timeline/MIDI.
API-Schlüssel erhalten
Erstellen Sie nach der Anmeldung einen API-Schlüssel in der Konsole. Jede Generierung kostet 0,6 ¥ und liefert 2 Tracks, Downloads sind unbegrenzt und eine Telefonnummer ist nicht erforderlich.
API-Schlüssel holen Zurück zur Übersicht