Перейти к основному содержанию
POST
Ссылка на исходный трек: для операций на основе существующей песни не нужно запоминать какие-либо вышестоящие id, достаточно передать task_id (наш task_id той задачи, которая создала исходный трек) + audio_index (какая по счёту песня в результате music[], начиная с 1, по умолчанию 1).
custom определяет, какие поля вступают в силу: поля, переданные не в том режиме, молча игнорируются вышестоящим сервисом (без ошибки). При custom=true действуют prompt (текст песни), title, tags, negative_tags, style_weight, weirdness_constraint, audio_weight и persona_id, а gpt_description игнорируется; при custom=false читается только gpt_description (обязателен в этом случае — если отсутствует, на этапе отправки возвращается 400). vocal_gender работает в обоих режимах. Если custom не указан, бэкенд определяет его в следующем порядке: есть prompttrue; prompt нет, но есть gpt_descriptionfalse; иначе есть tags/titletrue.

Использование

Вариант A — перепевка в заданном стиле (самый распространённый, рекомендуется) Укажите исходную песню + целевой стиль tags; о custom можно не беспокоиться (когда система видит tags, она автоматически считает это как custom=true):
Для большего контроля можно также добавить prompt (текст песни) / title. Вариант B — режим вдохновения (custom=false) Не указывайте конкретный стиль и позвольте вышестоящему сервису импровизировать, но обязательно передайте gpt_description с описанием желаемого результата:
Выберите один из двух вариантов — не передавайте только custom=false без gpt_description (это завершится ошибкой 400 на этапе отправки).

Authorizations

Authorization
string
обязательно
Все эндпоинты требуют аутентификации с использованием Bearer TokenПолучить API Key:Перейдите на страницу управления API Key, чтобы получить ваш API KeyПри использовании добавьте в заголовки запроса:

Body

model
string
по умолчанию:"suno"
Аудиомодель. Сейчас передавайте suno (если не указано, по умолчанию suno).
task_id
string
обязательно
Наш task_id той задачи, которая создала исходный трек. Если он отсутствует или источник не удаётся разрешить, на этапе отправки сразу возвращается 400.
audio_index
integer
по умолчанию:"1"
Какая по счёту песня в data.music[] результата исходной задачи (начиная с 1: 1 = первая песня; по умолчанию 1; одна генерация обычно даёт 2 песни: индексы 1 и 2).
version
string
по умолчанию:"v5.5"
Версия генерации: v3.5 / v4 / v4.5 / v4.5+ / v4.5-all / v5 / v5.5, влияет на качество звука и тарификацию; по умолчанию v5.5, если не указано, а недопустимое значение сразу возвращает 400 на этапе отправки.
custom
boolean
true=пользовательский режим (prompt используется как текст песни); false=режим вдохновения (используется gpt_description); если не указано, определяется по содержимому (см. Warning выше).
prompt
string
Текст песни. Действует при custom=true (в режиме вдохновения игнорируется).
gpt_description
string
Промпт для вдохновения. Обязателен при custom=false — если отсутствует, запрос завершается ошибкой 400 на этапе отправки (вышестоящий сервис не вызывается, средства не списываются).
title
string
Заголовок. Действует только при custom=true.
tags
string
Целевые теги стиля. Действует только при custom=true.
negative_tags
string
Теги стиля, которые нужно исключить. Действует только при custom=true.
style_weight
number
Вес стиля, 0.001.00 (значения вне диапазона сразу возвращают 400 на этапе отправки). Действует только при custom=true.
weirdness_constraint
number
Креативность, 0.001.00 (псевдоним weirdness). Действует только при custom=true.
audio_weight
number
Вес аудио, 0.001.00. Действует только при custom=true.
vocal_gender
string
Пол вокала: Male / Female. Работает в обоих режимах.
persona_id
string
Идентификатор стиля Persona. Действует только при custom=true.
Получение результата: этот эндпоинт является асинхронной задачей. После отправки вы получаете task_id; опрашивайте GET /v1/music/tasks/{task_id} с интервалом 3–5 с, пока status не станет completed или failed (генерация музыки обычно занимает 30–120 с; во время генерации status равен pending, а progress меняется: в очереди 10 → готово 50 → завершено 100). По завершении возьмите audio_url из data.result.music[]. При неудаче data.error.message содержит причину, а предварительно списанная квота автоматически возвращается.

Response

code
integer
Код статуса ответа
data
array
Массив возвращаемых данных