API di separazione (voce e base)
Descrizione dell'endpoint
La separazione divide un brano esistente in voce, base o risultati multitraccia. Il flusso di integrazione consigliato è:
- Se l'audio di origine non è un brano generato su questa piattaforma, chiama prima l'API di caricamento dell'audio di origine.
- Chiama
POST /api/music/separateper inviare l'attività di separazione. - Interroga il risultato con l'API di consultazione e cronologia dei brani.
- Usa gli endpoint di download per scaricare il file audio di ogni risultato di separazione.
Endpoint: POST /api/music/separate
Fatturazione: A pagamento. stem_mode=two attualmente 0,6 ¥ per chiamata per impostazione predefinita; stem_mode=twelve è una separazione multitraccia e attualmente 3,0 ¥ per chiamata per impostazione predefinita. L'importo effettivamente addebitato segue la configurazione prezzi del back-office.
Tempi di attesa e timeout (importante): è un endpoint sincrono — l'ordine viene accettato e passato alla generazione solo quando arriva la risposta. Dai dati misurati, la maggior parte delle richieste risponde in 1-3 secondi, circa il 10% supera i 30 secondi e la più lunga arriva a circa 230 secondi. Imposta il timeout del client a 300 secondi o più; nessuna risposta non significa che non sia stato generato nulla, e non ritentare subito dopo un timeout (duplica l'ordine e riaddebita). Se la connessione è caduta, verifica più tardi con
GET /api/music/songs. Vedi «Tempi di attesa e impostazione del timeout» nella Panoramica della nuova API.
Autenticazione
| Parametro | Tipo | Obbligatorio | Note |
|---|---|---|---|
| Authorization | string | sì | Bearer YOUR_API_KEY |
| Content-Type | string | sì | application/json |
Parametri della richiesta
| Parametro | Tipo | Obbligatorio | Predefinito | Note |
|---|---|---|---|---|
| song_id | string | sì | - | ID del brano di origine da separare |
| stem_mode | string | sì | - | Modalità di separazione: two o twelve |
| source_audio_url | string | no | - | URL dell'audio di origine |
| source_file_name | string | no | - | Nome del file audio di origine |
| source_title | string | no | - | Titolo del brano di origine |
Informazioni su stem_mode
| Valore | Voci restituite | Note |
|---|---|---|
two |
4 | Separazione in due tracce: voce + base. Un invio produce 2 versioni × 2 tracce |
twelve |
24 | Separazione multitraccia: 2 versioni × 12 tracce; i nomi delle tracce sono nella tabella sotto |
Informazioni sulla separazione
La separazione è una capacità fissa e indipendente: non serve indicare né scegliere un modello di generazione dei brani. Il cliente invia solo il brano di origine e stem_mode; il server se ne occupa in base alla modalità.
Da dove vengono i numeri: un invio produce 2 versioni (due risultati dello stesso materiale), quindi il numero è 2 × le tracce di quella modalità: 4 per two e 24 per twelve.
Basati sempre sulla lunghezza reale dell'array clips nella risposta; non scrivere cicli su un numero fisso (singole tracce possono fallire e quelle riuscite vengono restituite come al solito).
Quali tracce restituisce ogni modalità
Le 12 tracce della modalità twelve (i nomi sono fissati dalla piattaforma; l'ordine può variare):
| # | Titolo della traccia | Note |
|---|---|---|
| 1 | (Vocals) |
Voce principale |
| 2 | (Backing Vocals) |
Armonie / cori |
| 3 | (Drums) |
Batteria |
| 4 | (Bass) |
Basso |
| 5 | (Guitar) |
Chitarra |
| 6 | (Keyboard) |
Tastiere / pianoforte |
| 7 | (Percussion) |
Percussioni |
| 8 | (Strings) |
Archi |
| 9 | (Synth) |
Synth |
| 10 | (FX) |
Effetti / ambiente |
| 11 | (Brass) |
Ottoni |
| 12 | (Woodwinds) |
Legni |
La modalità two restituisce due tracce, (Vocals) e (Instrumental), ciascuna in 2 versioni.
I titoli delle tracce di two e twelve sono nomi fissi (non contengono il nome del brano di origine), quindi non aspettarti di capire dal titolo da quale brano provengono.
I titoli delle tracce non valgono come chiave univoca. Nelle due versioni compaiono tracce con lo stesso nome (per esempio due
(Vocals), due(Strings)), e una separazione restituisce molte tracce. Usa sempresong_idcome identificatore esong_titlesolo per la visualizzazione; non usare nemmeno gli indici dell'array (l'ordine può cambiare).
Esempi di richiesta
Separazione voce / base (stem_mode: "two")
curl -X POST https://www.suno-api.io/api/music/separate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "source_clip_id",
"stem_mode": "two",
"source_audio_url": "https://example.com/source.mp3",
"source_file_name": "source.mp3",
"source_title": "Source Song"
}'
Separazione multitraccia (stem_mode: "twelve")
curl -X POST https://www.suno-api.io/api/music/separate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "source_clip_id",
"stem_mode": "twelve",
"source_audio_url": "https://example.com/source.mp3"
}'
Risposta
In caso di successo viene di solito restituito un array di risultati di separazione. Ogni risultato è un clip di brano indipendente e va interrogato finché status non raggiunge uno stato completato.
{
"code": 200,
"message": "success",
"data": {
"clips": [
{
"song_id": "stem_clip_id_1",
"song_title": "(Vocals)",
"status": "pending",
"generation_type": "separate",
"created_at": "2026-06-06T10:00:00Z"
},
{
"song_id": "stem_clip_id_2",
"song_title": "(Instrumental)",
"status": "pending",
"generation_type": "separate",
"created_at": "2026-06-06T10:00:00Z"
}
]
}
}
Sopra sono mostrate solo 2 delle 4 voci della modalità
two; in pratica ne vengono restituite 4 (2 versioni × {(Vocals),(Instrumental)}); la modalitàtwelvene restituisce 24. Il numero reale è la lunghezza dell'arrayclips.
Di solito il cliente deve solo salvare clips[].song_id; le consultazioni e i download successivi ruotano attorno a questi ID.
Note
- I risultati della separazione non compaiono nella cronologia di
GET /api/music/songs(quell'elenco restituisce solo brani generati ordinari). Dopo un invio riuscito salva subitoclips[].song_id, altrimenti dopo non riuscirai a trovarli. - Ogni traccia è un'opera indipendente: ogni traccia ha il proprio
song_ide va interrogata fino al completamento e scaricata separatamente. - La fatturazione non dipende dal numero di voci: si paga per chiamata (
two0,6 ¥ per chiamata,twelve3,0 ¥ per chiamata), e 4 o 24 voci costano lo stesso. - Download: usa il
song_iddi quella traccia conPOST /api/music/download-url/download-file(gratuito), oppure direttamente l'audio_urldel risultato della consultazione; per il MIDI vedi l'API di recupero MIDI. - Non inviare due volte: la separazione è un endpoint sincrono, quindi dopo un timeout verifica prima con la consultazione dei brani invece di ritentare subito (duplica l'ordine e riaddebita).
- Nascondi le tracce che non ti servono più con l'API di eliminazione delle tracce separate.
Consultare i risultati della separazione
Dopo un invio riuscito, consulta i risultati con clips[].song_id tramite POST /api/music/query.
curl -X POST https://www.suno-api.io/api/music/query \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": "stem_clip_id_1,stem_clip_id_2"
}'
Esempio di consultazione completata:
[
{
"song_id": "stem_clip_id_1",
"song_title": "(Vocals)",
"status": "complete",
"audio_url": "https://...",
"cover_url": "https://...",
"duration": 180.5,
"generation_type": "separate",
"stem_from_id": "source_clip_id"
}
]
Scaricare i file delle tracce
Quando un risultato di separazione è completo, puoi scaricare un singolo file di traccia con l'endpoint di download.
Endpoint: POST /api/music/download-file
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": "stem_clip_id_1",
"kind": "audio"
}' \
--output stem.mp3
kind supporta:
| kind | Note |
|---|---|
audio / song / music |
Scarica l'audio MP3 |
cover / image |
Scarica la copertina |
wav |
Scarica l'audio WAV |
video / mp4 |
Scarica il video |
Per scaricare in pacchetto le risorse correlate di un risultato di separazione, chiama:
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": "stem_clip_id_1"
}' \
--output stem-resources.zip
Descrizione degli stati
| Stato | Note |
|---|---|
pending |
Inviato, in attesa di elaborazione |
queued |
In coda |
generating / processing |
In elaborazione |
complete / completed |
Completato |
error / failed |
Non riuscito; controlla error_message |
Errori frequenti
| Stato HTTP | Note | Gestione suggerita |
|---|---|---|
| 400 | Parametri errati, per esempio song_id o stem_mode mancanti |
Controlla i parametri della richiesta |
| 401 | Chiave API non valida o assente | Controlla Authorization |
| 402 | Saldo insufficiente | Ricarica e riprova |
| 409 | Il brano di origine non può essere elaborato al momento | Controlla song_id o riprova più tardi |
| 500/503 | Anomalia temporanea del servizio o della piattaforma | Riprova più tardi o contatta il supporto tecnico |
Note di compatibilità
La documentazione precedente usava esempi a oggetto singolo come success/task_id/vocals_url/instrumental_url. La separazione attuale si basa sull'array di brani clips[]: ogni risultato di separazione ha il proprio song_id, e le consultazioni e i download successivi ruotano attorno a questi song_id.
Pagine correlate
- Se vuoi solo separare voce e base senza scegliere una modalità, usa l'API di rimozione della voce; è la forma rapida a due tracce di questo endpoint ed è attualmente gratuita.
- Nascondi le tracce di separazione che non ti servono più con l'API di eliminazione delle tracce separate (eliminazione logica, senza addebito).
- Per il MIDI di una traccia vedi l'API di recupero MIDI; per audio, copertina e altri media l' API di download e anteprima dei media dei brani.
Ottenere una chiave API
Dopo la registrazione puoi creare una chiave API nella console. Ogni generazione costa 0,6 ¥ e restituisce 2 brani, i download sono illimitati e non serve un numero di telefono.
Ottieni chiave API Torna alla panoramica