API збирання повної пісні (Get Full Song)

Оновлено 2026-09-18 · команда Suno-API

Опис кінцевої точки

Збирання повної пісні поєднує «вихідну пісню + щойно згенерований фрагмент» в одну повну пісню: після Extend додається наступна частина, а після Replace Section новий фрагмент вшивається назад у вихідну. Офіційний веб-інтерфейс називає цю можливість Get Full Song.

Кінцева точка: POST /api/music/concat

Оплата: платно, фіксовано 0,05 юаня за виклик. Збирання не пов'язане з ціною генерації та не бере участі в Max Mode чи множниках голосового профілю; фактично списана сума визначається конфігурацією цін у бек-офісі.

Час очікування та тайм-аути (важливо): це синхронна кінцева точка — замовлення приймають і передають на збирання лише коли надходить відповідь. Установіть тайм-аут клієнта 300 секунд або більше; відсутність відповіді не означає, що нічого не зібрано, і не повторюйте запит одразу після тайм-ауту (це дублює замовлення й списує кошти вдруге). Якщо з'єднання обірвалося, перевірте пізніше через GET /api/music/songs.

Автентифікація

Параметр Тип Обов'язково Примітки
Authorization string так Bearer YOUR_API_KEY
Content-Type string так application/json

Параметри запиту

Параметр Тип Обов'язково Типово Примітки
song_id string так - song_id фрагмента для збирання (результат Extend або Replace Section); він має бути завершений
is_infill boolean ні false false = збирання подовження; true = збирання заміни (infill)
source_audio_url string ні - Адреса вихідного аудіо, якщо фрагмент надійшов із зовнішнього акаунта
source_file_name string ні - Ім'я вихідного файлу, якщо фрагмент надійшов із зовнішнього акаунта
source_title string ні - Вихідна назва, якщо фрагмент надійшов із зовнішнього акаунта

audio_id, source_clip_id і sourceClipId — рівнозначні написання song_id; використовуйте будь-яке з них.

Приклад запиту

curl -X POST https://www.suno-api.io/api/music/concat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "extended_or_replaced_clip_id",
    "is_infill": false
  }'

Щоб зібрати після заміни частини, встановіть is_infill = true:

{ "song_id": "infilled_clip_id", "is_infill": true }

Відповідь

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "concat_clip_id",
        "song_title": "Назва вихідної пісні",
        "status": "queued"
      }
    ]
  }
}

Збирання повертає лише 1 результат (2 пісні одразу не створюються). Збережіть clips[].song_id і опитуйте API запиту пісень та історії до стану complete, перш ніж забирати аудіо.

Звідки береться тривалість результату

Збирання не просто склеює два файли встик: вихідна пісня обрізається за часовими точками, записаними в історії фрагмента:

Режим Склад результату
is_infill: false вихідна пісня [0 .. continue_at] + повна довжина фрагмента подовження
is_infill: true вихідна пісня [0 .. початок] + замінений новий фрагмент + вихідна пісня [кінець .. кінець доріжки]

Тож вихідне аудіо після точки продовження відкидається, і жодна частина не дублюється повністю.

Примітки

ДаліAPI ремастерингу (Remaster)

Отримати API-ключ

Створіть API-ключ у консолі після реєстрації. Одна генерація коштує 0,6 ¥ і повертає 2 треки, завантаження необмежені, номер телефону не потрібен.

Отримати API-ключ Повернутися до огляду