API voor versterkte upload

Bijgewerkt op 2026-09-18 · Suno-API-team

Beschrijving van het endpoint

De versterkte upload stuurt een lokaal audiobestand; het systeem voert de versterking op de achtergrond uit en produceert een compleet, afspeelbaar nummer. De aanroep geeft direct de taakinformatie terug en de client vraagt de voortgang op via het query-endpoint.

Upload-endpoint: POST /api/music/enhanced-upload

Eén taak opvragen: GET /api/music/enhanced-upload/:id

Taak annuleren: POST /api/music/enhanced-upload/:id/cancel

Lijst opvragen: GET /api/music/enhanced-upload

Facturering: 10 ¥ per aanroep, vooraf afgerekend tegen de vaste prijs van suno-enhanced-upload. Mislukt de taak, of wordt die in de toegestane fase geannuleerd, dan wordt het vooraf afgerekende bedrag automatisch terugbetaald. Het werkelijk gefactureerde bedrag volgt de huidige prijsconfiguratie in de back-office.

Aanroepflow

  1. Roep POST /api/music/enhanced-upload aan om het audiobestand te uploaden.
  2. Bewaar de teruggegeven task_id.
  3. Roep GET /api/music/enhanced-upload/:id aan om voortgang en resultaat op te vragen.
  4. Zodra Suno klaar is met de definitieve rendering, gebruikt de service de aan die taak gekoppelde Suno-account om het geautoriseerde download-endpoint van Studio aan te roepen en schrijft de MP3 naar de CN2-mediaservice.
  5. De taak wordt pas completed als het CN2-asset klaar is; dan leest u het CDN-audioadres uit audio_url in het antwoord.

/api/forbidden is een plaatshouderadres dat in de metadata van Suno Studio kan voorkomen; het is geen afspeelbare of downloadbare resource. Het wordt nooit aan klanten teruggegeven en niet gebruikt als bewijs van voltooiing. Is de rendering klaar maar is CN2 nog aan het voorbereiden, dan blijft het endpoint processing teruggeven en geeft het geen audio_url; de client moet blijven opvragen en het lege adres niet als fout zien.

Een versterkte upload insturen

Headers

Parameter Type Verplicht Opmerkingen
Authorization string ja Bearer YOUR_API_KEY
Content-Type string nee Stel dit niet handmatig in bij multipart-verzoeken; laat de client het genereren

Formulierparameters

Parameter Type Verplicht Standaard Opmerkingen
file file ja - Lokaal audiobestand, maximaal 80 MB
title string nee bestandsnaam zonder extensie Titel van het nummer

Voorbeeldverzoek

Het onderstaande voorbeeld gebruikt dezelfde aanroepvorm als bij de productievalidatie, maar de API-sleutel is vervangen door een plaatshouder.

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"

Antwoord

{
  "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"
  }
}

Een taak opvragen

Voorbeeldverzoek

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

Voorbeeldantwoord tijdens verwerking

{
  "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
    }
  }
}

Voorbeeldantwoord na voltooiing

{
  "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
    }
  }
}

Een taak annuleren

Annuleren kan alleen zolang zowel de taak als de backend-workflow zich in de fase queued bevinden. Zodra de taak in leasing, running, processing komt of is voltooid, kan die niet meer worden geannuleerd.

Voorbeeldverzoek

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"

Antwoord

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

Als de taak al met verwerken is begonnen, geeft het endpoint terug:

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

De takenlijst opvragen

Het lijst-endpoint geeft alleen de versterkte uploads terug van de gebruiker bij wie de huidige API-sleutel hoort; gewone generatie-, cover- en extend-taken worden er niet doorheen gemengd.

Query-parameters

Parameter Type Verplicht Standaard Opmerkingen
p number nee 1 Paginanummer
page_size number nee systeemstandaard Items per pagina, maximaal 100

Voorbeeldverzoek

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"

Antwoord

{
  "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
      }
    ]
  }
}

Referentie van antwoordvelden

Veld Type Opmerkingen
task_id number ID van de versterkte uploadtaak; gebruik deze voor latere opvragingen en annulering
song_id string pending:enhanced-upload:* tijdens verwerking; het echte nummer-ID na voltooiing
client_request_id string Tracking-ID van het clientverzoek
status string Taakstatus, zoals queued, processing, completed, failed, cancelled
type string Altijd enhanced_upload
audio_url string Audioadres na voltooiing
duration number Audiolengte in seconden
progress.stage string Huidige verwerkingsfase
progress.percent number Voortgang in procenten
progress.label string Voortgangstekst die aan de gebruiker wordt getoond
pre_consumed_quota number Vooraf afgerekend quotum voor deze aanroep
billing_source string Bron van de afrekening, bijvoorbeeld wallet
error_message string Reden van mislukking

Opmerkingen

Een cover starten nadat de versterkte upload klaar is

Als de versterkte upload klaar is, kunt u het resultaat als bronclip gebruiken en POST /api/music/generate-from-source aanroepen om een cover te starten.

Let op: een cover is een synchroon endpoint — de opdracht wordt pas geaccepteerd wanneer het antwoord binnenkomt, en in gemeten gevallen kan dat tot ongeveer 230 seconden duren. Zet de client-timeout op 300 seconden of meer en probeer niet direct na een timeout opnieuw. Zie "Wachttijden en timeout-instellingen" in het Overzicht van de nieuwe API.

Vraag eerst GET /api/music/enhanced-upload/:id op tot task.status completed is. Dan geldt:

Gebruik bij het starten van de cover dezelfde API-sleutel als bij de versterkte upload en bouw het verzoek volgens de onderstaande veldkoppeling op:

Veld van het coververzoek Herkomst van de waarde
sourceClipId task.song_id uit het voltooide versterkte upload
sourceAudioUrl task.audio_url uit het voltooide versterkte upload
sourceTitle task.title uit het voltooide versterkte upload

Vul de overige parameters (tekst, stijl, titel, model) in volgens de API voor cover op basis van een bronclip. Zodra het cover-endpoint de nieuwe clips[].song_id teruggeeft, vraagt u met POST /api/music/query de generatiestatus en de definitieve audio op.

VolgendeAPI voor uploaden en coveren in één keer

Een API-sleutel aanvragen

Maak na je registratie een API-sleutel aan in de console. Elke generatie kost ¥0,6 en levert 2 nummers op, downloads zijn onbeperkt en een telefoonnummer is niet nodig.

API-sleutel ophalen Terug naar overzicht