Guía de inicio rápido
Esta guía lleva desde la creación de la clave de API hasta la primera canción generada, la consulta del progreso y la descarga del audio en unos cinco minutos. Los ejemplos se pueden copiar y ejecutar tal cual.
El modelo predeterminado actual es
suno-v6. Los modelos de generación desuno-v2asuno-v5-5están retirados: pueden aparecer en tareas antiguas, pero no aceptan solicitudes nuevas.
Paso 1: obtener una clave de API
- Abra https://www.suno-api.io.
- Pulse Obtener clave de API y regístrese. Basta un correo electrónico, sin teléfono.
- En la consola, abra la gestión de tokens y cree una clave.
- Cópiela de inmediato: solo se muestra una vez. Recargue el saldo con un código de canje antes de la primera llamada de pago.
Paso 2: configurar la solicitud
Todas las llamadas comparten la misma URL base y las mismas cabeceras:
POST https://www.suno-api.io
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Paso 3: enviar la primera solicitud
Ejemplo 1 — generar desde una frase
Describa la canción y la API escribe la letra, la melodía y el arreglo:
curl -X POST https://www.suno-api.io/api/music/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "una canción folk animada sobre el primer día de primavera",
"model": "suno-v6"
}'
Respuesta:
[
{
"song_id": "abc123",
"status": "pending",
"song_title": "Historia de primavera",
"description": "una canción folk animada sobre el primer día de primavera",
"created_at": "2026-04-22T10:30:00Z"
},
{
"song_id": "def456",
"status": "pending",
"song_title": "Pasos de primavera",
"description": "una canción folk animada sobre el primer día de primavera",
"created_at": "2026-04-22T10:30:00Z"
}
]
Cada ejecución devuelve dos tomas distintas para que elija. Una generación cuesta 0,6 ¥.
Ejemplo 2 — consultar el progreso
Pase los song_id devueltos al endpoint de consulta:
curl -X POST https://www.suno-api.io/api/music/query \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"song_ids": ["abc123", "def456"],
"model": "suno-v6"
}'
Mientras se procesa:
[
{
"song_id": "abc123",
"status": "processing",
"song_title": "Historia de primavera",
"progress": "60%"
}
]
Al terminar:
[
{
"song_id": "abc123",
"status": "completed",
"song_title": "Historia de primavera",
"audio_url": "https://media.code-go.com/assets/abc123-mp3.mp3",
"video_url": "https://media.code-go.com/assets/abc123-mp4.mp4",
"cover_url": "https://media.code-go.com/assets/abc123-cover.jpg",
"duration": 168
}
]
El status pasa por pending, submitted, processing y llega a completed. Las direcciones
pueden estar vacías mientras la tarea se ejecuta: guíese por el status, no por si
audio_url tiene valor.
Paso 4: descargar el archivo
Cuando el status sea completed, basta con pedir el audio_url. Las descargas en MP3 y WAV
son ilimitadas y no tienen coste adicional. Si necesita audio sin pérdidas para seguir
editando, use el endpoint de WAV.
Casos de uso habituales
Música de fondo para vídeo
{
"description": "música lo-fi tranquila para un vídeo de producto, sin voces, dinámica estable",
"instrumental": true,
"model": "suno-v6"
}
Con instrumental en true la salida no incluye voces.
Letra y estilo propios
{
"lyrics": "[Verse 1]\nLas luces de la ciudad se apagan\n\n[Chorus]\nSeguimos caminando",
"style": "acoustic pop, voz femenina cálida, 92 BPM",
"model": "suno-v6"
}
Consultar hasta terminar
import time
import requests
API_KEY = "sk-your-key-here"
BASE = "https://www.suno-api.io"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
created = requests.post(
f"{BASE}/api/music/create",
headers=HEADERS,
json={"description": "una canción folk sobre la primavera", "model": "suno-v6"},
).json()
song_ids = [track["song_id"] for track in created]
for _ in range(60):
time.sleep(10)
tracks = requests.post(
f"{BASE}/api/music/query",
headers=HEADERS,
json={"song_ids": song_ids, "model": "suno-v6"},
).json()
if all(track.get("status") == "completed" for track in tracks):
for track in tracks:
print(track["song_title"], track["audio_url"])
break
Gestión de errores
Códigos principales
| Código | Significado | Qué hacer |
|---|---|---|
| 200 | Correcto | Lea el cuerpo de la respuesta |
| 400 | Solicitud inválida (parámetro ausente o mal formado) | Compare con la referencia |
| 401 | Clave ausente o inválida | Revise la cabecera Authorization |
| 403 | Sin permiso, normalmente saldo insuficiente | Recargue la cuenta |
| 429 | Límite de peticiones | Reintente con retroceso exponencial |
| 500 | Error del servidor | Reintente; si persiste, contacte con soporte |
Formato del error
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
Buenas prácticas
- Mantenga la clave en el servidor, nunca en el navegador ni en apps distribuidas.
- Consulte cada 10–15 segundos en lugar de en un bucle ajustado.
- Guarde los
song_id: son el único identificador para recuperar el audio más adelante. - Reintente en
429y500; corrija la causa antes de repetir400y401. - Los fallos se reembolsan automáticamente: una tarea fallida no cuesta nada.
Siguientes pasos
- Autenticación — claves, errores y límites
- Modelos compatibles — nombres de modelo, pistas y modelos retirados
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