API för cover från ett källklipp

Uppdaterad 2026-09-18 · Suno-API-teamet

Beskrivning av ändpunkten

Cover från ett källklipp återanvänder ett källklipp som du redan har laddat upp, eller som redan finns, och skapar en ny coverversion utifrån det.

Ändpunkt: POST /api/music/generate-from-source

Fakturering: Betalt, för närvarande som standard 0,6 ¥ per anrop. Själva uppladdningen av källjudet är gratis; debiteringen sker när du skapar en cover från källklippet. Det faktiskt debiterade beloppet följer den aktuella prisinställningen i backoffice.

Max Mode / Variety: den här ändpunkten stöder de valfria parametrarna max_mode och variety (0-4). Med max_mode på debiteras anropet till dubbelt pris (0,6 → 1,2 ¥ per anrop); variety kostar inget extra. Vad de betyder och hur de skickas står i avsnittet "Avancerade parametrar" i Översikt över det nya API:t.

Väntetider och timeouts (viktigt): detta är en synkron ändpunkt — beställningen accepteras och lämnas till generering först när svaret kommer. Mätt: de flesta anrop svarar på 1-3 sekunder, omkring 10% tar längre än 30 sekunder och det längsta är cirka 230 sekunder. Ställ in klientens timeout på 300 sekunder eller mer; inget svar betyder inte att inget genererades, och försök inte igen direkt efter en timeout (det duplicerar beställningen och debiterar igen). Om anslutningen bröts, kontrollera senare med GET /api/music/songs. Se "Väntetider och timeout-inställningar" i Översikt över det nya API:t.

Rekommenderad användning: det här är steg 2 i "cover i två steg". I steg 1 laddar du upp med API för att ladda upp källjud (gratis) och sparar clip_id; i steg 2 anropar du den här ändpunkten för att starta covern. På så sätt förekommer ljudet bara i det kostnadsfria steget: går uppladdningen fel är det bara att försöka igen och inget debiteras, medan begärans body i det debiterade steget bara är några hundra byte, så den kan knappast misslyckas för att överföringen bryts. API för uppladdning och cover i ett steg lägger hela ljudet i begärans body, så när ljudet passerar ungefär 8 MB blir det lätt trunkerat under överföringen och returnerar unexpected end of JSON input (se "Stora filer och trunkerade begäranden" på den sidan).

Dessutom kan samma clip_id återanvändas för Extend, Replace Section, separation och andra efterföljande åtgärder, så ljudet behöver inte laddas upp igen.

Begäransparametrar

Headers

Parameter Typ Krävs Anmärkningar
Authorization string ja Bearer YOUR_API_KEY
Content-Type string ja application/json

Brödtextparametrar

Parameter Typ Krävs Standard Anmärkningar
model string nej suno-v6 Kundvänt modellnamn: suno-v6, suno-v6-wild eller suno-v6-mini
sourceClipId string ja - Källklippets ID; du kan använda clip_id som uppladdningen av källjud returnerar, det riktiga song_id för en låt du redan har, eller det riktiga song_id som returneras när en förstärkt uppladdning har slutförts
sourceAudioUrl string nej - URL till källjudet
sourceTitle string nej - Titel på källjudet
prompt string nej - Ny text eller kreativ inriktning
customMode boolean nej true Om anpassat läge används
style string nej - Stiltaggar
title string nej - Titel
negativeTags string nej - Negativ stil
instrumental boolean nej false Om låten är instrumentell
waitAudio boolean nej false Om väntan på att ljudet blir klart
vocalGender string nej - Röstens kön
lyricsMode string nej - Textläge
weirdnessConstraint number nej - Slumpmässighet
styleWeight number nej - Stilpåverkan
audio_weight number nej - Beroende av referensljudet, intervall 0.0-1.0; kan bara skickas när ett källklipp eller referensljud anges

weirdnessConstraint, styleWeight och audio_weight tar ett decimaltal som förhållande från 0.0 till 1.0, inte ett procenttal som heltal; 50 % skrivs till exempel 0.5. 0 är ett giltigt värde; endast om fältet utelämnas betyder det "ej angivet". audio_weight mappas till Sunos metadata.control_sliders.audio_weight och styr hur mycket resultatet lutar mot referensljudet; det får bara skickas med när begäran innehåller ett giltigt sourceClipId eller referensljud, så skicka inte med det vid vanlig generering med bara text. Med customMode=true skriver du den nya texten i prompt och anger både style och title; med customMode=false skriver du den kreativa beskrivningen i prompt. instrumental och waitAudio måste använda JSON-booleska true/false.

Den här ändpunkten svarar som standard asynkront. Så länge den returnerade status är pending är en tom audio_url normalt; vänta tills den är klar innan du använder ljudadressen. sourceClipId måste vara ett riktigt käll-låt-/klipp-ID — använd inte task_id, client_request_id eller ett pending:-platshållar-ID.

Vilken typ av ID är sourceClipId

sourceClipId är den riktiga Suno-klippidentifierare som används som källa för den här covern. Plattformens kundvända låtobjekt kallar vanligtvis den här identifieraren song_id, medan coverbegärans parametrar behåller namnet sourceClipId; här betyder båda samma riktiga låt-ID.

Om källan är en förstärkt uppladdning, fråga först av den förstärkta uppladdningsuppgiften och vänta tills status blir completed, och sätt sedan det returnerade riktiga song_id i sourceClipId. Det rekommenderas att även sätta resultatets audio_url och title i sourceAudioUrl och sourceTitle.

Sätt inte den förstärkta uppladdningens task_id, client_request_id eller platshållar-ID:t pending:enhanced-upload:* i sourceClipId.

Exempelbegäran

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 på originaljudet",
    "prompt": "Ny text eller kreativ inriktning",
    "customMode": true,
    "style": "Mandopop, warm vocal",
    "title": "Coverns titel",
    "negativeTags": "noise",
    "audio_weight": 0.5,
    "instrumental": false,
    "waitAudio": false
  }'

Svar

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "new_clip_id",
        "song_title": "Coverns titel",
        "status": "pending"
      }
    ],
    "source_update": {}
  }
}

Noter

Den här ändpunkten försöker hantera frågan om vilket konto källklippet tillhör. Om källklippet inte kan användas direkt kan servern ladda upp det igen utifrån källjudets information och sedan generera.

NästaExtend-API (förlängning)

Skaffa en API-nyckel

Skapa en API-nyckel i konsolen efter registreringen. Varje generering kostar 0,6 ¥ och returnerar 2 spår, nedladdningar är obegränsade och inget telefonnummer krävs.

Hämta API-nyckel Tillbaka till översikten