Генерация музыки через API vibecode.moe

Песня собирается дольше, чем длится один запрос, поэтому ручка асинхронная — та же, что у видео: создаёшь задачу, опрашиваешь её, скачиваешь готовый mp3. Тот же vk- ключ. Одна песня — одна цена, со словами или без: сумма списывается при создании задачи и возвращается целиком, если генерация не удалась.

Создать задачу

curl https://vibecode.moe/v1/media/tasks \
  -H "Authorization: Bearer vk-YOUR-KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: my-song-001" \
  -d '{"model":"suno-v4.5","input":{"prompt":"indie folk, warm acoustic guitar, soft vocals","lyrics":"[Verse]\nPaper boats on a quiet lake\n[Chorus]\nCarry me home"},"parameters":{"title":"Paper Boats"}}'

Ответ 202 содержит id задачи и поле price — ровно столько спишется. Повтор запроса с тем же Idempotency-Key вернёт ту же задачу и не спишет деньги второй раз. Если баланса не хватает на цену задачи, ответ 402 и ничего не создаётся.

Опросить и скачать

curl https://vibecode.moe/v1/media/tasks/task_YOUR_TASK_ID \
  -H "Authorization: Bearer vk-YOUR-KEY"

Опрашивай раз в 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.