Översikt över Suno API-dokumentationen
Det räcker att registrera sig med e-post för att skapa en API-nyckel. En generering kostar 0,6 ¥ och returnerar 2 låtar, med MP3/WAV-nedladdning, covers, Extend, stems-separation och röstkloning. Bas-URL: https://www.suno-api.io.
Den här sidan beskriver tillgängliga modeller, alla genererings- och redigeringsändpunkter, fakturering och rekommenderad läsordning. Vid en första integration: läs uppifrån och ned; ingångarna för 401/403/429 finns också här.
Snabba svar
Hur får jag en API-nyckel? Registrera dig med e-post, öppna konsolen, gå till tokenhantering och skapa en token. Telefonnummer och kort behövs inte.
Vad kostar ett anrop? En generering kostar 0,6 ¥ och returnerar 2 låtar. Statusfrågor, WAV, tidsstämplade texter och promptförslag kostar inget extra.
Vilka modeller stöds? suno-v6 (standard), suno-v6-wild och suno-v6-mini. Standardmodellerna v5.5 och äldre är avvecklade; befintliga verk påverkas inte.
Vad är bas-URL:en? https://www.suno-api.io, med headern Authorization: Bearer YOUR_API_KEY.
Modeller som finns nu
Vid vanlig låtgenerering kan kunden bara ange suno-v6, suno-v6-wild och suno-v6-mini. Om model utelämnas används suno-v6.
Standardmodellerna suno-v2, suno-v3, suno-v3-5, suno-v4, suno-v4-5, suno-v4-5-all, suno-v4-5-plus, suno-v5 och suno-v5-5 är avvecklade. I historiska uppgifter kan namnen fortfarande synas, men det är historik och betyder inte att modellen går att använda för nya anrop. Undantaget är stems-separation — se Stems-API (separera sång och komp).
Autentisering
Alla publika API-nyckeländpunkter använder samma headers:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Bas-URL:
https://www.suno-api.io
Allmänna parameterregler
- En
numberi förfrågan måste vara ett JSON-tal, aldrig en procentsträng. Intensiteten 50 % skrivs0.5, aldrig50eller50%. - En
booleanmåste varatrueellerfalse. Skicka intetrue,false,0eller1som ersättning. - Fält markerade med "nej" kan utelämnas helt. Om du är osäker på en parameter: utelämna den och låt tjänsten använda sitt standardbeteende. Skicka inte tom sträng,
nulleller0i stället för "inte skickat", eftersom0är ett giltigt värde i vissa numeriska fält. - Fältnamn är känsliga för stavning. Varje sida anger rekommenderat fält och kompatibla alias; skicka dem exakt som i tabellen. Där dokumentationen säger att snake_case och camelCase båda fungerar ska du inte skicka båda.
- Alla varaktighetsfält som slutar på
_sellerSecondsär i sekunder och tar decimaler. Unix-tidsstämplar beskrivs separat, inklusive om de är i sekunder eller millisekunder. - Ett ID som börjar med
pending:är en platshållare från plattformen, inte ett riktigt låt-ID. Använd det bara där ändpunkten uttryckligen dokumenterar det; vänta annars på det riktigasong_id.
Gränser för textfält
Om gränsen överskrids returneras HTTP 400 direkt: inget genereras, inget fördebiteras och ingen uppgift skapas. Räkningen sker i Unicode-tecken (ett ideogram räknas som 1) och blanksteg i början och slutet räknas med.
| Fält (inklusive kompatibla skrivsätt per ändpunkt) | Gräns |
|---|---|
prompt / lyrics / description / theme / gpt_description_prompt |
3000 tecken |
style_tags / tags / style / original_tags |
1000 tecken |
negative_tags |
1000 tecken |
song_title / title |
100 tecken |
Felmeddelandet (message) anger fältet och den uppmätta längden; de två talen räcker för att korta texten:
{
"error": {
"message": "style_tags must not exceed 1000 characters; received 2772",
"type": "invalid_request_error"
}
}
Gäller: /api/music/create, /api/music/create/custom, /api/music/extend, /api/music/upload-cover, /api/music/generate-from-source, /api/music/add-instrumental, /api/music/add-vocal, /api/music/add-stem, /api/music/mashup, /api/music/sample, /api/music/inspo, /api/music/crop, /api/music/remove-section, /api/music/fade, /api/music/reverse, /api/music/speed, /api/music/replace-section, /api/music/generate-with-voice.
Ett undantag: description i POST /api/music/sounds är begränsat till 100 tecken, eftersom ljudeffektvägen använder plattformens kortare gräns.
Asynkron generering och ljudadresser
Genereringsändpunkterna arbetar asynkront som standard. När det första svaret har status lika med pending, submitted eller processing är tomma audio_url, video_url och cover_url normalt och betyder inte att uppgiften misslyckats. Spara det riktiga song_id (eller det returnerade client_request_id) och polla rätt ändpunkt; läs och ladda ned en ljudadress först när status är klar.
⚠️ Ljudadresser går ut efter 7 dagar — flytta filerna i tid
audio_url,wav_url,video_urloch adresserna från nedladdningsändpunkterna levereras från plattformens objektlagring och går ut efter 7 dagar som standard (filerna återvinns; en gammal adress ger 404 / går inte att ladda ned).
- Inom de 7 dagarna: flytta filerna till din egen lagring (egen objektlagring, CDN eller serverdisk). Behandla inte våra adresser som långsiktiga länkar.
- En utgången adress kräver ingen ny generering och kostar inget extra: anropa låtsöknings-API:t (eller medienedladdnings-API:t) igen för att få en ny giltig adress.
Väntetider och tidsgränser
Genereringsändpunkterna är synkrona: beställningen accepteras och skickas till plattformen först när svaret kommer. Dessförinnan måste tjänsten schemalägga ett konto och passera nödvändig säkerhetskontroll, och det finns inget mellansvar — ingen annan ändpunkt ser beställningen. Det enda tillförlitliga beviset på att "något genererades" är därför själva svaret, inte det man observerar medan man väntar.
Uppmätta väntetider (produktion, /api/music/create-familjen, 18–20 september 2026)
| Percentil | Väntan |
|---|---|
| p50 | cirka 1,2–1,6 s |
| p75 | cirka 2–6 s |
| p90 | cirka 42–49 s |
| p95 | cirka 48–76 s |
| p99 | cirka 109–160 s |
| längst | cirka 230 s |
- Cirka 10 % av anropen tar över 30 sekunder och cirka 1 % tar 1–2 minuter. Långsamma anrop betyder oftast att just detta först behövde en säkerhetskontroll.
- Fält, svarsform, felkoder och fakturering är oförändrade, så befintliga integrationer behöver bara höja klientens tidsgräns — ingen annan kodändring.
Krav för integration
- Sätt klientens tidsgräns till 300 sekunder eller mer. Klienter med 30, 60 eller 120 sekunder kopplar ned under väntan.
- Inget svar betyder inte att inget genererades. Vid tidsgräns eller bruten anslutning kan beställningen redan vara accepterad och genereras.
- Försök inte igen direkt efter en tidsgräns: en dubbel inskickning skapar en andra beställning och debiterar igen.
- Om anslutningen bröts: lista dina låtar med
GET /api/music/songs(nyaste först) en stund senare — accepterade beställningar visas normalt. Skicka igen först efter att du bekräftat att beställningen verkligen saknas. - Vid felanmälan: bifoga svarshuvudet
X-Oneapi-Request-Idså att just den förfrågan kan hittas.
Vill du inte hålla en lång anslutning? Använd kvittoläge. POST /api/music/create och POST /api/music/create/custom stödjer ett valfritt kvitto: lägg till "accept_mode": "async" i kroppen (eller headern X-Accept-Mode: async) och ändpunkten svarar direkt 202 med ett kvittonummer medan genereringen fortsätter i bakgrunden; följ förloppet med GET /api/music/requests/{request_id}. En klient med bara några tiotals sekunders tidsgräns kan då inte missta "inget svar" för "inget genererat", och inte heller debiteras två gånger via omförsök. Se "Kvittoläge" i API för generering i enkelt läge.
Som referens:
python requestsanvändertimeout=300,urllibanvänderurlopen(..., timeout=300), Node använderreq.setTimeout(300000), curl använder--max-time 300.
Rekommenderade ändpunkter
| Funktion | Metod | Sökväg | Fakturering | Dokumentation |
|---|---|---|---|---|
| Kontosaldo | GET | /api/user/balance |
Gratis | Visa |
| Generering i enkelt läge | POST | /api/music/create |
Betald, för närvarande 0,6 ¥ per anrop | Visa |
| Generering i anpassat läge | POST | /api/music/create/custom |
Betald; stödjer sångkön, stilpåverkan och slumpgrad | Visa |
| Talgenerering (Speech) | POST | /api/music/speech |
Betald, för närvarande 0,6 ¥ per anrop; bakgrundsmusik valfritt | Visa |
| Förlopp för kvittot | GET | /api/music/requests/{request_id} |
Gratis; används med accept_mode=async |
Visa |
| Ljudeffekter | POST | /api/music/sounds |
Betald, för närvarande 0,6 ¥ per anrop | Visa |
| Textgenerering | POST | /api/lyrics/generate |
Gratis inom kvoten (10/min, 300/dag), därefter 0,1 ¥ per anrop | Visa |
| Skapa röstprofil (rekommenderas) | POST | /api/music/voice-profile/create |
Gratis (enhanced=true debiteras som förstärkt klon) |
Visa |
| Cover med din egen röst (rekommenderas) | POST | /api/music/voice-profile/cover |
1,2 ¥ per anrop; 2,4 ¥ med Max Mode | Visa |
| Lista / detaljer / ta bort röster (rekommenderas) | GET/POST | /api/music/voice-profile/list, /{voice_id}, /delete |
Gratis | Visa |
| Röstkloning (äldre kedja, rekommenderas inte) | POST | /api/voice/clone/validate |
Gratis | Visa |
| Fråga en röstkloningsuppgift | GET | /api/voice/clone/tasks/:voice_task_id |
Gratis | Visa |
| Återskapa verifieringstexten | POST | /api/voice/clone/tasks/:voice_task_id/regenerate |
Gratis | Visa |
| Skicka verifieringsljudet och skapa rösten | POST | /api/voice/clone/tasks/:voice_task_id/generate |
Enligt röstkloningsreglerna | Visa |
| Kontrollera att den klonade rösten fungerar | POST | /api/voice/clone/tasks/:voice_task_id/check |
Gratis | Visa |
| Ta bort en klonad röst | DELETE | /api/voice/clone/voices/:voice_task_id |
Gratis | Visa |
| Generera med en vald röst | POST | /api/music/generate-with-voice |
Betald, 1,2 ¥ per anrop; 2,4 ¥ med Max Mode | Visa |
| Fråga resultat för en vald röst | GET | /api/music/generate-with-voice/results |
Gratis | Visa |
| Stilförstärkning | POST | /api/music/boost-style |
Gratis inom kvoten (10/min, 300/dag), därefter 0,1 ¥ per anrop | Visa |
| Promptförslag | POST | /api/prompts/suggestions |
Gratis inom kvoten (10/min, 300/dag), därefter 0,1 ¥ per anrop | Visa |
| Ladda upp källjud | POST | /api/music/upload-source |
Gratis | Visa |
| Skicka förstärkt uppladdning | POST | /api/music/enhanced-upload |
Betald, 10 ¥ per anrop | Visa |
| Lista förstärkta uppladdningar | GET | /api/music/enhanced-upload |
Gratis | Visa |
| Fråga en förstärkt uppladdning | GET | /api/music/enhanced-upload/:id |
Gratis | Visa |
| Avbryt en förstärkt uppladdning | POST | /api/music/enhanced-upload/:id/cancel |
Gratis; endast avbrytbara faser återbetalas | Visa |
| Ladda upp och gör cover | POST | /api/music/upload-cover |
Betald, för närvarande 0,6 ¥ per anrop; för stort ljud, använd upload-source + generate-from-source i två steg |
Visa |
| Cover från ett källklipp | POST | /api/music/generate-from-source |
Betald, för närvarande 0,6 ¥ per anrop | Visa |
| Extend | POST | /api/music/extend |
Betald, för närvarande 0,6 ¥ per anrop | Visa |
| Byt ut avsnitt | POST | /api/music/replace-section |
Betald, för närvarande 0,6 ¥ per anrop | Visa |
| Get Full Song | POST | /api/music/concat |
Betald, fast 0,05 ¥ per anrop | Visa |
| Remaster | POST | /api/music/remaster |
Betald, för närvarande 0,6 ¥ per anrop | Visa |
| Lägg till instrumental | POST | /api/music/add-instrumental |
Betald, enligt begärd modell | Visa |
| Lägg till sång | POST | /api/music/add-vocal |
Betald, enligt begärd modell | Visa |
| Lägg till spår | POST | /api/music/add-stem |
Betald, enligt begärd modell | Visa |
| Mashup | POST | /api/music/mashup |
Betald, enligt begärd modell | Visa |
| Sample | POST | /api/music/sample |
Betald, enligt begärd modell | Visa |
| Inspo | POST | /api/music/inspo |
Betald, enligt begärd modell | Visa |
| Beskärning | POST | /api/music/crop |
Betald, enligt begärd modell | Visa |
| Ta bort avsnitt | POST | /api/music/remove-section |
Betald, enligt begärd modell | Visa |
| Tona in/ut | POST | /api/music/fade |
Betald, enligt begärd modell | Visa |
| Baklänges | POST | /api/music/reverse |
Betald, enligt begärd modell | Visa |
| Hastighet | POST | /api/music/speed |
Betald, enligt begärd modell | Visa |
| Stems (separera sång och komp) | POST | /api/music/separate |
Betald; two 0,6 ¥ per anrop, twelve 3,0 ¥ |
Visa |
| Ta bort sång | POST | /api/music/vocal-removal |
Gratis | Visa |
| Ta bort stems | POST | /api/music/stem-delete |
Gratis | Visa |
| Skapa/hämta WAV | POST | /api/music/wav |
Gratis | Visa |
| Hämta MIDI | POST | /api/music/download-file (kind=midi) |
Gratis | Visa |
| Mediaadress / förhandsströmm | POST | /api/music/download-url, /api/music/generation-stream-url |
Gratis | Visa |
| Ladda ned låtfilen | POST | /api/music/download-file |
Gratis | Visa |
| Ladda ned låtpaketet | POST | /api/music/download-all |
Gratis | Visa |
| Stabil nedladdningsadress | GET | /api/music/download |
Gratis | Visa |
| Free2-nedladdning | POST | /api/music/free2 |
Betald, 0,2 ¥ per lyckad låt | Visa |
| Status för en viss låt | POST | /api/music/query |
Gratis | Visa |
| Kontots låthistorik | GET | /api/music/songs |
Gratis | Visa |
| Genereringsparametrar för en låt | GET | /api/music/songs/:song_id |
Gratis | Visa |
| Tidsstämplade texter | POST | /api/lyrics/timeline |
Gratis | Visa |
| Licensberättigande och identitet | GET | /api/music/authorization/context |
Gratis | Visa |
| Knyt licensidentitet | POST | /api/music/authorization/identity |
Gratis; kan inte ändras efter bekräftelse | Visa |
| Lista licensierbara låtar | GET | /api/music/authorization/songs |
Gratis; kräver knyten identitet | Visa |
| Utfärda kommersiell licens | POST | /api/music/authorization/certificates |
Gratis; kräver behörighet | Visa |
| Licenshistorik | GET | /api/music/authorization/certificates |
Gratis | Visa |
| Licensdetaljer | GET | /api/music/authorization/certificates/:id |
Gratis | Visa |
| Ladda ned licensens PDF | GET | /api/music/authorization/certificates/:id/download |
Gratis | Visa |
Ändpunkterna
/api/voice/clone/*och/api/music/generate-with-voicetillhör den tidiga röstkloningskedjan och rekommenderas inte för nya integrationer; använd i stället 【Rekommenderas】 röstprofil-API:t.
Avancerade parametrar: Max Mode och Variety
Genereringsändpunkterna stödjer dessa två valfria parametrar (utelämnas de behålls beteende och pris):
| Parameter | Typ | Intervall | Kommentar |
|---|---|---|---|
| max_mode | boolean | true / false |
Mer beräkningskraft för jämnare helhet i låten; denna förfrågan debiteras till dubbelt pris |
| variety | integer | 0-4 |
Grad av stilvariation: 0=Off, 1=Normal, 2=High, 3=Extra, 4=Max. Utelämnad används modellens standardnivå (v6-familjen: 1); ingen extra kostnad |
Stöds av: POST /api/music/create, POST /api/music/create/custom,
POST /api/music/extend, POST /api/music/upload-cover, POST /api/music/generate-from-source,
POST /api/music/add-instrumental, POST /api/music/add-vocal, POST /api/music/add-stem,
POST /api/music/mashup, POST /api/music/sample, POST /api/music/inspo,
POST /api/music/replace-section, POST /api/music/voice-profile/cover, POST /api/music/speech.
- Dubbelt pris i praktiken: en ändpunkt på 0,6 ¥ per anrop blir 1,2 ¥ med
max_mode; generera med en vald röst kostar 1,2 ¥ per anrop och 2,4 ¥ med Max Mode; röstcovern i 【Rekommenderas】 röstprofil-API:t kostar också 1,2 ¥ per anrop (2,4 ¥ medmax_mode). varietygäller barasuno-v6-familjen (suno-v6,suno-v6-wild,suno-v6-goosemotsvarandesuno-v6-mini); med andra modeller returneras 400.- Ljudeffekter, stems, concat, WAV och Studio-redigeringarna (beskärning, ta bort avsnitt, tona, baklänges, hastighet med flera) har inte dessa parametrar — skickas de explicit returneras 400, så att en parameter aldrig tystas ned.
varietyär heltal 0-4;style_weightochweirdness_constraintär decimaler 0-1, så skalorna skiljer sig.
Gemensamma svarsfält för låtar
Genererings-, cover-, extend-, separerings- och frågeändpunkter returnerar oftast en array av låtar med dessa fält:
| Fält | Typ | Kommentar |
|---|---|---|
song_id |
string | Låt- eller uppgifts-ID |
song_title |
string | Låttitel |
status |
string | Status som pending, completed, failed |
audio_url |
string | Ljudadress, returneras när genereringen är klar |
video_url |
string | Videoadress, kan vara tom |
cover_url |
string | Adress till omslagsbilden |
lyrics |
string | Låttext |
style_tags |
string | Stiltaggar |
duration |
number | Ljudlängd i sekunder |
created_at |
string | Skapad |
model_version |
string | Modellversion |
generation_type |
string | Genereringstyp |
error_message |
string | Orsak till fel |
Fyra steg för integration (minimalt exempel)
Med dessa fyra steg får du din första låt; alla fält per steg finns på respektive sida i listan över rekommenderade ändpunkter.
# 1) Skicka en generering: 0,6 ¥, returnerar 2 låtar
curl -X POST https://www.suno-api.io/api/music/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"description": "bright Swedish pop, piano intro, warm female vocal", "model": "suno-v6"}'
# 2) Polla tills status är completed (3–5 sekunder är ett bra intervall)
curl -X POST https://www.suno-api.io/api/music/query \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_id": "song_id från steg 1"}'
# 3) Hämta en mediaadress: läsändpunkter är gratis; song / wav / video / cover / midi
curl -X POST https://www.suno-api.io/api/music/download-url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_id": "samma song_id", "kind": "song"}'
Om något går fel: 401 / 402 / 403 / 429 i fellistan; tidsgränser och dubbeldebiteringar i avsnittet ovan; varje ändpunkts detaljer i listan nedan.
Rekommendationer
- Nya integrationer bör använda
suno-v6överallt. - För ändpunkter med standardpris följer det faktiska beloppet den aktuella prisinställningen i backoffice och den begärda modellen.
- Genereringsändpunkter returnerar först en uppgift; hämta det färdiga ljudet via
/api/music/query. wait_completion=trueblockerar till dess det är klart och passar lågvolymstester; i produktion är asynkron polling bättre.- Genereringen kan ta lång tid — sätt klientens tidsgräns till 300 sekunder eller mer och kom ihåg att "inget svar" inte är samma sak som "inget genererat".
- Uppladdning, cover, byte och WAV beror på plattformskonton och rättigheter till källklippet; läs
messageellererror_messageförst vid fel.
Om dokumentationen
Sidan har strukturerats om efter de funktioner Create UI faktiskt erbjuder; nya integrationer bör börja här. Den äldre API-dokumentationen finns kvar under "Äldre API-dokumentation (kompatibel)" för den som vill behålla sitt tidigare arbetssätt.
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