API розділення на доріжки (вокал і супровід)
Опис кінцевої точки
Розділення на доріжки розбиває наявну пісню на вокал, супровід або багатодорожечний результат. Рекомендований порядок інтеграції:
- Якщо вихідне аудіо — не пісня, створена на цій платформі, спершу викличте API завантаження вихідного аудіо.
- Викличте
POST /api/music/separate, щоб надіслати завдання розділення. - Опитуйте результат через API запиту пісень та історії.
- Завантажте аудіофайл кожного результату розділення кінцевими точками завантаження.
Кінцева точка: POST /api/music/separate
Оплата: платно. stem_mode=two наразі типово 0,6 ¥ за виклик; stem_mode=twelve — багатодорожечне розділення, наразі типово 3,0 ¥ за виклик. Фактично списана сума відповідає поточній конфігурації цін у бек-офісі.
Час очікування та тайм-аути (важливо): це синхронна кінцева точка — замовлення приймають і передають у генерацію лише коли надходить відповідь. За вимірами більшість запитів відповідають за 1-3 секунди, близько 10% тривають понад 30 секунд, а найдовший — близько 230 секунд. Установіть тайм-аут клієнта 300 секунд або більше; відсутність відповіді не означає, що нічого не згенеровано, і не повторюйте запит одразу після тайм-ауту (це дублює замовлення й списує кошти вдруге). Якщо з'єднання обірвалося, перевірте пізніше через
GET /api/music/songs. Див. «Час очікування та налаштування тайм-ауту» в Огляді нового API.
Автентифікація
| Параметр | Тип | Обов'язково | Примітки |
|---|---|---|---|
| Authorization | string | так | Bearer YOUR_API_KEY |
| Content-Type | string | так | application/json |
Параметри запиту
| Параметр | Тип | Обов'язково | Типово | Примітки |
|---|---|---|---|---|
| song_id | string | так | - | ID вихідної пісні, яку потрібно розділити |
| stem_mode | string | так | - | Режим розділення: two або twelve |
| source_audio_url | string | ні | - | URL вихідного аудіо |
| source_file_name | string | ні | - | Ім'я файлу вихідного аудіо |
| source_title | string | ні | - | Назва вихідної пісні |
Про stem_mode
| Значення | Кількість записів | Примітки |
|---|---|---|
two |
4 | Розділення на дві доріжки: вокал + супровід. Одне надсилання дає 2 версії × 2 доріжки |
twelve |
24 | Багатодорожечне розділення: 2 версії × 12 доріжок; назви доріжок у таблиці нижче |
Про розділення
Розділення — це незалежна фіксована можливість: модель генерації пісень вказувати чи обирати не потрібно. Клієнт лише надсилає вихідну пісню та stem_mode; сервер обробляє відповідно до режиму.
Звідки беруться числа: одне надсилання створює 2 версії (два результати з одного матеріалу), тож кількість = 2 × кількість доріжок цього режиму: 4 для two і 24 для twelve.
Завжди орієнтуйтеся на фактичну довжину масиву clips у відповіді; не пишіть цикл за фіксованою кількістю (окремі доріжки можуть не вдатися, а успішні повертаються як звичайно).
Які доріжки повертає кожен режим
12 доріжок режиму twelve (назви задає платформа; порядок може змінюватися):
| # | Назва доріжки | Примітки |
|---|---|---|
| 1 | (Vocals) |
Основний вокал |
| 2 | (Backing Vocals) |
Гармонії / бек-вокал |
| 3 | (Drums) |
Барабани |
| 4 | (Bass) |
Бас |
| 5 | (Guitar) |
Гітара |
| 6 | (Keyboard) |
Клавіші / піаніно |
| 7 | (Percussion) |
Перкусія |
| 8 | (Strings) |
Струнні |
| 9 | (Synth) |
Синтезатор |
| 10 | (FX) |
Ефекти / атмосфера |
| 11 | (Brass) |
Мідні духові |
| 12 | (Woodwinds) |
Дерев'яні духові |
Режим two повертає дві доріжки, (Vocals) та (Instrumental), кожну у 2 версіях.
Назви доріжок у two і twelve — фіксовані імена (без назви вихідної пісні), тож не сподівайтеся визначити за назвою, з якої пісні доріжка.
Назви доріжок не можна використовувати як унікальний ключ. У двох версіях трапляються доріжки з однаковою назвою (наприклад дві
(Vocals), дві(Strings)), і одне розділення повертає багато доріжок. Завжди використовуйтеsong_idяк ідентифікатор, аsong_title— лише для показу; не використовуйте й індекси масиву (порядок може змінюватися).
Приклади запиту
Розділення вокалу / супроводу (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"
}'
Багатодорожечне розділення (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"
}'
Відповідь
У разі успіху зазвичай повертається масив результатів розділення. Кожен результат — окремий кліп пісні, який потрібно далі опитувати, доки status не стане завершеним.
{
"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"
}
]
}
}
Вище показано лише 2 із 4 записів режиму
two; насправді повертається 4 (2 версії × {(Vocals),(Instrumental)}); режимtwelveповертає 24. Реальна кількість — довжина масивуclips.
Зазвичай клієнту достатньо зберегти clips[].song_id; подальші запити й завантаження обертаються навколо цих ID.
Примітки
- Результати розділення не з'являються в історії
GET /api/music/songs(цей список повертає лише звичайно згенеровані пісні). Після успішного надсилання негайно збережітьclips[].song_id, інакше потім їх не знайти. - Кожна доріжка — самостійний твір: у кожної свій
song_id, її треба окремо опитувати до завершення й окремо завантажувати. - Оплата не залежить від кількості записів: вона за виклик (
two0,6 ¥ за виклик,twelve3,0 ¥ за виклик), і 4 чи 24 записи коштують однаково. - Завантаження: використайте
song_idцієї доріжки зPOST /api/music/download-url/download-file(безкоштовно) або одразуaudio_urlз результату запиту; про MIDI див. API отримання MIDI. - Не надсилайте двічі: розділення — синхронна кінцева точка, тож після тайм-ауту спершу перевірте запитом пісень, а не повторюйте одразу (це дублює замовлення й списує кошти вдруге).
- Непотрібні доріжки приховуйте через API видалення стемів.
Запит результатів розділення
Після успішного надсилання запитайте результати з clips[].song_id через 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"
}'
Приклад завершеного запиту:
[
{
"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"
}
]
Завантаження файлів доріжок
Коли результат розділення завершено, окремий файл доріжки можна завантажити кінцевою точкою завантаження.
Кінцева точка: 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 підтримує:
| kind | Примітки |
|---|---|
audio / song / music |
Завантажити аудіо MP3 |
cover / image |
Завантажити обкладинку |
wav |
Завантажити аудіо WAV |
video / mp4 |
Завантажити відео |
Щоб завантажити пов'язані ресурси одного результату розділення пакетом, викличте:
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
Опис статусів
| Статус | Примітки |
|---|---|
pending |
Надіслано, очікує обробки |
queued |
У черзі |
generating / processing |
Обробляється |
complete / completed |
Завершено |
error / failed |
Не вдалося; дивіться error_message |
Часті помилки
| HTTP-статус | Примітки | Рекомендована дія |
|---|---|---|
| 400 | Неправильні параметри, наприклад відсутній song_id або stem_mode |
Перевірте параметри запиту |
| 401 | API-ключ недійсний або не переданий | Перевірте Authorization |
| 402 | Недостатньо коштів | Поповніть баланс і повторіть |
| 409 | Вихідну пісню зараз не можна обробити | Перевірте song_id або повторіть пізніше |
| 500/503 | Тимчасовий збій сервісу чи платформи | Повторіть пізніше або зверніться до підтримки |
Примітки щодо сумісності
У старій документації використовувалися приклади з одним об'єктом, як-от success/task_id/vocals_url/instrumental_url. Поточне розділення працює з масивом пісень clips[]: кожен результат має власний song_id, і подальші запити та завантаження обертаються навколо цих song_id.
Пов'язані сторінки
- Якщо потрібно лише відокремити вокал від супроводу без вибору режиму, скористайтеся API видалення вокалу; це швидка дводорожечна форма цієї кінцевої точки, і наразі вона безкоштовна.
- Непотрібні доріжки розділення приховуйте через API видалення стемів (логічне видалення, без списань).
- MIDI доріжки — API отримання MIDI; аудіо, обкладинка та інші медіа — API завантаження та попереднього прослуховування медіа пісні.
Отримати API-ключ
Створіть API-ключ у консолі після реєстрації. Одна генерація коштує 0,6 ¥ і повертає 2 треки, завантаження необмежені, номер телефону не потрібен.
Отримати API-ключ Повернутися до огляду