API получения MIDI
Описание эндпоинта
Эндпоинт MIDI преобразует дорожки, для которых уже сделано разделение на стемы, в стандартный MIDI-файл — для аранжировки, дальнейшего творчества или импорта в DAW.
Suno не предоставляет адрес для скачивания MIDI-файлов, а отдаёт только данные нот каждой дорожки (высота, время начала и конца, сила нажатия). Этот эндпоинт преобразует эти данные в стандартный MIDI-файл (SMF format 1) и возвращает его напрямую, поэтому вы всегда получаете настоящий .mid, который открывается в DAW.
Эндпоинт: POST /api/music/download-file
Эта страница — пример именно для MIDI. Полное описание семейства загрузок (адреса медиа, отдельные файлы, упаковка, прослушивание во время генерации) — в API скачивания и прослушивания медиа песен.
Оплата: Бесплатно. Этот эндпоинт читает данные нот существующих стемов и не списывает квоту.
Параметры запроса
Headers
| Параметр | Тип | Обязательно | Примечания |
|---|---|---|---|
| Authorization | string | да | Bearer YOUR_API_KEY |
| Content-Type | string | да | application/json |
Параметры тела запроса
| Параметр | Тип | Обязательно | По умолчанию | Примечания |
|---|---|---|---|---|
| song_id | string | да | - | Идентификатор одной дорожки после разделения (каждый clip id, который возвращает /api/music/separate) |
| kind | string | да | - | Фиксировано: midi |
Пример запроса
curl -X POST https://www.suno-api.io/api/music/download-file \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_id": "stem_clip_id",
"kind": "midi"
}' \
--output track.mid
Ответ
Тело ответа — бинарное содержимое MIDI-файла, а не JSON.
| Заголовок ответа | Значение |
|---|---|
| Content-Type | audio/midi |
| Content-Disposition | attachment; filename="<название песни>.mid" |
Получение адреса для скачивания
Если сначала нужен адрес, а скачивание потом (например, для упаковки нескольких файлов), вызовите сначала:
curl -X POST https://www.suno-api.io/api/music/download-url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"song_id":"stem_clip_id","kind":"midi"}'
{
"success": true,
"message": "",
"data": {
"song_id": "stem_clip_id",
"kind": "midi",
"url": "https://www.suno-api.io/api/music/download?song_id=stem_clip_id&kind=midi"
}
}
Этот адрес также требует заголовок Authorization; без ключа API возвращается 401.
О MIDI-файле
| Параметр | Значение | Примечания |
|---|---|---|
| Формат файла | SMF format 1 | 1 дорожка Tempo + 1 дорожка на каждый инструмент |
| Точность времени | 480 PPQ | 480 тиков на долю |
| Темп | 120 BPM | Suno даёт только секунды, без BPM, поэтому для записи таймлайна используется фиксированный темп |
| Таймлайн | 1 секунда = 960 тиков |
Соответствует секундам, которые возвращает платформа, один к одному; при необходимости измените темп в DAW |
| Сила нажатия | 0–127 | Платформа отдаёт значения 0–1 с плавающей точкой; эндпоинт уже пересчитал их на ×127 |
| Барабаны | MIDI-канал 10 | Дорожки, помеченные платформой как барабаны, автоматически попадают на канал перкуссии |
Примечания
- Работает только для дорожек, уже разделённых на стемы:
song_idдолжен быть идентификатором дорожки из/api/music/separate, а не идентификатором исходной песни. - Стем без нот — нормальный результат: у некоторых дорожек (например, FX) нет расшифровываемых нот; в этом случае вместо ошибки возвращается корректный MIDI-файл без нот.
- MIDI содержит только информацию о нотах: громкость, панорама и эффекты в MIDI не входят; тембр нужно задавать в DAW самостоятельно.
- Каждую дорожку запрашивайте отдельно: один запрос возвращает
.midодной дорожки; для нескольких дорожек вызывайте каждую по отдельности или используйте пакетное скачивание в Create UI.
Получить API-ключ
Создайте API-ключ в консоли после регистрации. Одна генерация стоит 0,6 ¥ и возвращает 2 трека, загрузки не ограничены, номер телефона не нужен.
Получить API-ключ Вернуться к обзору