Szybki start
Ten przewodnik w około pięć minut przeprowadzi Cię od utworzenia klucza API do pierwszej wygenerowanej piosenki, sprawdzenia postępu i pobrania audio. Przykłady można skopiować i uruchomić bez zmian.
Obecny model domyślny to
suno-v6. Modele generacji odsuno-v2dosuno-v5-5zostały wyłączone: mogą pojawiać się w starych zadaniach, ale nie przyjmują nowych żądań.
Krok 1: zdobądź klucz API
- Otwórz https://www.suno-api.io.
- Kliknij Pobierz klucz API i zarejestruj się. Potrzebny jest tylko adres e-mail, bez numeru telefonu.
- W konsoli otwórz zarządzanie tokenami i utwórz klucz.
- Skopiuj go od razu — klucz jest pokazywany tylko raz. Przed pierwszym płatnym wywołaniem doładuj saldo kodem aktywacyjnym.
Krok 2: skonfiguruj żądanie
Wszystkie wywołania używają tego samego adresu bazowego i tych samych nagłówków:
POST https://www.suno-api.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Krok 3: wyślij pierwsze żądanie
Przykład 1 — generowanie z opisu
Opisz muzykę, a API napisze tekst, melodię i aranżację:
curl -X POST https://www.suno-api.io/api/music/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "wesoła piosenka folkowa o pierwszym dniu wiosny",
"model": "suno-v6"
}'
Odpowiedź:
[
{
"song_id": "abc123",
"status": "pending",
"song_title": "Wiosenna historia",
"description": "wesoła piosenka folkowa o pierwszym dniu wiosny",
"created_at": "2026-04-22T10:30:00Z"
},
{
"song_id": "def456",
"status": "pending",
"song_title": "Wiosenne kroki",
"description": "wesoła piosenka folkowa o pierwszym dniu wiosny",
"created_at": "2026-04-22T10:30:00Z"
}
]
Każde uruchomienie zwraca dwie różne wersje do wyboru. Jedna generacja kosztuje 0,6 ¥.
Przykład 2 — sprawdzanie postępu
Przekaż otrzymane song_id do endpointu sprawdzającego status:
curl -X POST https://www.suno-api.io/api/music/query \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": ["abc123", "def456"],
"model": "suno-v6"
}'
Gdy zadanie trwa:
[
{
"song_id": "abc123",
"status": "processing",
"song_title": "Wiosenna historia",
"progress": "60%"
}
]
Gdy jest gotowe:
[
{
"song_id": "abc123",
"status": "completed",
"song_title": "Wiosenna historia",
"audio_url": "https://media.code-go.com/assets/abc123-mp3.mp3",
"video_url": "https://media.code-go.com/assets/abc123-mp4.mp4",
"cover_url": "https://media.code-go.com/assets/abc123-cover.jpg",
"duration": 168
}
]
Pole status przechodzi przez pending, submitted, processing i dochodzi do
completed. Adresy mogą pozostać puste w trakcie wykonywania zadania: oceniaj po status, a
nie po obecności audio_url.
Krok 4: pobierz plik
Gdy status to completed, po prostu pobierz audio_url. Pobieranie w MP3 i WAV jest
nieograniczone i nie kosztuje dodatkowo. Jeśli potrzebujesz dźwięku bezstratnego do montażu,
użyj endpointu WAV.
Typowe scenariusze
Muzyka tła do wideo
{
"description": "spokojne tło lo-fi do filmu o produkcie, bez wokalu, stabilna dynamika",
"instrumental": true,
"model": "suno-v6"
}
Gdy instrumental ma wartość true, wynik nie zawiera wokalu.
Własny tekst i styl
{
"lyrics": "[Verse 1]\nŚwiatła miasta gasną powoli\n\n[Chorus]\nIdziemy dalej",
"style": "acoustic pop, ciepły żeński wokal, 92 BPM",
"model": "suno-v6"
}
Odpytywanie do zakończenia
import time
import requests
API_KEY = "sk-your-key-here"
BASE = "https://www.suno-api.io"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
created = requests.post(
f"{BASE}/api/music/create",
headers=HEADERS,
json={"description": "wesoła piosenka folkowa o wiośnie", "model": "suno-v6"},
).json()
song_ids = [track["song_id"] for track in created]
for _ in range(60):
time.sleep(10)
tracks = requests.post(
f"{BASE}/api/music/query",
headers=HEADERS,
json={"song_ids": song_ids, "model": "suno-v6"},
).json()
if all(track.get("status") == "completed" for track in tracks):
for track in tracks:
print(track["song_title"], track["audio_url"])
break
Obsługa błędów
Najważniejsze kody
| Kod | Znaczenie | Co zrobić |
|---|---|---|
| 200 | Sukces | Odczytaj treść odpowiedzi |
| 400 | Nieprawidłowe żądanie — brakuje parametru lub jest błędny | Porównaj z dokumentacją |
| 401 | Brak klucza lub klucz nieprawidłowy | Sprawdź nagłówek Authorization |
| 403 | Brak dostępu, zwykle za mało środków | Doładuj konto |
| 429 | Limit żądań | Ponów z wykładniczym opóźnieniem |
| 500 | Błąd serwera | Ponów; jeśli się powtarza, skontaktuj się z pomocą |
Format błędu
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
Dobre praktyki
- Trzymaj klucz na serwerze, nigdy w przeglądarce ani w aplikacjach dystrybuowanych.
- Odpytuj co 10–15 sekund, a nie w ciasnej pętli.
- Zapisuj
song_id: to jedyny identyfikator potrzebny, aby później odnaleźć audio. - Ponawiaj przy
429i500; przy400i401najpierw usuń przyczynę. - Nieudane generacje są zwracane automatycznie, więc nieudane zadanie nic nie kosztuje.
Następne kroki
- Uwierzytelnianie — klucze, błędy i limity
- Obsługiwane modele — nazwy modeli, stemy i wyłączone modele
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