Snelstartgids
Deze gids brengt je in ongeveer vijf minuten van het aanmaken van een API-sleutel naar je eerste gegenereerde nummer, het opvragen van de voortgang en het downloaden van de audio. De voorbeelden kun je zo overnemen en uitvoeren.
Het huidige standaardmodel is
suno-v6. De generatiemodellen vansuno-v2tot en metsuno-v5-5zijn uitgeschakeld: ze kunnen nog in oude taken voorkomen, maar accepteren geen nieuwe aanvragen meer.
Stap 1: een API-sleutel aanmaken
- Open https://www.suno-api.io.
- Klik op API-sleutel ophalen en registreer je. Alleen een e-mailadres is nodig, geen telefoonnummer.
- Open in de console het tokenbeheer en maak een sleutel aan.
- Kopieer hem direct — de sleutel wordt maar één keer getoond. Waardeer je saldo met een inwisselcode op voordat je de eerste betaalde aanroep doet.
Stap 2: het verzoek instellen
Alle aanroepen gebruiken dezelfde basis-URL en dezelfde headers:
POST https://www.suno-api.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Stap 3: het eerste verzoek versturen
Voorbeeld 1 — genereren vanuit een beschrijving
Beschrijf de muziek en de API schrijft tekst, melodie en arrangement:
curl -X POST https://www.suno-api.io/api/music/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "een vrolijk folknummer over de eerste dag van de lente",
"model": "suno-v6"
}'
Antwoord:
[
{
"song_id": "abc123",
"status": "pending",
"song_title": "Lenteverhaal",
"description": "een vrolijk folknummer over de eerste dag van de lente",
"created_at": "2026-04-22T10:30:00Z"
},
{
"song_id": "def456",
"status": "pending",
"song_title": "Lentestappen",
"description": "een vrolijk folknummer over de eerste dag van de lente",
"created_at": "2026-04-22T10:30:00Z"
}
]
Elke uitvoering levert twee verschillende versies op om uit te kiezen. Eén generatie kost ¥0,6.
Voorbeeld 2 — de voortgang opvragen
Stuur de ontvangen song_id-waarden naar het opvraag-endpoint:
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"
}'
Terwijl de taak loopt:
[
{
"song_id": "abc123",
"status": "processing",
"song_title": "Lenteverhaal",
"progress": "60%"
}
]
Als hij klaar is:
[
{
"song_id": "abc123",
"status": "completed",
"song_title": "Lenteverhaal",
"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
}
]
De status loopt van pending via submitted en processing naar completed. De
adressen kunnen tijdens de uitvoering leeg blijven: beoordeel op basis van de status, niet
op basis van de aanwezigheid van audio_url.
Stap 4: het bestand downloaden
Als de status completed is, vraag je gewoon de audio_url op. Downloads in MP3 en WAV
zijn onbeperkt en kosten niets extra. Heb je verliesvrije audio nodig voor montage, gebruik
dan het WAV-endpoint.
Veelvoorkomende scenario's
Achtergrondmuziek voor video
{
"description": "rustige lo-fi achtergrond voor een productvideo, zonder zang, stabiele dynamiek",
"instrumental": true,
"model": "suno-v6"
}
Met instrumental op true bevat de uitvoer geen zang.
Eigen tekst en stijl
{
"lyrics": "[Verse 1]\nDe stadslichten doven langzaam\n\n[Chorus]\nWij lopen gewoon door",
"style": "acoustic pop, warme vrouwenstem, 92 BPM",
"model": "suno-v6"
}
Opvragen tot het klaar is
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": "een vrolijk folknummer over de lente", "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
Foutafhandeling
Belangrijkste statuscodes
| Code | Betekenis | Wat te doen |
|---|---|---|
| 200 | Succes | Lees de inhoud van het antwoord |
| 400 | Ongeldig verzoek — parameter ontbreekt of is misvormd | Vergelijk met de referentie |
| 401 | Sleutel ontbreekt of is ongeldig | Controleer de header Authorization |
| 403 | Geen toestemming, meestal te weinig saldo | Waardeer je account op |
| 429 | Limiet op verzoeken | Opnieuw sturen met exponentiële backoff |
| 500 | Serverfout | Opnieuw sturen; blijft het aanhouden, neem contact op met support |
Formaat van de fout
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
Beste praktijken
- Bewaar de sleutel op je server, nooit in de browser of in verspreide apps.
- Vraag elke 10–15 seconden op in plaats van in een strakke lus.
- Bewaar de
song_id-waarden: dat is de enige identifier om de audio later terug te vinden. - Stuur opnieuw bij
429en500; los eerst de oorzaak op voordat je bij400en401opnieuw stuurt. - Mislukte generaties worden automatisch terugbetaald, dus een mislukte taak kost niets.
Volgende stappen
- Authenticatie — sleutels, fouten en limieten
- Ondersteunde modellen — modelnamen, stems en uitgeschakelde modellen
Een API-sleutel aanvragen
Maak na je registratie een API-sleutel aan in de console. Elke generatie kost ¥0,6 en levert 2 nummers op, downloads zijn onbeperkt en een telefoonnummer is niet nodig.
API-sleutel ophalen Terug naar overzicht