API för röstkloning och generering med angiven röst (rekommenderas inte)
⛔ Äldre kedja, rekommenderas inte för nya integrationer. Den här sidan beskriver den tidiga
persona-kedjan (voice_task_id/generate-with-voice). Den fungerar fortfarande, men rekommenderas inte längre till kunder; navigeringen till vänster märker den som "rekommenderas inte".Använd 【Rekommenderas】 röstprofil-API:t för nya integrationer: skapa en röstprofil från ett röstprov (
POST /api/music/voice-profile/create) och använd den för att göra en cover på en vald låt eller sjunga en ny låt. En röstprofil är en förstklassig resurs: den kan listas, hämtas och tas bort, och källljudet bevaras permanent.Om din produkt behöver hela slingan "skapa en röst → återanvända länge → göra covers" bör du välja den nya kedjan.
Viktigt: en klonad röst kan upphöra att gälla.
voice_id/voice_task_idsom röstkloningen skapar är inte en resurs som fungerar för evigt: den kan sluta fungera på grund av giltighetstiden, kontots status eller en ändring i röstens status. Den som integrerar får inte klona en gång och sedan återanvända ett lokalt cachelagrat röst-ID för alltid.Rekommenderat arbetssätt:
- Spara
voice_task_id,voice_id,is_available,updated_atoch tiden för den senaste lyckade genereringen.- Anropa
GET /api/voice/clone/tasks/{voice_task_id}ellerPOST /api/voice/clone/tasks/{voice_task_id}/checkföre varje generering med en klonad röst och bekräftais_available=true.- Om ändpunkten svarar att rösten inte är tillgänglig, att uppgiften inte finns eller returnerar
selected voice is not ready, be användaren klona igen eller välja en annan tillgänglig röst.- Lova inte slutanvändare att en klonad röst är en "permanent tillgång"; visa i produktgränssnittet att "en röst kan upphöra att gälla och behöva valideras om eller klonas om".
Beskrivning av ändpunkten
Den här gruppen ändpunkter skapar en återanvändbar röst och genererar låtar med den. Anroparen behöver bara API-nyckeln som plattformen utfärdar; servern sköter uppgiftsinlämning, statussynkronisering, fakturering och nedladdningar.
Autentisering: Authorization: Bearer YOUR_API_KEY
Fakturering:
- Röstvalidering, röstkloning, statusfrågor, borttagning och nedladdningar: gratis.
- Ingången för kloning i ett steg i arbetsytan: fast 5 ¥ per anrop; den gör klart valideringen av källrösten och det andra verifieringsljudet automatiskt och återbetalar vid fel.
- Fortsätta automatiskt till verifieringsljudet efter en vanlig kloning: fast 5 ¥ per anrop; vid fel återbetalas enligt det befintliga flödet.
- Generera en låt med en klonad röst: avgiftsbelagt, fast 1,2 ¥ per anrop; varje anrop returnerar oftast 2 platshållaruppgifter.
- Med Max Mode påslaget (
max_mode: trueiPOST /api/music/generate-with-voice) faktureras 1,2 ¥ per anrop med 2×, alltså 2,4 ¥ per anrop; röstgenerering stöder ocksåvariety(0-4, ingen extra kostnad); reglerna finns i avsnittet "Avancerade parametrar" i översikten över det nya API:t.
Anropsflöde
- Anropa
POST /api/voice/clone/validateför att ladda upp källrösten och få ettvoice_task_id. - Vänta på eller polla
GET /api/voice/clone/tasks/{voice_task_id}tills du fårvalidate_info. - Användaren läser texten högt och spelar in verifieringsljudet.
- Anropa
POST /api/voice/clone/tasks/{voice_task_id}/generateför att skicka in verifieringsljudet. - Anropa
POST /api/voice/clone/tasks/{voice_task_id}/checkeller fortsätt fråga uppgiften tillsis_available=true. - Anropa
POST /api/music/generate-with-voiceför att generera en låt med rösten. - Genereringsändpunkten returnerar först platshållaruppgifter; när genereringen är klar och du har det riktiga
song_idkan du hämta en enskild fil eller ett paket via nedladdningsändpunkterna. - (Valfritt) När rösten inte behövs längre, anropa
DELETE /api/voice/clone/voices/{voice_task_id}för att ta bort den; semantiken finns i avsnitt 6.
Det finns också kloning i ett steg: på arbetsytans första inspelnings-/uppladdningssida kan du välja att bli klar i ett svep; systemet gör då validering och röstskapande tillsammans, så du behöver inte spela in ett andra verifieringsljud; det kostar 5 ¥ per anrop och återbetalas vid fel.
Fält för röstuppgiften
| Fält | Typ | Beskrivning |
|---|---|---|
voice_task_id |
number | Uppgifts-ID för rösten inom plattformen; alla senare ändpunkter använder detta ID |
voice_id |
string | Röst-ID som kan användas för att generera låtar; returneras när uppgiften är användbar |
voice_name |
string | Röstens namn |
description |
string | Röstens beskrivning |
style |
string | Röstens stil |
singer_skill_level |
string | Sångnivå; vanliga värden: beginner, intermediate, professional |
language |
string | Källröstens språk, till exempel zh, en |
validate_info |
string | Verifieringstexten som ska läsas högt |
validate_status |
string | Valideringsuppgiftens status |
voice_status |
string | Status för röstskapandet |
is_available |
boolean | Om rösten redan kan användas för att generera låtar |
status |
string | Uppgiftens status på plattformen |
stage |
string | Aktuell fas |
error_code |
string | Felkod vid misslyckande |
error_message |
string | Orsak till misslyckandet |
source_duration_seconds |
number | Källljudets längd i sekunder |
created_at |
number | Tidsstämpel för skapande |
updated_at |
number | Tidsstämpel för uppdatering |
completed_at |
number | Tidsstämpel för slutförande |
1. Skicka in källrösten för validering
Ändpunkt: POST /api/voice/clone/validate
Brödtextparametrar
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|---|---|---|---|---|
voice_url |
string | Nej | - | URL till källröstens ljud. Antingen denna eller file_base64 |
file_base64 |
string | Nej | - | Ljud i base64. Antingen denna eller voice_url |
file_name |
string | Nej | - | Filnamn; rekommenderas med file_base64 |
voice_name |
string | Nej | skapas automatiskt | Röstens namn |
description |
string | Nej | - | Röstens beskrivning |
style |
string | Nej | - | Röstens stil |
singer_skill_level |
string | Nej | beginner |
Sångnivå |
language |
string | Nej | zh |
Källröstens språk |
vocal_start_s |
number | Ja | - | Startsekund för användbar sång |
vocal_end_s |
number | Ja | - | Slutsekund för användbar sång |
source_duration_seconds |
number | Nej | - | Källljudets totala längd i sekunder |
vocal_end_s - vocal_start_småste uppfylla minimikravet för sångsegmentet. Ladda upp en tydlig sånginspelning utan tydligt ackompanjemang eller brus.
Exempelbegäran
curl -X POST https://www.suno-api.io/api/voice/clone/validate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_url": "https://example.com/source-voice.wav",
"voice_name": "Min kinesiska kvinnoröst",
"description": "Klar och naturlig kinesisk kvinnoröst",
"style": "Mandopop",
"singer_skill_level": "intermediate",
"language": "zh",
"vocal_start_s": 1.2,
"vocal_end_s": 18.5,
"source_duration_seconds": 20
}'
Exempelsvar
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "Min kinesiska kvinnoröst",
"language": "zh",
"validate_status": "submitted",
"is_available": false,
"status": "validate_submitted",
"stage": "validate_submitted",
"created_at": 1780480000,
"updated_at": 1780480000
}
}
}
2. Fråga en röstuppgift
Ändpunkt: GET /api/voice/clone/tasks/{voice_task_id}
Exempelbegäran
curl https://www.suno-api.io/api/voice/clone/tasks/123 \
-H "Authorization: Bearer YOUR_API_KEY"
Exempelsvar
{
"success": true,
"message": "",
"data": {
"voice": {
"voice_task_id": 123,
"voice_name": "Min kinesiska kvinnoröst",
"validate_info": "Läs högt verifieringstexten som returneras här",
"validate_status": "success",
"is_available": false,
"status": "validate_ready",
"stage": "validate_callback"
}
}
}
3. Skapa verifieringstexten igen
Ändpunkt: POST /api/voice/clone/tasks/{voice_task_id}/regenerate
Anropa när verifieringstexten inte lämpar sig för högläsning eller när valideringen måste göras om.
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/regenerate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
4. Skicka in verifieringsljudet och skapa rösten
Ändpunkt: POST /api/voice/clone/tasks/{voice_task_id}/generate
Brödtextparametrar
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|---|---|---|---|---|
verify_url |
string | Nej | - | URL till ljudet som lästs från verifieringstexten. Antingen denna eller file_base64 |
file_base64 |
string | Nej | - | Verifieringsljud i base64. Antingen denna eller verify_url |
file_name |
string | Nej | - | Filnamn; rekommenderas med file_base64 |
voice_name |
string | Nej | uppgiftens namn | Röstens namn |
description |
string | Nej | uppgiftens beskrivning | Röstens beskrivning |
style |
string | Nej | uppgiftens stil | Röstens stil |
singer_skill_level |
string | Nej | uppgiftens inställning | Sångnivå |
Exempelbegäran
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"verify_url": "https://example.com/verify-voice.wav",
"voice_name": "Min kinesiska kvinnoröst"
}'
5. Kontrollera om rösten är användbar
Ändpunkt: POST /api/voice/clone/tasks/{voice_task_id}/check
curl -X POST https://www.suno-api.io/api/voice/clone/tasks/123/check \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
När uppgiften är användbar är is_available i svaret true och ett voice_id returneras.
6. Ta bort en röst
Ändpunkt: DELETE /api/voice/clone/voices/{voice_task_id}
Fakturering: gratis.
curl -X DELETE https://www.suno-api.io/api/voice/clone/voices/123 \
-H "Authorization: Bearer YOUR_API_KEY"
Exempelsvar
{
"success": true,
"message": "",
"data": {
"voice_task_id": 123,
"deleted": true
}
}
| Fält | Typ | Beskrivning |
|---|---|---|
| voice_task_id | number | ID för den borttagna röstuppgiften |
| deleted | boolean | Alltid true; begäran om borttagning har tagits emot |
Vad som händer efter borttagningen
- Rösten kan inte längre generera nya låtar: att anropa
POST /api/music/generate-with-voicemed dettavoice_task_id(eller dessvoice_id) avvisas med meddelandetselected voice is not ready, utan avgift. - Låtar som redan skapats med den påverkas inte alls: uppspelning, nedladdning, förlängning, ersättning och stem-separering fungerar som förut.
- Röstuppgiften försvinner ur frågor:
GET /api/voice/clone/tasks/{voice_task_id}returnerarrecord not found. - Källljudet bevaras enligt plattformens policy för permanent lagring (sedan 2026-09-23 rensar borttagning inte längre det uppladdade röstprovet), men det betyder inte att det kan återställas: den gamla uppgiften är avslutad och för att fortsätta med samma röst måste kloningsflödet köras igen, vilket ger ett nytt
voice_task_id. - Dubbel borttagning: att ta bort samma uppgift igen returnerar
record not found(den är redan borttagen och går inte att hitta).
7. Generera en låt med en klonad röst
Ändpunkt: POST /api/music/generate-with-voice
Fakturering: 1,2 ¥ per anrop.
Brödtextparametrar
| Parameter | Typ | Obligatorisk | Standard | Beskrivning |
|---|---|---|---|---|
voice_task_id |
number | Ja | - | ID för en redan användbar röstuppgift |
voice_id |
string | Nej | - | Valfritt verifieringsfält; skickas det måste det matcha uppgiftens voice_id |
customMode |
boolean | Nej | false |
false är inspirationsläge, true är avancerat läge |
prompt |
string | Ja | - | I inspirationsläge låtens beskrivning, i avancerat läge låttexten. Ingen av dem får vara tom |
style |
string | Ja i avancerat läge | - | Stiltaggar; får inte vara tomt när customMode=true |
title |
string | Ja i avancerat läge | - | Låtens titel; får inte vara tom när customMode=true |
negativeTags |
string | Nej | - | Stil som ska uteslutas |
instrumental |
boolean | Nej | false |
Kompatibilitetsfält; generering med klonad röst behandlas alltid som en sånglåt |
waitAudio |
boolean | Nej | false |
Kompatibilitetsfält; ändpunkten returnerar alltid platshållaruppgifter asynkront och väntar inte på ljudet |
model |
string | Nej | suno-v6 |
Modell för vanlig låtgenerering; suno-v6, suno-v6-wild eller suno-v6-mini |
vocalGender |
string | Nej | - | Preferens för sångröstens kön |
lyricsMode |
string | Nej | - | Kompatibilitetsfält; den nuvarande inlämningskedjan för klonad röst ändrar inte låttextläget i sig |
weirdnessConstraint |
number | Nej | - | Kreativ styrka |
styleWeight |
number | Nej | - | Stilvikt |
audioWeight |
number | Nej | plattformens standard | Audio Influence (hur mycket referensljudet väger), intervall 0.0-1.0. Skickas det inte gäller plattformens standard (motsvarar 25 % i det officiella gränssnittet); 0 är ett giltigt värde och betyder att inte närma sig referensen alls. Det hänger starkt samman med sourceClipId i nästa rad: med en källa pekar det på referensljudet, utan källa på den klonade rösten; plattformen har bara denna enda reglage för båda fallen, så dela inte upp det i två parametrar per användningsfall |
sourceClipId |
string | Nej | - | Det riktiga clip-ID:t i arbetsytan för käll-låten. Skickas det går man in i cover med klonad röst; annars är det vanlig generering med klonad röst |
sourceAudioUrl |
string | Nej | - | Visningsfält för källan; det påverkar inte ägande eller kontobeslut, servern utgår från sin databaspost |
sourceTitle |
string | Nej | - | Visningsfält för källan; det påverkar inte ägande eller kontobeslut |
clientSubmissionId |
string | Nej | - | Kompatibilitetsfält för Create UI; för tillförlitlig deduplicering i kundens API måste headern Idempotency-Key användas |
suno-v6, suno-v6-wild och suno-v6-mini stöds; en tom modell behandlas som suno-v6. De gamla modellerna V5/V5.5 är avvecklade, men historiska uppgifter kan fortfarande visa de gamla modellnamnen.
Den delade begäransstrukturen tolkar också Create UI-kompatibilitetsfält som task, soundType, soundLoop, soundBpm, soundKey, voiceTaskId och voiceId, men de är inte giltiga kundparametrar för denna ändpunkt: en röstuppgift måste skickas som voice_task_id, en valfri röstverifiering som voice_id, och musikgenerering med röst läser aldrig sound-fälten.
Så fyller du i genereringsparametrarna
- Med
customMode=falseinnehållerpromptlåtens beskrivning; medcustomMode=trueinnehållerprompthela låttexten, och ävenstyleochtitlemåste fyllas i. Skicka inte låttexten till inspirationslägets beskrivningsfält och behandla inte en låtbeskrivning som låttext i avancerat läge. weirdnessConstraintochstyleWeightär decimala förhållanden från0.0till1.0;50eller50%går inte att skicka.0.5är ett balanserat värde; att utelämna dem betyder "inte angivet" och0är ett giltigt explicit värde.vocalGenderaccepterar baram,male,fellerfemale.instrumentalär här enbart ett kompatibilitetsfält: generering med klonad röst behandlas alltid som en sånglåt.waitAudioändrar inget här; ändpunkten returnerar alltid platshållaruppgifter asynkront. Ett tomtaudio_urli första resultatet är normalt: fråga medclient_request_idoch läs ljudadressen först när resultatet är klart.
Rubrikparametrar
| Rubrik | Obligatorisk | Beskrivning |
|---|---|---|
Authorization: Bearer ... |
Ja | Kundens API-token |
Content-Type: application/json |
Ja | JSON-brödtext |
Idempotency-Key |
Nej, rekommenderas starkt | Upp till 128 tecken. Med samma användare, token, ändpunkt, nyckel och brödtext faktureras och skapas uppgiften bara en gång |
Idempotency-Key-beteende:
- Den första begäran skriver en beständig idempotenspost före faktureringen;
- Om samma nyckel med samma begäran redan är klar spelas det första mottagningssvaret upp igen, utan ny avgift och utan ny uppgift;
- Samma nyckel med en annan brödtext avvisas;
- Samma nyckel som fortfarande bearbetas returnerar ett stabilt "bearbetas"-fel och visar ett säkert
client_request_idförst när ett har skapats; - Om den första begäran med en nyckel misslyckas behålls felstatusen; ett nytt försök kräver en ny nyckel.
Villkor för cover med sourceClipId
Cover från en källa i kundens API hanteras helt på serversidan: åtkomsten till käll-låten löses av servern och kunden skickar ingen kontoinformation. Om det är möjligt avgörs av ändpunktens faktiska svar.
Källan måste tillhöra den aktuella API-användaren, vara en avslutad låt i arbetsytan som inte är pending: och ha användbart ljud. Vanlig generering, källor från vanlig uppladdning och slutet av en förstärkt uppladdning stöds; mellanposter från förstärkt uppladdning avvisas före faktureringen. Servern accepterar bara det käll-låt-ID som kunden skickar och aldrig ett konto-ID; en otillgänglig eller oavslutad källa ger fel före faktureringen.
Exempelbegäran
curl -X POST https://www.suno-api.io/api/music/generate-with-voice \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"voice_task_id": 123,
"customMode": true,
"prompt": "Skriv en kinesisk poplåt om en havskant en sommarnatt",
"style": "Mandopop, warm piano, emotional",
"title": "Havsbris en sommarnatt",
"negativeTags": "noise, low quality",
"instrumental": false,
"model": "suno-v6"
}'
Exempelsvar
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"items": [
{
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "submitted",
"type": "voice_generate",
"title": "Havsbris en sommarnatt",
"prompt": "Skriv en kinesisk poplåt om en havskant en sommarnatt"
},
{
"placeholder_id": "pending:cu_1780480000_abcd1234:1",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 1,
"status": "submitted",
"type": "voice_generate",
"title": "Havsbris en sommarnatt",
"prompt": "Skriv en kinesisk poplåt om en havskant en sommarnatt"
}
],
"pre_consumed_quota": 600000,
"billing_source": "wallet"
}
}
Om platshållaruppgifter och det slutliga song_id
generate-with-voice är en asynkron genereringsändpunkt. Ett lyckat svar betyder bara att genereringsuppgiften har skickats in, inte att låten är klar.
Betydelsen av svarets viktigaste fält:
| Fält | Beskrivning |
|---|---|
client_request_id |
Spårnings-ID för denna genereringsbegäran. En begäran skapar oftast 2 låtar och båda resultaten använder samma client_request_id. |
items[].placeholder_id |
Plattformens lokala platshållar-ID, oftast i formen pending:{client_request_id}:{index}. Det är inte låtens slutliga ID. |
items[].client_request_index |
Resultatets index inom samma begäran, oftast 0 och 1. |
items[].status |
Startstatus efter inlämning, till exempel submitted. Senare framgång eller misslyckande följer uppgiftens slutliga post. |
Obs: ett placeholder_id som börjar med pending: kan inte användas som slutligt song_id och inte heller skickas till /api/music/query eller nedladdningsändpunkterna. Att anropa /api/music/query enbart med pending:* kan ge en tom array [], eftersom den riktiga låten inte är klar än eller platshållaruppgiften ännu inte ersatts av det slutliga låt-ID:t.
Felaktigt exempel:
{
"song_ids": "pending:cu_1780480000_abcd1234:0"
}
Rätt flöde:
- Anropa
POST /api/music/generate-with-voiceför att skicka in röstgenereringsuppgiften. - Spara
client_request_id,items[].placeholder_idochitems[].client_request_indexfrån svaret. - Polla
GET /api/music/generate-with-voice/results?client_request_id=cu_xxx. - När
items[].song_idhar ett värde som inte börjar medpending:, anropa/api/music/query,/api/music/download-fileeller/api/music/download-all.
Den aktuella versionen lägger till en publik frågeändpunkt:
GET /api/music/generate-with-voice/results?client_request_id=cu_xxx
Den returnerar uppgiftsresultaten för samma client_request_id under den aktuella användaren, så att kunden själv kan slå upp det slutliga song_id. I den returnerade listan:
song_idär det riktiga låt-ID:t;placeholder_idvisas bara medan uppgiften fortfarande är en platshållare;- ett värde som börjar med
pending:kan inte användas med/api/music/queryeller nedladdningsändpunkterna.
Om du bara sparade client_request_id eller ett pending:*-platshållar-ID, anropa först denna resultatändpunkt; om det riktiga song_id fortfarande inte hittas, skicka client_request_id till teknisk support för lokalisering.
Fråga resultaten av röstgenereringen
Ändpunkt: GET /api/music/generate-with-voice/results
Fakturering: gratis.
Frågeparametrar
| Parameter | Typ | Obligatorisk | Beskrivning |
|---|---|---|---|
client_request_id |
string | Ja | Spårnings-ID som generate-with-voice returnerade |
Exempelbegäran
curl -X GET "https://www.suno-api.io/api/music/generate-with-voice/results?client_request_id=cu_1780480000_abcd1234" \
-H "Authorization: Bearer YOUR_API_KEY"
Exempelsvar medan genereringen pågår
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "processing",
"items": [
{
"song_id": "",
"placeholder_id": "pending:cu_1780480000_abcd1234:0",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "processing",
"type": "voice_generate",
"title": "Havsbris en sommarnatt"
}
]
}
}
Exempelsvar när genereringen är klar
{
"success": true,
"message": "",
"data": {
"client_request_id": "cu_1780480000_abcd1234",
"status": "completed",
"items": [
{
"song_id": "song_abc123",
"client_request_id": "cu_1780480000_abcd1234",
"client_request_index": 0,
"status": "completed",
"type": "voice_generate",
"title": "Havsbris en sommarnatt",
"audio_url": "https://...",
"image_url": "https://...",
"duration": 180.5
}
]
}
}
Betydelsen av status på översta nivån
| Status | Beskrivning |
|---|---|
not_found |
För den aktuella användaren finns ännu ingen uppgiftspost med det client_request_id:t |
processing |
Minst ett resultat är inte klart; fortsätt polla |
completed |
Alla resultat är klara; song_id kan frågas eller laddas ner |
partial |
Vissa klara, vissa misslyckade; hantera de klara song_id-värdena först |
failed |
Alla resultat misslyckades; se items[].error_message |
8. Ladda ner en enskild fil
Ändpunkt: POST /api/music/download-file
Brödtextparametrar
| Parameter | Typ | Obligatorisk | Beskrivning |
|---|---|---|---|
song_id |
string | Ja | Låtens ID |
kind |
string | Ja | Nedladdningstyp: audio, cover, wav, video |
Exempelbegäran
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": "song_abc123",
"kind": "audio"
}' \
--output song.mp3
Svaret är en filström; Content-Type och filnamn följer vad backend returnerar.
9. Ladda ner låtens resurser som ett paket
Ändpunkt: POST /api/music/download-all
Brödtextparametrar
| Parameter | Typ | Obligatorisk | Beskrivning |
|---|---|---|---|
song_id |
string | Ja | Låtens ID |
Exempelbegäran
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": "song_abc123"
}' \
--output song.zip
Paketet innehåller oftast ljudet, omslaget och metadata.json; om en resurstyp ännu inte skapats tas den inte med i arkivet.
Vanliga fel
| message | Beskrivning |
|---|---|
voice audio is required |
Vid inlämning av källrösten angavs varken voice_url eller file_base64 |
invalid voice task id |
Röstuppgiftens ID i sökvägen är ogiltigt |
voice validation is not ready |
Verifieringstexten finns ännu inte, så verifieringsljudet kan inte skickas in |
selected voice is not ready |
Den valda rösten kan ännu inte generera låtar (inte redo, borttagen eller tillhör inte det aktuella kontot) |
selected voice does not match voice task |
voice_id i begäran matchar inte uppgiften |
voice task is required |
voice_task_id saknas när en röstlåt genereras |
record not found |
Uppgiften / låten finns inte, tillhör inte kontot för den aktuella API-nyckeln eller har redan tagits bort (frågar du uppgiften efter att rösten tagits bort ser du samma sak) |
Fel i den här gruppen returnerar alltid HTTP 200: bedöm resultatet med fältet
successi svaret (falsebetyder misslyckande, orsaken finns imessage) och titta inte bara på HTTP-statuskoden. Den fullständiga semantiken för att ta bort en röst (om den fortfarande är användbar, om den kan återställas) finns i avsnitt 6.
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