Песня собирается дольше, чем длится один запрос, поэтому ручка асинхронная — та же, что у видео: создаёшь задачу, опрашиваешь её, скачиваешь готовый mp3. Тот же vk- ключ. Одна песня — одна цена, со словами или без: сумма списывается при создании задачи и возвращается целиком, если генерация не удалась.
Ответ 202 содержит id задачи и поле price — ровно столько спишется. Повтор запроса с тем же Idempotency-Key вернёт ту же задачу и не спишет деньги второй раз. Если баланса не хватает на цену задачи, ответ 402 и ничего не создаётся.
Опрашивай раз в 3–5 секунд, пока status не станет succeeded или failed. Песня готовится от нескольких десятков секунд до нескольких минут. При успехе assets[0].url — ссылка на mp3: она открывается без ключа, поддерживает Range и живёт 24 часа с создания задачи, так что скачай файл сразу. При failed деньги уже вернулись (refunded: true), причина — в error.code. Опрашивать можно и при нулевом балансе.
Поля запроса
Поле
Что это
input.prompt
стиль и настроение песни, до 12 000 символов
input.lyrics
текст песни, до 10 000 символов
parameters.title
название, до 100 символов
parameters.style, parameters.tags
стиль и теги, до 300 символов каждое
parameters.instrumental
true — без вокала
Нужно хотя бы одно из двух — input.prompt или input.lyrics, остальные поля необязательные. Незнакомые поля отклоняются, а не игнорируются.
Модели
suno-v4.5
suno-v6
Цена за песню — в GET https://vibecode.moe/v1/media/models.