API voor cover op basis van een bronclip

Bijgewerkt op 2026-09-18 · Suno-API-team

Beschrijving van het endpoint

Een cover op basis van een bronclip hergebruikt een bronclip die u al hebt geüpload, of die al bestaat, en genereert daarmee een nieuwe coverversie.

Endpoint: POST /api/music/generate-from-source

Facturering: Betaald, momenteel standaard 0,6 ¥ per aanroep. Het uploaden van de bronaudio zelf is gratis; er wordt afgerekend wanneer u een cover op basis van de bronclip genereert. Het werkelijk gefactureerde bedrag volgt de huidige prijsconfiguratie in de back-office.

Max Mode / Variety: dit endpoint ondersteunt de optionele parameters max_mode en variety (0-4). Met max_mode aan wordt deze aanroep tegen het dubbele tarief gefactureerd (0,6 → 1,2 ¥ per aanroep); variety kost niets extra. Wat ze betekenen en hoe u ze verstuurt, staat in de sectie "Geavanceerde parameters" van het Overzicht van de nieuwe API.

Wachttijden en timeouts (belangrijk): dit is een synchroon endpoint — de opdracht wordt pas geaccepteerd en aan generatie overgedragen wanneer het antwoord binnenkomt. Gemeten: de meeste verzoeken antwoorden in 1-3 seconden, ongeveer 10% duurt langer dan 30 seconden en de langste is ongeveer 230 seconden. Zet de client-timeout op 300 seconden of meer; geen antwoord betekent niet dat er niets is gegenereerd, en probeer niet direct na een timeout opnieuw (dat dupliceert de opdracht en rekent opnieuw af). Als de verbinding wegviel, controleer later met GET /api/music/songs. Zie "Wachttijden en timeout-instellingen" in het Overzicht van de nieuwe API.

Aanbevolen gebruik: dit is stap 2 van de "tweetraps-cover". In stap 1 uploadt u met de API voor het uploaden van bronaudio (gratis) en bewaart u de clip_id; in stap 2 roept u dit endpoint aan om de cover te starten. Zo verschijnt de audio alleen in de gratis stap: mislukt de upload, dan probeert u het gewoon opnieuw en wordt er niets afgerekend, terwijl de requestbody van de betaalde stap maar een paar honderd bytes is en dus nauwelijks kan mislukken doordat de overdracht wordt afgebroken. De API voor uploaden en coveren in één keer zet de hele audio in de requestbody, dus zodra de audio groter is dan ongeveer 8 MB wordt die onderweg gemakkelijk afgekapt en krijgt u unexpected end of JSON input (zie "Grote bestanden en afgekapte requests" op die pagina).

Bovendien kan dezelfde clip_id opnieuw worden gebruikt voor Extend, Replace Section, separatie en andere vervolgacties; de audio hoeft niet nog eens te worden geüpload.

Verzoekparameters

Headers

Parameter Type Verplicht Opmerkingen
Authorization string ja Bearer YOUR_API_KEY
Content-Type string ja application/json

Body-parameters

Parameter Type Verplicht Standaard Opmerkingen
model string nee suno-v6 Klantgerichte modelnaam: suno-v6, suno-v6-wild of suno-v6-mini
sourceClipId string ja - ID van de bronclip; u kunt de clip_id uit het uploaden van bronaudio gebruiken, de echte song_id van een nummer dat u al hebt, of de echte song_id die terugkomt wanneer een versterkte upload is voltooid
sourceAudioUrl string nee - URL van de bronaudio
sourceTitle string nee - Titel van de bronaudio
prompt string nee - Nieuwe tekst of creatieve richting
customMode boolean nee true Of de aangepaste modus wordt gebruikt
style string nee - Stijltags
title string nee - Titel
negativeTags string nee - Negatieve stijl
instrumental boolean nee false Of het nummer instrumentaal is
waitAudio boolean nee false Of wordt gewacht tot de audio klaar is
vocalGender string nee - Geslacht van de stem
lyricsMode string nee - Tekstmodus
weirdnessConstraint number nee - Willekeur
styleWeight number nee - Stijlinvloed
audio_weight number nee - Afhankelijkheid van de referentieaudio, bereik 0.0-1.0; alleen te verzenden wanneer een bronclip of referentieaudio is opgegeven

weirdnessConstraint, styleWeight en audio_weight nemen alle een decimale verhouding van 0.0 tot 1.0, geen percentage als geheel getal; 50% schrijft u bijvoorbeeld als 0.5. 0 is een geldige waarde; alleen het weglaten van het veld betekent "niet opgegeven". audio_weight wordt toegewezen aan Suno's metadata.control_sliders.audio_weight en bepaalt hoe sterk het resultaat op de referentieaudio leunt; het mag alleen worden meegestuurd als het verzoek een geldige sourceClipId of referentieaudio bevat, dus stuur het niet mee bij een gewone generatie met alleen tekst. Bij customMode=true zet u de nieuwe tekst in prompt en geeft u zowel style als title op; bij customMode=false zet u de creatieve beschrijving in prompt. instrumental en waitAudio moeten de JSON-booleans true/false gebruiken.

Dit endpoint antwoordt standaard asynchroon. Zolang de teruggegeven status pending is, is een lege audio_url normaal; wacht tot het klaar is voordat u het audioadres gebruikt. sourceClipId moet een echte bron-song-/clip-ID zijn: gebruik geen task_id, geen client_request_id en geen pending:-plaatshouder-ID.

Wat voor ID is sourceClipId

sourceClipId is de echte Suno-clipidentificatie die als bron van deze cover dient. Het klantgerichte nummerobject van het platform noemt deze identificatie meestal song_id, terwijl de cover-aanvraagparameters de naam sourceClipId aanhouden; hier betekenen beide dezelfde echte nummer-ID.

Is de bron een versterkte upload, vraag dan eerst de versterkte uploadtaak op, wacht tot status completed wordt en zet daarna de teruggegeven echte song_id in sourceClipId. Het is aan te raden ook de audio_url en title van dat resultaat in sourceAudioUrl en sourceTitle te zetten.

Zet geen task_id, client_request_id of pending:enhanced-upload:*-plaatshouder-ID van een versterkte upload in sourceClipId.

Voorbeeldverzoek

curl -X POST https://www.suno-api.io/api/music/generate-from-source \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v6",
    "sourceClipId": "uploaded_or_existing_clip_id",
    "sourceAudioUrl": "https://example.com/source.mp3",
    "sourceTitle": "Titel van de originele audio",
    "prompt": "Nieuwe tekst of creatieve richting",
    "customMode": true,
    "style": "Mandopop, warm vocal",
    "title": "Titel van de cover",
    "negativeTags": "noise",
    "audio_weight": 0.5,
    "instrumental": false,
    "waitAudio": false
  }'

Antwoord

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "new_clip_id",
        "song_title": "Titel van de cover",
        "status": "pending"
      }
    ],
    "source_update": {}
  }
}

Opmerkingen

Dit endpoint probeert het vraagstuk op te lossen bij welk account de bronclip hoort. Kan de bronclip niet direct worden gebruikt, dan kan de server die op basis van de bronaudio-informatie opnieuw uploaden en daarna genereren.

VolgendeExtend-API (verlengen)

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