API de descarga Free2

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

Descripción del endpoint

Free2 es un canal de descarga de pago independiente: resuelve archivos MP3/WAV/letra/metadatos a partir de un ID de canción (o de un enlace de canción de suno.com) y devuelve direcciones de descarga alojadas por la plataforma. Solo acepta una clave de API — no acepta una sesión de navegador — y la respuesta nunca contiene el origen de reproducción cifrado de Suno.

Endpoint: POST /api/music/free2

Facturación: Se cobra por canción resuelta con éxito, actualmente 0,2 CNY por canción por defecto. Elegir varios tipos de archivo en una misma petición no cuesta más; las canciones que no se resuelven no se cobran. Como máximo 10 canciones por petición (tras deduplicar); el importe realmente cobrado sigue la configuración de precios del back-office.

Modelo recomendado: suno-v6. Se pueden usar suno-v6, suno-v6-wild y suno-v6-mini.

Autenticación

Parámetro Tipo Obligatorio Notas
Authorization string sí Bearer YOUR_API_KEY
Content-Type string sí application/json

Parámetros de la petición

Parámetro Tipo Obligatorio Por defecto Notas
song_id string no - Un ID de canción; también vale un enlace de canción de suno.com (incluido el enlace corto /s/)
song_ids string[] no - Forma para varias canciones (recomendada); como máximo 10 por petición
songs string[] no - Alias de song_ids
files string[] sí - Los tipos de archivo que necesitas: mp3, wav, lyrics, metadata; m4a no está soportado

Indica al menos uno de song_id y song_ids; indica al menos un elemento en files.

Ejemplo de petición

curl -X POST https://www.suno-api.io/api/music/free2 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_ids": ["song_id_1", "song_id_2"],
    "files": ["mp3", "wav", "lyrics"]
  }'

Respuesta

{
  "code": 200,
  "message": "success",
  "data": {
    "songs": [
      {
        "song_id": "song_id_1",
        "files": [
          {"type": "mp3", "url": "https://media.suno-api.io/assets/song_id_1-free2-v1-mp3.mp3"}
        ]
      },
      {
        "song_id": "song_id_2",
        "files": [],
        "error": {"code": "song_not_found", "message": "song not found or not owned by the current user"}
      }
    ],
    "requested_songs": 2,
    "succeeded_songs": 1,
    "price": 0.2
  }
}
Campo Tipo Notas
songs array Resultado por canción: song_id, files[] y error en caso de fallo
requested_songs number Número de canciones tras normalizar y deduplicar
succeeded_songs number Número de éxitos; la facturación se basa en este número
price number Importe realmente cobrado en esta llamada (yuanes)

Cuando solo se pide una canción, la respuesta devuelve además song_id y files en el nivel superior, por compatibilidad con la forma antigua de una sola canción.

Reutilizar direcciones en caché (sin cargo)

Para una canción que ya has descargado, volver a descargarla no necesita una nueva resolución y no se cobra otra vez: usa POST /api/music/free2/cached para obtener las direcciones actuales de los archivos que esta cuenta descargó antes.

Endpoint: POST /api/music/free2/cached

Facturación: Gratis. Es una caché de solo lectura: no resuelve, no transcodifica y no cobra; solo devuelve direcciones ya preparadas y no reclamadas.

⚠️ Validez de la dirección de descarga: 7 días, guárdala a tiempo. songs[].files[].url lo sirve el almacenamiento de objetos de la plataforma y caduca por defecto a los 7 días (los archivos se reclaman y la dirección antigua devuelve 404); guárdalos en tu propio almacenamiento dentro de esos 7 días. Cuando una dirección caduque, vuelve a llamar a POST /api/music/free2 para prepararla de nuevo y obtener una dirección válida (esa re-preparación se cobra según las reglas normales; /api/music/free2/cached solo devuelve direcciones de caché que siguen siendo válidas).

Parámetros de la petición: idénticos a POST /api/music/free2 (cualquiera de song_id / song_ids / songs, y al menos un elemento en files).

curl -X POST https://www.suno-api.io/api/music/free2/cached \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "song_ids": ["98ca3f1d-…", "a185b3d9-…"], "files": ["mp3"] }'
{
  "success": true,
  "data": {
    "items": [
      { "song_id": "98ca3f1d-…", "type": "mp3", "url": "https://…/assets/98ca3f1d-…-free2-v1-mp3.mp3" }
    ],
    "songs": [
      { "song_id": "98ca3f1d-…", "files": [ { "type": "mp3", "url": "https://…" } ], "missing_files": [] },
      { "song_id": "a185b3d9-…", "files": [], "missing_files": ["mp3"] }
    ],
    "missing": ["a185b3d9-…"]
  }
}
Campo Tipo Notas
items array Lista de direcciones listas para descargar (song_id + type + url)
songs array Resultados por canción; missing_files son los formatos que no acertaron en la caché esta vez
missing string[] Esta canción no tiene ninguna caché utilizable (hay que volver a resolverla con POST /api/music/free2, y ese paso se cobra por canción)

Solo se devuelven direcciones para canciones que has descargado antes; las canciones sin registro de descarga, o cuyos activos ya se han reclamado, aparecen solo en missing y no devuelven ninguna dirección.

Notas

SiguienteAPI de consulta e historial de canciones

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