API de música completa (Get Full Song)

Atualizado em 2026-09-18 · equipe Suno-API

Descrição do endpoint

A união de música completa junta "a música original + o fragmento recém-gerado" numa única música completa: após Extend acrescenta a parte seguinte, e após Replace Section cose o novo fragmento de volta na original. A interface web oficial chama a esta capacidade Get Full Song.

Endpoint: POST /api/music/concat

Cobrança: Pago, 0,05 CNY fixos por chamada. A união está desacoplada do preço de geração e não participa no Max Mode nem nos multiplicadores de perfil de voz; o valor realmente debitado segue a configuração de preços do back-office.

Tempos de espera e timeouts (importante): este é um endpoint síncrono — o pedido só é aceito e entregue à união quando a resposta chega. Defina o timeout do cliente em 300 segundos ou mais; não receber resposta não significa que nada foi unido, e não repita logo após um timeout (isso duplica o pedido e cobra de novo). Se a conexão caiu, confirme depois com GET /api/music/songs.

Autenticação

Parâmetro Tipo Obrigatório Observações
Authorization string sim Bearer YOUR_API_KEY
Content-Type string sim application/json

Parâmetros da requisição

Parâmetro Tipo Obrigatório Padrão Observações
song_id string sim - O song_id do fragmento a unir (resultado de Extend ou de Replace Section); precisa estar concluído
is_infill boolean não false false = união de extensão; true = união de substituição (infill)
source_audio_url string não - Endereço do áudio de origem, quando o fragmento vem de outra conta
source_file_name string não - Nome do arquivo de origem, quando o fragmento vem de outra conta
source_title string não - Título de origem, quando o fragmento vem de outra conta

audio_id, source_clip_id e sourceClipId são formas equivalentes de song_id; use qualquer uma.

Exemplo de requisição

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 depois de substituir um trecho, defina is_infill como true:

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

Resposta

{
  "code": 200,
  "message": "success",
  "data": {
    "clips": [
      {
        "song_id": "concat_clip_id",
        "song_title": "Título da música de origem",
        "status": "queued"
      }
    ]
  }
}

A união devolve apenas 1 resultado (não produz 2 músicas de uma vez). Salve clips[].song_id e faça polling na API de consulta de músicas até complete antes de buscar o áudio.

De onde vem a duração do resultado

A união não cola dois arquivos simplesmente um atrás do outro; recorta a música de origem segundo os pontos de tempo registados no histórico do fragmento:

Modo Composição do resultado
is_infill: false música de origem [0 .. continue_at] + o comprimento total do fragmento de extensão
is_infill: true música de origem [0 .. início] + o novo fragmento substituído + música de origem [fim .. final da faixa]

Por isso o áudio original posterior ao ponto de continuação é descartado e não aparece nenhum trecho duplicado.

Observações

PróximoAPI de remasterização (Remaster)

Obter uma chave de API

Crie uma chave de API no console após o cadastro. Cada geração custa ¥0,6 e devolve 2 faixas, os downloads são ilimitados e não é preciso número de telefone.

Obter chave de API Voltar à visão geral