API för förstärkt uppladdning

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

Beskrivning av ändpunkten

Förstärkt uppladdning skickar en lokal ljudfil; systemet utför förstärkningen i bakgrunden och skapar en komplett, spelbar låt. Anropet returnerar uppgiftsinformationen direkt och klienten frågar ändpunkten för frågor om förloppet.

Ändpunkt för inskick: POST /api/music/enhanced-upload

Fråga om en uppgift: GET /api/music/enhanced-upload/:id

Avbryt en uppgift: POST /api/music/enhanced-upload/:id/cancel

Fråga om listan: GET /api/music/enhanced-upload

Fakturering: 10 ¥ per anrop, debiterat i förskott till fastpriset för suno-enhanced-upload. Om uppgiften misslyckas, eller avbryts i det tillåtna skedet, återbetalas det förskottsdebiterade beloppet automatiskt. Det faktiskt debiterade beloppet följer den aktuella prisinställningen i backoffice.

Anropsflöde

  1. Anropa POST /api/music/enhanced-upload för att ladda upp ljudfilen.
  2. Spara det returnerade task_id.
  3. Anropa GET /api/music/enhanced-upload/:id för att se förlopp och resultat.
  4. När Suno har slutfört den slutliga renderingen använder tjänsten det Suno-konto som är knutet till uppgiften för att anropa Studios auktoriserade nedladdningsändpunkt och skriver MP3:an till CN2-medietjänsten.
  5. Uppgiften blir completed först när CN2-tillgången är klar; då hämtas CDN-ljudadressen från audio_url i svaret.

/api/forbidden är en platshållaradress som kan förekomma i Suno Studios metadata; den är inte en spelbar eller nedladdningsbar resurs. Den returneras aldrig till kunder och används inte som bevis på slutförande. Om renderingen är klar men CN2 fortfarande förbereder, fortsätter ändpunkten att returnera processing och returnerar inget audio_url; klienten bör fortsätta fråga och inte se den tomma adressen som ett fel.

Skicka en förstärkt uppladdning

Headers

Parameter Typ Krävs Anmärkningar
Authorization string ja Bearer YOUR_API_KEY
Content-Type string nej Ange det inte manuellt för multipart-begäranden; låt klienten generera det

Formulärparametrar

Parameter Typ Krävs Standard Anmärkningar
file file ja - Lokal ljudfil, högst 80 MB
title string nej filnamn utan ändelse Låttitel

Exempelbegäran

Exemplet nedan använder samma anropsform som vid produktionsvalideringen, men API-nyckeln har ersatts av en platshållare.

curl.exe --http1.1 -s -S \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@source.aac" \
  -F "title=Enhanced upload demo" \
  "https://www.suno-api.io/api/music/enhanced-upload"

Svar

{
  "success": true,
  "message": "",
  "data": {
    "task_id": 3209,
    "song_id": "pending:enhanced-upload:cu_20260611003241723483700xnCcQg",
    "client_request_id": "cu_20260611003241723483700xnCcQg",
    "title": "Enhanced upload demo",
    "file_name": "source.aac",
    "status": "queued",
    "created_at": 1781137961,
    "pre_consumed_quota": 5000000,
    "billing_source": "wallet"
  }
}

Fråga om en uppgift

Exempelbegäran

curl.exe --http1.1 -s -S \
  -H "Authorization: Bearer YOUR_API_KEY" \
  "https://www.suno-api.io/api/music/enhanced-upload/3209"

Exempelsvar under bearbetning

{
  "success": true,
  "message": "",
  "data": {
    "task": {
      "task_id": 3209,
      "song_id": "pending:enhanced-upload:cu_20260611003241723483700xnCcQg",
      "client_request_id": "cu_20260611003241723483700xnCcQg",
      "title": "Enhanced upload demo",
      "file_name": "source.aac",
      "status": "processing",
      "type": "enhanced_upload",
      "progress": {
        "stage": "media_preparing",
        "percent": 98,
        "label": "正在准备播放资源",
        "updated_at": 1781138500
      },
      "pre_consumed_quota": 5000000,
      "billing_source": "wallet",
      "created_at": 1781137961,
      "updated_at": 1781138500
    }
  }
}

Exempelsvar när den är klar

{
  "success": true,
  "message": "",
  "data": {
    "task": {
      "task_id": 3209,
      "song_id": "56cbd0bb-0e8c-4a34-8729-55d5c05d9c53",
      "client_request_id": "cu_20260611003241723483700xnCcQg",
      "title": "Enhanced upload demo",
      "file_name": "source.aac",
      "status": "completed",
      "type": "enhanced_upload",
      "audio_url": "https://media.code-go.com/assets/56cbd0bb-0e8c-4a34-8729-55d5c05d9c53-mp3.mp3",
      "duration": 217.74,
      "progress": {
        "stage": "completed",
        "percent": 100,
        "label": "已完成",
        "updated_at": 1781138943
      },
      "pre_consumed_quota": 5000000,
      "billing_source": "wallet",
      "created_at": 1781137961,
      "updated_at": 1781138943,
      "completed_at": 1781138943
    }
  }
}

