Guía de inicio rápido

Actualizado el 2026-09-18 · equipo de Suno-API

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 de suno-v2 a suno-v5-5 están retirados: pueden aparecer en tareas antiguas, pero no aceptan solicitudes nuevas.

Paso 1: obtener una clave de API

  1. Abra https://www.suno-api.io.
  2. Pulse Obtener clave de API y regístrese. Basta un correo electrónico, sin teléfono.
  3. En la consola, abra la gestión de tokens y cree una clave.
  4. 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

Siguientes pasos

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