API загрузки исходного аудио
Описание эндпоинта
Загрузка исходного аудио превращает локальный или удалённый аудиофайл в исходный клип, который могут использовать последующие возможности: кавер, продление, замена фрагмента, разделение на дорожки и другие.
Эндпоинт: POST /api/music/upload-source
Оплата: Бесплатно. Этот эндпоинт только загружает исходное аудио и не запускает задачу генерации.
Рекомендуемое использование: это шаг 1 «двухшагового кавера». Сначала загрузите аудио этим эндпоинтом (бесплатно, при неудаче можно повторять в любое время) и сохраните полученный
clip_id; убедившись, что загрузка прошла успешно (statusв завершённом состоянии), вызовите API кавера по исходному клипу для запуска кавера — тело этого запроса всего несколько сотен байт, поэтому оно не будет обрезано из-за слишком большого аудио. По сравнению с одноразовым API «загрузить и сделать кавер» такое разделение надёжнее, когда аудио большое, сеть нестабильна или один и тот же материал нужно переиспользовать несколько раз (продление / замена / разделение).
Советы по загрузке больших файлов
| Ситуация | Рекомендуемый подход |
|---|---|
| Аудио уже опубликовано (есть прямая ссылка https) | Используйте file_url: тело запроса всего несколько сотен байт, самый надёжный вариант |
| Локальный файл (Node / Python / десктоп) | Используйте multipart-загрузку (-F "file=@source.mp3") и не задавайте Content-Type вручную |
| Доступен только JSON + base64 | Учтите, что Content-Length должен быть числом байт (Buffer.byteLength), иначе тело запроса может быть обрезано |
После завершения загрузки обязательно убедитесь, что status в ответе уже в завершённом состоянии, и сохраните clip_id, прежде чем переходить к шагу 2;
неудачная загрузка не тарифицируется и не создаёт задачу генерации — просто повторите попытку.
Параметры запроса
Headers
Для JSON-запросов:
| Параметр | Тип | Обязательно | Примечания |
|---|---|---|---|
| Authorization | string | да | Bearer YOUR_API_KEY |
| Content-Type | string | да | application/json |
Не задавайте Content-Type вручную в multipart-запросах; клиент создаёт его автоматически.
Параметры тела запроса
| Параметр | Тип | Обязательно | По умолчанию | Примечания |
|---|---|---|---|---|
| model | string | нет | suno-v6 | Клиентское имя модели: suno-v6, suno-v6-wild или suno-v6-mini |
| file_url | string | нет | - | URL удалённого аудио |
| file_base64 | string | нет | - | Аудио в Base64 |
| file_name | string | нет | - | Имя файла |
| upload_type | string | нет | file_upload | Тип загрузки |
Пример JSON-запроса
curl -X POST https://www.suno-api.io/api/music/upload-source \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "suno-v6",
"file_url": "https://example.com/source.mp3",
"file_name": "source.mp3",
"upload_type": "file_upload"
}'
Пример multipart-запроса
curl -X POST https://www.suno-api.io/api/music/upload-source \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@source.mp3" \
-F "file_name=source.mp3" \
-F "upload_type=file_upload" \
-F "model=suno-v6"
Ответ
{
"clip_id": "uploaded_clip_id",
"status": "complete",
"title": "source.mp3",
"image_url": "https://...",
"audio_url": "https://...",
"display_tags": "pop, vocal",
"inferred_description": "uploaded source audio",
"clip_metadata": {}
}
Получить API-ключ
Создайте API-ключ в консоли после регистрации. Одна генерация стоит 0,6 ¥ и возвращает 2 трека, загрузки не ограничены, номер телефона не нужен.
Получить API-ключ Вернуться к обзору