Avbryta en uppgift

Avbrott är bara möjligt så länge både uppgiften och backend-arbetsflödet fortfarande är i skedet queued. När uppgiften går in i leasing, running, processing eller har slutförts går den inte att avbryta.

Exempelbegäran

curl.exe --http1.1 -s -S -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  "https://www.suno-api.io/api/music/enhanced-upload/3209/cancel"

Svar

{
  "success": true,
  "message": "",
  "data": {
    "task_id": 3209,
    "song_id": "pending:enhanced-upload:cu_20260611003241723483700xnCcQg",
    "client_request_id": "cu_20260611003241723483700xnCcQg",
    "status": "cancelled"
  }
}

Om uppgiften redan har börjat bearbetas returnerar ändpunkten:

{
  "success": false,
  "message": "强化上传已开始处理,无法取消"
}

Fråga om uppgiftslistan

Liständpunkten returnerar bara de förstärkta uppladdningarna för den användare som den aktuella API-nyckeln tillhör; vanliga genererings-, cover- och extend-uppgifter blandas inte in.

Frågeparametrar

Parameter Typ Krävs Standard Anmärkningar
p number nej 1 Sidnummer
page_size number nej systemstandard Poster per sida, högst 100

Exempelbegäran

curl.exe --http1.1 -s -S \
  -H "Authorization: Bearer YOUR_API_KEY" \
  "https://www.suno-api.io/api/music/enhanced-upload?p=1&page_size=3"

Svar

{
  "success": true,
  "message": "",
  "data": {
    "page": 1,
    "page_size": 3,
    "total": 1,
    "items": [
      {
        "task_id": 3209,
        "song_id": "56cbd0bb-0e8c-4a34-8729-55d5c05d9c53",
        "client_request_id": "cu_20260611003241723483700xnCcQg",
        "title": "Enhanced upload demo",
        "file_name": "source.aac",
        "status": "completed",
        "type": "enhanced_upload",
        "audio_url": "https://media.code-go.com/assets/56cbd0bb-0e8c-4a34-8729-55d5c05d9c53-mp3.mp3",
        "duration": 217.74,
        "progress": {
          "stage": "completed",
          "percent": 100,
          "label": "已完成",
          "updated_at": 1781138943
        },
        "pre_consumed_quota": 5000000,
        "billing_source": "wallet",
        "created_at": 1781137961,
        "updated_at": 1781138943,
        "completed_at": 1781138943
      }
    ]
  }
}

Förklaring av svarsfält

Fält Typ Anmärkningar
task_id number ID för uppgiften förstärkt uppladdning; används i senare frågor och vid avbrott
song_id string pending:enhanced-upload:* under bearbetning; låtens riktiga ID när den är klar
client_request_id string Spårnings-ID för klientbegäran
status string Uppgiftsstatus, till exempel queued, processing, completed, failed, cancelled
type string Alltid enhanced_upload
audio_url string Ljudadress när den är klar
duration number Ljudets längd i sekunder
progress.stage string Aktuellt bearbetningsskede
progress.percent number Förlopp i procent
progress.label string Förloppstext som visas för användaren
pre_consumed_quota number Kvot som debiterats i förskott för detta anrop
billing_source string Debiteringskälla, till exempel wallet
error_message string Orsak till misslyckandet

Noter

Starta en cover när den förstärkta uppladdningen är klar

När den förstärkta uppladdningen är klar kan du använda resultatet som källklipp och anropa POST /api/music/generate-from-source för att starta en cover.

Obs: en cover är en synkron ändpunkt — beställningen accepteras först när svaret kommer, och uppmätta fall kan ta upp till omkring 230 sekunder. Ställ in klientens timeout på 300 sekunder eller mer och försök inte igen direkt efter en timeout. Se "Väntetider och timeout-inställningar" i Översikt över det nya API:t.

Fråga först GET /api/music/enhanced-upload/:id tills task.status är completed. Då gäller:

Använd samma API-nyckel som för den förstärkta uppladdningen när du startar covern och bygg begäran enligt fältkopplingen nedan.

Fält i cover-begäran Var värdet kommer från
sourceClipId task.song_id från den slutförda förstärkta uppladdningen
sourceAudioUrl task.audio_url från den slutförda förstärkta uppladdningen
sourceTitle task.title från den slutförda förstärkta uppladdningen

Fyll i övriga parametrar (text, stil, titel, modell) enligt API för cover från ett källklipp. När cover-ändpunkten returnerar det nya clips[].song_id, använd POST /api/music/query för att se genereringsstatus och det slutliga ljudet.

NästaAPI för uppladdning och cover i ett steg

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