API de canción completa (Get Full Song)

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

Descripción del endpoint

La unión de canción completa junta "la canción original + el fragmento recién generado" en una sola canción completa: tras Extend añade el tramo siguiente, y tras Replace Section cose el nuevo fragmento de vuelta en la original. La interfaz web oficial llama a esta capacidad Get Full Song.

Endpoint: POST /api/music/concat

Facturación: De pago, 0,05 CNY fijos por llamada. La unión está desacoplada del precio de generación y no participa en Max Mode ni en los multiplicadores de perfil de voz; el importe realmente cobrado sigue la configuración de precios del back-office.

Tiempos de espera y timeouts (importante): es un endpoint síncrono — el pedido solo se acepta y se entrega a la unión cuando llega la respuesta. Configura el timeout del cliente en 300 segundos o más; no recibir respuesta no significa que no se haya unido nada, y no reintentes justo después de un timeout (eso duplica el pedido y vuelve a cobrar). Si la conexión se cayó, confírmalo más tarde con GET /api/music/songs.

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 sí - El song_id del fragmento que se va a unir (resultado de Extend o de Replace Section); debe estar completado
is_infill boolean no false false = unión de extensión; true = unión de reemplazo (infill)
source_audio_url string no - Dirección del audio de origen, cuando el fragmento viene de una cuenta externa
source_file_name string no - Nombre del archivo de origen, cuando el fragmento viene de una cuenta externa
source_title string no - Título de origen, cuando el fragmento viene de una cuenta externa

audio_id, source_clip_id y sourceClipId son formas equivalentes de song_id; usa cualquiera de ellas.

Ejemplo de petición

curl -X POST https://www.suno-api.io/api/music/concat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "song_id": "extended_or_replaced_clip_id",
    "is_infill": false
  }'

Para unir después de reemplazar un tramo, pon is_infill en true:

{ "song_id": "infilled_clip_id", "is_infill": true }

Respuesta

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "concat_clip_id",
        "song_title": "Título de la canción original",
        "status": "queued"
      }
    ]
  }
}

La unión devuelve solo 1 resultado (no produce 2 canciones de una vez). Guarda clips[].song_id y sondea la API de consulta de canciones hasta complete antes de descargar el audio.

De dónde sale la duración del resultado

La unión no pega dos archivos uno tras otro sin más; recorta la canción de origen según los puntos de tiempo registrados en el historial del fragmento:

Modo Composición del resultado
is_infill: false canción de origen [0 .. continue_at] + la longitud completa del fragmento de extensión
is_infill: true canción de origen [0 .. inicio] + el nuevo fragmento reemplazado + canción de origen [fin .. final de la pista]

Por eso el audio original posterior al punto de continuación se descarta y no aparece ningún tramo duplicado.

Notas

SiguienteAPI de remasterización (Remaster)

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