API de obtención de MIDI
Descripción del endpoint
El endpoint MIDI convierte en un archivo MIDI estándar las pistas que ya tienen stems, para arreglos, trabajo creativo posterior o importación en un DAW.
Suno no ofrece una dirección de descarga de archivos MIDI; solo entrega los datos de notas de cada pista (altura, tiempos de inicio y fin, intensidad). Este endpoint convierte esos datos de notas en un archivo MIDI estándar (SMF format 1) y lo devuelve directamente, así que lo que recibes es siempre un .mid real que un DAW puede abrir.
Endpoint: POST /api/music/download-file
Esta página es el ejemplo específico de MIDI. La descripción completa de la familia de descargas (direcciones de medios, archivo único, empaquetado, previsualización mientras se genera) está en la API de descarga y previsualización de medios de canciones.
Facturación: Gratis. Este endpoint lee los datos de notas de stems existentes y no descuenta cuota.
Parámetros de la petición
Headers
| Parámetro | Tipo | Obligatorio | Notas |
|---|---|---|---|
| Authorization | string | sí | Bearer YOUR_API_KEY |
| Content-Type | string | sí | application/json |
Parámetros del cuerpo
| Parámetro | Tipo | Obligatorio | Por defecto | Notas |
|---|---|---|---|---|
| song_id | string | sí | - | El ID de una sola pista tras la separación (cada clip id que devuelve /api/music/separate) |
| kind | string | sí | - | Fijo en midi |
Ejemplo de petición
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
Respuesta
El cuerpo de la respuesta es el contenido binario del archivo MIDI, no JSON.
| Cabecera de respuesta | Valor |
|---|---|
| Content-Type | audio/midi |
| Content-Disposition | attachment; filename="<título de la canción>.mid" |
Obtener una dirección de descarga
Si necesitas primero la dirección y luego descargar (por ejemplo para empaquetar varios archivos), llama antes a:
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"
}
}
Esa dirección también requiere la cabecera Authorization para poder accederse; sin clave de API devuelve 401.
Sobre el archivo MIDI
| Elemento | Valor | Notas |
|---|---|---|
| Formato de archivo | SMF format 1 | 1 pista de Tempo + 1 pista por instrumento |
| Resolución temporal | 480 PPQ | 480 ticks por pulso |
| Tempo | 120 BPM | Suno solo da segundos, no BPM, así que se usa un tempo fijo para escribir la línea de tiempo |
| Línea de tiempo | 1 segundo = 960 ticks |
Se corresponde uno a uno con los segundos que devuelve la plataforma; cambia el tempo en el DAW si lo necesitas |
| Intensidad | 0–127 | La plataforma entrega flotantes de 0–1; el endpoint ya los ha convertido con ×127 |
| Batería | Canal MIDI 10 | Las pistas que la plataforma marca como batería se colocan automáticamente en el canal de percusión |
Notas
- Solo válido para pistas que ya tienen stems:
song_iddebe ser un ID de pista devuelto por/api/music/separate, no el ID de la canción original. - Un stem sin notas es un resultado normal: algunas pistas (por ejemplo FX) no tienen notas transcribibles; en ese caso se devuelve un archivo MIDI válido sin notas en lugar de un error.
- MIDI solo contiene información de notas: volumen, paneo y efectos no forman parte del MIDI; configura el timbre tú mismo en el DAW.
- Solicita cada pista por separado: una petición devuelve el
.midde una pista; para varias pistas, llama a cada una o usa la descarga empaquetada por lotes de Create UI.
Obtener una clave de API
Crea una clave de API en la consola después de registrarte. Cada generación cuesta 0,6 ¥ y devuelve 2 pistas, las descargas son ilimitadas y no hace falta número de teléfono.
Obtener clave de API Volver al resumen