API pobierania Free2
Opis punktu końcowego
Free2 to osobny płatny kanał pobierania: rozwiązuje pliki MP3/WAV/tekstu/metadanych na podstawie identyfikatora utworu (lub linku do utworu suno.com) i zwraca hostowane przez platformę adresy pobierania. Przyjmuje wyłącznie klucz API — nie przyjmuje sesji przeglądarki — a odpowiedź nigdy nie zawiera zaszyfrowanego źródła odtwarzania Suno.
Punkt końcowy: POST /api/music/free2
Rozliczenie: opłata za udany utwór, obecnie domyślnie 0,2 CNY za utwór. Wybór kilku typów plików w jednym żądaniu nie podnosi ceny; utwory, których nie udało się rozwiązać, nie są rozliczane. Maksymalnie 10 utworów na żądanie (po odduplikowaniu); faktycznie pobrana kwota zależy od konfiguracji cen w panelu administracyjnym.
Zalecany model: suno-v6. Dostępne są suno-v6, suno-v6-wild i suno-v6-mini.
Uwierzytelnianie
| Parametr | Typ | Wymagany | Uwagi |
|---|---|---|---|
| Authorization | string | tak | Bearer YOUR_API_KEY |
| Content-Type | string | tak | application/json |
Parametry żądania
| Parametr | Typ | Wymagany | Domyślnie | Uwagi |
|---|---|---|---|---|
| song_id | string | nie | - | Pojedynczy identyfikator utworu; działa też link do utworu suno.com (w tym krótki link /s/) |
| song_ids | string[] | nie | - | Wariant dla wielu utworów (zalecany); maksymalnie 10 na żądanie |
| songs | string[] | nie | - | Alias song_ids |
| files | string[] | tak | - | Potrzebne typy plików: mp3, wav, lyrics, metadata; m4a nie jest obsługiwany |
Podaj co najmniej jeden z song_id i song_ids; podaj co najmniej jeden element w files.
Przykład żądania
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"]
}'
Odpowiedź
{
"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
}
}
| Pole | Typ | Uwagi |
|---|---|---|
| songs | array | Wynik dla każdego utworu: song_id, files[], a przy błędzie error |
| requested_songs | number | Liczba utworów po normalizacji i odduplikowaniu |
| succeeded_songs | number | Liczba sukcesów; na tej liczbie opiera się rozliczenie |
| price | number | Faktycznie pobrana kwota za to wywołanie (juany) |
Gdy żądany jest tylko jeden utwór, odpowiedź zawiera dodatkowo song_id i files na najwyższym poziomie, dla zgodności ze starym wariantem pojedynczego utworu.
Ponowne użycie adresów z pamięci podręcznej (bez opłat)
Dla utworu, który już pobrano, ponowne pobranie nie wymaga nowego rozwiązywania i nie jest ponownie rozliczane: użyj POST /api/music/free2/cached, aby otrzymać aktualne adresy plików pobranych wcześniej przez to konto.
Punkt końcowy: POST /api/music/free2/cached
Rozliczenie: Bezpłatne. To pamięć podręczna tylko do odczytu: bez rozwiązywania, bez transkodowania, bez opłat; zwracane są wyłącznie adresy już przygotowane i nieodzyskane.
⚠️ Ważność adresu pobierania: 7 dni — zapisz go na czas.
songs[].files[].urludostępnia magazyn obiektów platformy i domyślnie wygasa po 7 dniach (pliki są odzyskiwane, a stary adres zwraca 404); zapisz je we własnym magazynie w ciągu tych 7 dni. Po wygaśnięciu wywołaj ponowniePOST /api/music/free2, aby przygotować je od nowa i uzyskać ważny adres (to ponowne przygotowanie jest rozliczane według normalnych zasad;/api/music/free2/cachedzwraca tylko nadal ważne adresy z pamięci podręcznej).
Parametry żądania: identyczne jak w POST /api/music/free2 (dowolny z song_id / song_ids / songs oraz co najmniej jeden element w 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-…"]
}
}
| Pole | Typ | Uwagi |
|---|---|---|
| items | array | Lista adresów gotowych do pobrania (song_id + type + url) |
| songs | array | Wyniki dla poszczególnych utworów; missing_files to formaty, których tym razem nie było w pamięci podręcznej |
| missing | string[] | Ten utwór nie ma żadnej użytecznej pamięci podręcznej (trzeba go rozwiązać ponownie przez POST /api/music/free2, a ten krok jest rozliczany za utwór) |
Adresy są zwracane tylko dla utworów, które już pobrano; utwory bez historii pobrań lub z już odzyskanymi zasobami pojawiają się wyłącznie w missing i nie zwracają żadnego adresu.
Uwagi
POST /api/music/free2potrafi rozwiązać dowolny publiczny utwór w Suno (także utwory spoza tej platformy); gdy utworu nie da się rozwiązać,errorzwracany jest tylko dla niego i nie wpływa na pozostałe utwory w tej samej partii. NatomiastPOST /api/music/free2/cachedzwraca adresy tylko dla utworów pobranych przez to konto.- Pierwsze rozwiązanie utworu tworzy hostowane pliki, które potem są ponownie używane; nie podawaj powtórzonych typów w
files, serwer usuwa duplikaty automatycznie. - Różnica względem API pobierania i odsłuchu mediów utworów: Free2 jest płatne, przyjmuje bezpośrednio linki suno.com i poza tekstem nie udostępnia takich typów jak os czasu/MIDI.
Uzyskaj klucz API
Po rejestracji utwórz klucz API w konsoli. Każde generowanie kosztuje 0,6 ¥ i zwraca 2 utwory, pobierania są nieograniczone, a numer telefonu nie jest wymagany.
Pobierz klucz API Powrót do przeglądu