API voor het uploaden van bronaudio

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

Beschrijving van het endpoint

Bronaudio uploaden maakt van een lokaal of extern audiobestand een bronclip die latere functies kunnen gebruiken: cover, verlengen, sectie vervangen, scheiding enzovoort.

Endpoint: POST /api/music/upload-source

Facturering: Gratis. Dit endpoint uploadt alleen de bronaudio; het start geen generatieopdracht.

Aanbevolen gebruik: dit is stap 1 van de "tweetraps-cover". Upload de audio eerst met dit endpoint (gratis, en bij een fout kunt u het altijd opnieuw proberen) en bewaar de teruggegeven clip_id; nadat u hebt bevestigd dat de upload is geslaagd (status in een voltooide toestand), roept u de API voor cover op basis van een bronclip aan om de cover te starten — die requestbody is maar een paar honderd bytes, dus die kan niet worden afgebroken doordat de audio te groot is. Vergeleken met de eenmalige API voor uploaden en coveren is deze splitsing robuuster wanneer de audio groot is, het netwerk instabiel is of hetzelfde materiaal meerdere keren wordt hergebruikt (verlengen / vervangen / scheiding).

Tips voor het uploaden van grote bestanden

Situatie Aanbevolen aanpak
De audio is al openbaar (heeft een https-directlink) Gebruik file_url: de requestbody is maar een paar honderd bytes, de meest robuuste optie
Tijdelijke signed URL (ByteDance en andere) Gebruik file_url alleen zolang de URL openbaar bereikbaar en geldig is; gebruik anders multipart of upload direct
Lokaal bestand (Node / Python / desktop) Gebruik een multipart-upload (-F "file=@source.mp3") en stel Content-Type niet handmatig in
Alleen JSON + base64 is mogelijk Let op: Content-Length moet het aantal bytes zijn (Buffer.byteLength), anders kan de body worden afgebroken

Bevestig na de upload altijd dat status in het antwoord al voltooid is en bewaar de clip_id voordat u naar stap 2 gaat; een mislukte upload wordt niet gefactureerd en maakt geen generatieopdracht aan — probeer het gewoon opnieuw.

Controleer file_url vóór upload

Onze platforms server downloadt file_url zelf via HTTP, niet je browser. Een URL die in je browser werkt, is daarom niet automatisch bereikbaar vanaf de productieservers.

Gebruik voor lokale bestanden een multipart-upload met het veld file. Gebruik file_url niet voor ByteDance- of andere tijdelijke signed URL's, tenzij de URL openbaar bereikbaar en op het moment van de aanvraag nog geldig is.

Voer dit uit vanaf een publieke server voordat je de upload aanvraagt:

curl -L --max-time 30 -D - -o /dev/null "https://example.com/source.mp3"

De GET moet eindigen met HTTP 200, een audio-MIME-type teruggeven en niet leeg zijn. Loginpagina's, HTML-reacties en 401, 403, 404 of 410 zijn niet bruikbaar voor de server.

file_url download failed: HTTP 404 betekent meestal dat de signatuur is verlopen, het bestand is verwijderd of URL-parameters ontbreken.

Deze upload is gratis. Als het downloaden van file_url mislukt, worden geen clip_id, nummertaak of generatieaanroep aangemaakt en worden geen kosten gerekend; restitutie is niet nodig.

Verzoekparameters

Headers

Voor JSON-verzoeken:

Parameter Type Verplicht Opmerkingen
Authorization string ja Bearer YOUR_API_KEY
Content-Type string ja application/json

Stel Content-Type niet handmatig in bij multipart-verzoeken; de client genereert die automatisch.

Body-parameters

Parameter Type Verplicht Standaard Opmerkingen
model string nee suno-v6 Modelnaam voor klanten: suno-v6, suno-v6-wild of suno-v6-mini
file_url string nee - URL van de externe audio
file_base64 string nee - Audio als Base64
file bestand (multipart) nee - Te uploaden audiobestand; de veldnaam moet file zijn
file_name string nee - Bestandsnaam
upload_type string nee file_upload Soort upload

JSON-voorbeeldverzoek

curl -X POST https://www.suno-api.io/api/music/upload-source \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno-v6",
    "file_url": "https://example.com/source.mp3",
    "file_name": "source.mp3",
    "upload_type": "file_upload"
  }'

multipart-voorbeeldverzoek

curl -X POST https://www.suno-api.io/api/music/upload-source \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@source.mp3" \
  -F "file_name=source.mp3" \
  -F "upload_type=file_upload" \
  -F "model=suno-v6"
import requests

with open("source.mp3", "rb") as audio:
    response = requests.post(
        "https://www.suno-api.io/api/music/upload-source",
        headers={"Authorization": "Bearer YOUR_API_KEY"},
        data={
            "file_name": "source.mp3",
            "upload_type": "file_upload",
            "model": "suno-v6",
        },
        files={"file": ("source.mp3", audio, "audio/mpeg")},
        timeout=300,
    )

response.raise_for_status()
print(response.json())

Antwoord

{
  "clip_id": "uploaded_clip_id",
  "status": "complete",
  "title": "source.mp3",
  "image_url": "https://...",
  "audio_url": "https://...",
  "display_tags": "pop, vocal",
  "inferred_description": "uploaded source audio",
  "clip_metadata": {}
}
VolgendeAPI voor versterkte upload

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