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-ключ Вернуться к обзору