Справочник API
Музыка
Модели этого эндпоинта (1)
/v1/music/generations/v1/music/tasks/{task_id}/v1/music/tasks/{task_id}/contentАсинхронная генерация музыки — песен и инструментальных треков. Отправка сразу возвращает task_id; опрашивайте задачу или примите вебхук, затем заберите готовое аудио из /content.
#Параметры запроса
modelstringобязательноID музыкальной модели со страницы моделей, например suno.
promptstringобязательноОпишите песню, настроение, инструменты или тему текста.
titlestringнеобязательноНеобязательное название трека для семейств моделей, которые его поддерживают.
tagsstring | arrayнеобязательноНеобязательные подсказки по жанру или стилю, например cinematic, pop или ambient.
versionstringнеобязательноВыбор версии в семействе моделей, если провайдер предлагает несколько поколений.
mvstringнеобязательноВыбор музыкального режима, специфичный для провайдера; держите его на сервере, если пользователям не нужно явное управление.
instrumentalbooleanнеобязательноСгенерировать инструментальный трек без вокала, если модель это поддерживает.
make_instrumentalbooleanнеобязательноАльтернативный флаг провайдера для инструментального трека; некоторые провайдеры используют его вместо instrumental.
continue_clip_idstringнеобязательноПродолжить или удлинить предыдущий фрагмент вместо создания нового трека.
continue_atnumberнеобязательноТочка продолжения в секундах для сценариев продолжения.
webhook_urlstringнеобязательноHTTPS-URL, который вызывается, когда задача переходит в конечное состояние.
webhook_secretstringнеобязательноЕсли задан, каждая доставка содержит X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret)).
Начните с простого
Тот же асинхронный контракт, что и у других медиазадач
#Связанные ошибки
- 404 not_foundНеизвестный путь, неизвестное имя модели или просроченный / чужой task_id.
- 422 unprocessable_entityПровайдер отклонил значения параметров, переданные шлюзом (например, неподдерживаемый размер или длительность).
- 401Bearer-токен недействителен или отсутствует. На этом пути error.code нет — ориентируйтесь на статус.
- 402 insufficient_user_quotaБаланса кошелька не хватает на предварительно резервируемую сумму.
- 429Ограничение частоты для ключа. Тело пустое; дождитесь Retry-After. Если же в ответе 429 есть insufficient_user_quota, это дневной лимит расходов.
- 503 model_not_foundНеизвестная модель, или сейчас её не обслуживает ни один исправный канал.
#Пример запроса
# submit
curl https://www.aisplice.store/v1/music/generations \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno",
"prompt": "a warm cinematic piano theme",
"instrumental": true
}'
# poll every 5s
curl https://www.aisplice.store/v1/music/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# fetch the finished track
curl -L https://www.aisplice.store/v1/music/tasks/$TASK_ID/content \
-H "Authorization: Bearer sk-YOUR_KEY" \
-o song.mp3#Ответ
// POST — submit accepted
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/music/tasks/{task_id}
{
"task_id": "task_xxx",
"status": "in_progress",
"progress": "42%"
}
// GET /v1/music/tasks/{task_id}/content
{
"task_id": "task_xxx",
"status": "completed",
"metadata": {
"audio_url": "https://…",
"lyric": "…"
}
}Проблема не решена?
Пришлите нам ID запроса или текст ошибки, и мы разберёмся.