API för separering (sång och komp)
Beskrivning av ändpunkten
Separering delar upp en befintlig låt i sång, komp eller flerspårsresultat. Rekommenderat integrationsflöde:
- Om källjudet inte är en låt genererad på den här plattformen, anropa först API för att ladda upp källjud.
- Anropa
POST /api/music/separateför att skicka separeringsuppgiften. - Fråga efter resultatet med API för låtfrågor och historik.
- Ladda ner ljudfilen för varje separeringsresultat med nedladdningsändpunkterna.
Ändpunkt: POST /api/music/separate
Fakturering: Betalt. stem_mode=two för närvarande som standard 0,6 ¥ per anrop; stem_mode=twelve är en flerspårsdelning och för närvarande som standard 3,0 ¥ per anrop. Det faktiskt debiterade beloppet följer prisinställningen i backoffice.
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.
Autentisering
| Parameter | Typ | Krävs | Anmärkningar |
|---|---|---|---|
| Authorization | string | ja | Bearer YOUR_API_KEY |
| Content-Type | string | ja | application/json |
Begäransparametrar
| Parameter | Typ | Krävs | Standard | Anmärkningar |
|---|---|---|---|---|
| song_id | string | ja | - | ID för källlåten som ska separeras |
| stem_mode | string | ja | - | Separeringsläge: two eller twelve |
| source_audio_url | string | nej | - | URL till källjudet |
| source_file_name | string | nej | - | Filnamn för källjudet |
| source_title | string | nej | - | Titel på källlåten |
Om stem_mode
| Värde | Returnerade poster | Anmärkningar |
|---|---|---|
two |
4 | Tvåspårsseparering: sång + komp. En inskickning ger 2 versioner × 2 spår |
twelve |
24 | Flerspårsdelning: 2 versioner × 12 spår; spårnamnen finns i tabellen nedan |
Om separering
Separering är en fristående fast funktion: ingen låtgenereringsmodell behöver anges eller väljas. Kunden skickar bara källlåten och stem_mode; servern hanterar resten enligt läget.
Varifrån siffrorna kommer: en inskickning ger 2 versioner (två resultat av samma material), så antalet är 2 × antalet spår i det läget: 4 för two och 24 för twelve.
Gå alltid efter den faktiska längden på clips-arrayen i svaret; hårdkoda inte en loop över ett fast antal (enstaka spår kan misslyckas och de lyckade returneras som vanligt).
Vilka spår varje läge returnerar
De 12 spåren i läget twelve (namnen sätts fast av plattformen; ordningen kan variera):
| # | Spårtitel | Anmärkningar |
|---|---|---|
| 1 | (Vocals) |
Leadsång |
| 2 | (Backing Vocals) |
Harmonisång / kör |
| 3 | (Drums) |
Trummor |
| 4 | (Bass) |
Bas |
| 5 | (Guitar) |
Gitarr |
| 6 | (Keyboard) |
Klaviatur / piano |
| 7 | (Percussion) |
Percussion |
| 8 | (Strings) |
Stråkar |
| 9 | (Synth) |
Synth |
| 10 | (FX) |
Effekter / atmosfär |
| 11 | (Brass) |
Brass |
| 12 | (Woodwinds) |
Träblås |
Läget two returnerar två spår, (Vocals) och (Instrumental), vardera i 2 versioner.
Spårtitlarna i two och twelve är fasta namn (de innehåller inte källlåtens namn), så förvänta dig inte att kunna se av titeln vilken låt det gäller.
Spårtitlar kan inte användas som unik nyckel. I de två versionerna förekommer spår med samma namn (till exempel två
(Vocals), två(Strings)), och en separering returnerar många spår. Använd alltidsong_idsom identifierare ochsong_titleendast för visning; använd inte heller arrayindex (ordningen kan ändras).
Exempelbegäranden
Sång-/kompseparering (stem_mode: "two")
curl -X POST https://www.suno-api.io/api/music/separate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "source_clip_id",
"stem_mode": "two",
"source_audio_url": "https://example.com/source.mp3",
"source_file_name": "source.mp3",
"source_title": "Source Song"
}'
Flerspårsdelning (stem_mode: "twelve")
curl -X POST https://www.suno-api.io/api/music/separate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "source_clip_id",
"stem_mode": "twelve",
"source_audio_url": "https://example.com/source.mp3"
}'
Svar
Vid framgång returneras vanligtvis en array med separeringsresultat. Varje resultat är en fristående låtclip och måste fortsätta frågas tills status når ett slutfört tillstånd.
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "stem_clip_id_1",
"song_title": "(Vocals)",
"status": "pending",
"generation_type": "separate",
"created_at": "2026-06-06T10:00:00Z"
},
{
"song_id": "stem_clip_id_2",
"song_title": "(Instrumental)",
"status": "pending",
"generation_type": "separate",
"created_at": "2026-06-06T10:00:00Z"
}
]
}
}
Ovan visas bara 2 av 4 poster i läget
two; i praktiken returneras 4 (2 versioner × {(Vocals),(Instrumental)}); lägettwelvereturnerar 24. Det verkliga antalet är längden påclips-arrayen.
Kunden behöver oftast bara spara clips[].song_id; senare frågor och nedladdningar kretsar kring dessa ID:n.
Noter
- Separeringsresultat visas inte i låthistoriken för
GET /api/music/songs(den listan returnerar bara vanliga genererade låtar). Sparaclips[].song_iddirekt efter en lyckad inskickning, annars går de inte att hitta senare. - Varje spår är ett fristående verk: varje spår har sitt eget
song_idoch måste frågas separat till slutförande och laddas ner separat. - Faktureringen är oberoende av antalet poster: den sker per anrop (
two0,6 ¥ per anrop,twelve3,0 ¥ per anrop), och 4 eller 24 poster kostar lika mycket. - Nedladdning: använd spårets
song_idmedPOST /api/music/download-url/download-file(gratis), eller användaudio_urlfrån frågeresultatet direkt; för MIDI se MIDI-hämtnings-API. - Skicka inte in två gånger: separering är en synkron ändpunkt, så bekräfta efter en timeout först med låtfrågan i stället för att försöka igen direkt (det duplicerar beställningen och debiterar igen).
- Dölj spår du inte längre behöver med API för att ta bort stems.
Fråga efter separeringsresultat
Efter en lyckad inskickning, fråga efter resultaten med clips[].song_id via POST /api/music/query.
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": "stem_clip_id_1,stem_clip_id_2"
}'
Exempel på en slutförd fråga:
[
{
"song_id": "stem_clip_id_1",
"song_title": "(Vocals)",
"status": "complete",
"audio_url": "https://...",
"cover_url": "https://...",
"duration": 180.5,
"generation_type": "separate",
"stem_from_id": "source_clip_id"
}
]
Ladda ner spårfiler
När ett separeringsresultat är klart kan du ladda ner en enskild spårfil med nedladdningsändpunkten.
Ändpunkt: POST /api/music/download-file
curl -X POST https://www.suno-api.io/api/music/download-file \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "stem_clip_id_1",
"kind": "audio"
}' \
--output stem.mp3
kind stöder:
| kind | Anmärkningar |
|---|---|
audio / song / music |
Ladda ner MP3-ljudet |
cover / image |
Ladda ner omslaget |
wav |
Ladda ner WAV-ljudet |
video / mp4 |
Ladda ner videon |
För att paketera ett separeringsresultats relaterade resurser, anropa:
curl -X POST https://www.suno-api.io/api/music/download-all \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "stem_clip_id_1"
}' \
--output stem-resources.zip
Statusförklaringar
| Status | Anmärkningar |
|---|---|
pending |
Inskickad, väntar på bearbetning |
queued |
I kö |
generating / processing |
Bearbetas |
complete / completed |
Klar |
error / failed |
Misslyckades; se error_message |
Vanliga fel
| HTTP-status | Anmärkningar | Föreslagen åtgärd |
|---|---|---|
| 400 | Felaktiga parametrar, till exempel saknad song_id eller stem_mode |
Kontrollera begärans parametrar |
| 401 | API-nyckeln är ogiltig eller saknas | Kontrollera Authorization |
| 402 | Otillräckligt saldo | Fyll på och försök igen |
| 409 | Källlåten kan inte bearbetas just nu | Kontrollera song_id eller försök igen senare |
| 500/503 | Tillfälligt fel i tjänsten eller plattformen | Försök igen senare eller kontakta teknisk support |
Kompatibilitetsnoter
Den äldre dokumentationen använde exempel med ett enda objekt som success/task_id/vocals_url/instrumental_url. Nuvarande separering bygger på låtarrayen clips[]: varje separeringsresultat har sitt eget song_id, och senare frågor och nedladdningar kretsar kring dessa song_id.
Relaterade sidor
- Vill du bara separera sång och komp utan att välja läge, använd API för att ta bort sång; det är den snabba tvåspårsformen av den här ändpunkten och är för närvarande gratis.
- Dölj separeringsspår du inte längre behöver med API för att ta bort stems (mjuk borttagning, ingen kostnad).
- För ett spårs MIDI se MIDI-hämtnings-API; för ljud, omslag och andra medier API för nedladdning och uppspelning av låtmedia.
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