Справочник API

Музыка

Модели этого эндпоинта (1)

Попробовать в Workbench
POST/v1/music/generations
GET/v1/music/tasks/{task_id}
GET/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)).

Начните с простого

Для первой интеграции большинству продуктов достаточно prompt. title, tags, version и поля продолжения — расширенные настройки, их стоит добавлять только при явной необходимости.

Тот же асинхронный контракт, что и у других медиазадач

Музыка работает по той же схеме «отправка → опрос или вебхук → /content», что и задачи с изображениями и видео, поэтому обычно один обработчик задач на бэкенде справляется со всеми тремя.

#Связанные ошибки

  • 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

#Ответ

response.json
// 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 запроса или текст ошибки, и мы разберёмся.