Visão geral da documentação da Suno API

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

Basta registrar-se com um e-mail para criar uma chave de API. Cada geração custa ¥0,6 e devolve 2 músicas, cobrindo download em MP3/WAV, covers, Extend, separação de stems e clonagem de voz. URL base: https://www.suno-api.io.

Esta página apresenta os modelos disponíveis, todos os endpoints de geração e edição, como funciona a cobrança e a ordem recomendada de leitura. Se é a sua primeira integração, leia de cima para baixo; os roteiros de investigação de 401/403/429 também estão aqui.

Respostas rápidas

Como obtenho uma chave de API? Registe-se com um e-mail, abra o console, vá a gestão de tokens e crie um token. Não é preciso número de telefone nem cartão.

Quanto custa cada chamada? Uma geração custa ¥0,6 e devolve 2 músicas. Consultas de estado, WAV, letras com marcação temporal e sugestões de prompt não têm custo adicional.

Que modelos são suportados? suno-v6 (predefinido), suno-v6-wild e suno-v6-mini. Os modelos de geração normal v5.5 e anteriores foram retirados; os trabalhos existentes não são afetados.

Qual é a URL base? https://www.suno-api.io, com o cabeçalho Authorization: Bearer YOUR_API_KEY.

Modelos disponíveis neste momento

Os modelos que o cliente pode indicar na geração normal de músicas são suno-v6, suno-v6-wild e suno-v6-mini. Se model for omitido, é usado suno-v6.

Os modelos normais suno-v2, suno-v3, suno-v3-5, suno-v4, suno-v4-5, suno-v4-5-all, suno-v4-5-plus, suno-v5 e suno-v5-5 foram retirados. Tarefas históricas podem ainda mostrar esses nomes, mas isso é apenas histórico e não significa que o modelo possa ser usado em novos pedidos. A separação de stems é a exceção — ver API de stems (separação de voz/acompanhamento).

Autenticação

Todos os endpoints públicos com chave de API usam os mesmos cabeçalhos:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

URL base:

https://www.suno-api.io

Convenções gerais dos parâmetros

Limites de campos de texto

Exceder um limite devolve HTTP 400 diretamente: nada é gerado, nada é pré-cobrado e nenhum registo de tarefa é criado. A contagem é feita por caracteres Unicode (um caractere chinês conta como 1) e os espaços no início e no fim também contam.

Campo (incluindo os aliases documentados em cada endpoint) Limite
prompt / lyrics / description / theme / gpt_description_prompt 3000 caracteres
style_tags / tags / style / original_tags 1000 caracteres
negative_tags 1000 caracteres
song_title / title 100 caracteres

A message de erro indica o campo em falta e o comprimento medido, por isso esses dois números bastam para ajustar o texto:

{
  "error": {
    "message": "style_tags must not exceed 1000 characters; received 2772",
    "type": "invalid_request_error"
  }
}

Aplica-se a: /api/music/create, /api/music/create/custom, /api/music/extend, /api/music/upload-cover, /api/music/generate-from-source, /api/music/add-instrumental, /api/music/add-vocal, /api/music/add-stem, /api/music/mashup, /api/music/sample, /api/music/inspo, /api/music/crop, /api/music/remove-section, /api/music/fade, /api/music/reverse, /api/music/speed, /api/music/replace-section, /api/music/generate-with-voice.

Uma exceção: o campo description de POST /api/music/sounds está limitado a 100 caracteres, porque o caminho dos efeitos sonoros usa o limite mais curto da plataforma.

Geração assíncrona e endereços de áudio

Os endpoints de geração musical funcionam de forma assíncrona por predefinição. Quando a primeira resposta traz status igual a pending, submitted ou processing, um audio_url, video_url ou cover_url vazio é normal e não significa que a tarefa falhou. Guarde o song_id real (ou o client_request_id devolvido) e faça polling no endpoint de consulta correspondente; só leia e descarregue um endereço de áudio quando o estado estiver concluído.

⚠️ Os endereços de áudio expiram em 7 dias — transfira os ficheiros a tempo

audio_url, wav_url, video_url e os endereços devolvidos pelos endpoints de download são servidos pelo armazenamento de objetos da plataforma e expiram por predefinição após 7 dias (os ficheiros são reciclados; um endereço antigo devolve 404 / falha o download).

  • Nesses 7 dias, mova os ficheiros para o seu próprio armazenamento (o seu armazenamento de objetos, uma CDN ou um disco de servidor). Não trate os nossos endereços como ligações de longa duração.
  • Um endereço expirado não exige regenerar a música e não custa nada extra: volte a chamar a API de consulta de músicas (ou a API de download de media) para obter um endereço novo e válido para essa música.

Tempos de espera e configuração de timeout

Os endpoints de geração são síncronos: o pedido só é aceite e entregue à plataforma quando a resposta chega. Antes disso, o serviço tem de agendar uma conta e passar a verificação de segurança necessária, e não existe resposta intermédia — nenhum outro endpoint consegue ver o pedido. Por isso, a única prova fiável de que "algo foi gerado" é a própria resposta, não aquilo que se observa enquanto se espera.

Tempos de espera medidos (produção, família /api/music/create, 2026-09-18 a 2026-09-20)

Percentil Espera
p50 cerca de 1,2–1,6 s
p75 cerca de 2–6 s
p90 cerca de 42–49 s
p95 cerca de 48–76 s
p99 cerca de 109–160 s
máximo cerca de 230 s

Requisitos de integração

  1. Defina o timeout do cliente para 300 segundos ou mais. Clientes com 30, 60 ou 120 segundos por predefinição desligam-se durante a espera.
  2. Não receber resposta não significa que nada foi gerado. Com um timeout ou ligação caída, o pedido pode já ter sido aceite e estar a gerar.
  3. Não repita imediatamente após um timeout: uma submissão duplicada cria um segundo pedido e volta a cobrar.
  4. Se a ligação caiu, liste as suas músicas com GET /api/music/songs (mais recentes primeiro) um pouco mais tarde — os pedidos aceites aparecem normalmente. Só volte a submeter depois de confirmar que o pedido não existe.
  5. Ao reportar um problema, inclua o cabeçalho de resposta X-Oneapi-Request-Id para que o pedido exato possa ser localizado.

Prefere não manter uma ligação longa? Use o modo de recibo de aceitação. POST /api/music/create e POST /api/music/create/custom aceitam um recibo opcional: acrescente "accept_mode": "async" ao corpo (ou o cabeçalho X-Accept-Mode: async) e o endpoint devolve 202 de imediato com um número de recibo, enquanto a geração continua em segundo plano; consulte o progresso em GET /api/music/requests/{request_id}. Um cliente com apenas algumas dezenas de segundos de timeout deixa de poder confundir "sem resposta" com "nada gerado" e deixa de poder cobrar duas vezes por repetições. Ver "Modo de recibo de aceitação" na API de geração em modo simples.

Para referência: python requests usa timeout=300, urllib usa urlopen(..., timeout=300), Node usa req.setTimeout(300000), curl usa --max-time 300.

Lista de endpoints recomendados

Capacidade Método Caminho Nota de cobrança Documentação
Saldo da conta GET /api/user/balance Grátis Ver
Geração em modo simples POST /api/music/create Pago, atualmente ¥0,6 por chamada por predefinição Ver
Geração em modo personalizado POST /api/music/create/custom Pago; suporta género vocal, influência de estilo e aleatoriedade Ver
Geração de fala (Speech) POST /api/music/speech Pago, atualmente ¥0,6 por chamada por predefinição; música de fundo opcional Ver
Progresso do recibo de aceitação GET /api/music/requests/{request_id} Grátis; usado com accept_mode=async Ver
Efeitos sonoros POST /api/music/sounds Pago, atualmente ¥0,6 por chamada por predefinição Ver
Geração de letras POST /api/lyrics/generate Grátis dentro da quota (10/min, 300/dia), depois ¥0,1 por chamada Ver
Criação de perfil de voz (recomendado) POST /api/music/voice-profile/create Grátis (enhanced=true é cobrado ao preço de clone reforçado) Ver
Cover com a sua voz (recomendado) POST /api/music/voice-profile/cover ¥1,2 por chamada; ¥2,4 com Max Mode Ver
Lista / detalhe / eliminar vozes (recomendado) GET/POST /api/music/voice-profile/list, /{voice_id}, /delete Grátis Ver
Clone de voz (cadeia antiga, não recomendado) POST /api/voice/clone/validate Grátis Ver
Consultar uma tarefa de clone de voz GET /api/voice/clone/tasks/:voice_task_id Grátis Ver
Regenerar o texto de verificação POST /api/voice/clone/tasks/:voice_task_id/regenerate Grátis Ver
Submeter o áudio de verificação e criar a voz POST /api/voice/clone/tasks/:voice_task_id/generate Cobrado pelas regras de clone de voz Ver
Verificar se a voz clonada é utilizável POST /api/voice/clone/tasks/:voice_task_id/check Grátis Ver
Eliminar uma voz clonada DELETE /api/voice/clone/voices/:voice_task_id Grátis Ver
Gerar com uma voz escolhida POST /api/music/generate-with-voice Pago, ¥1,2 por chamada; ¥2,4 com Max Mode Ver
Consultar resultados de uma voz escolhida GET /api/music/generate-with-voice/results Grátis Ver
Reforço de estilo POST /api/music/boost-style Grátis dentro da quota (10/min, 300/dia), depois ¥0,1 por chamada Ver
Sugestões de prompt POST /api/prompts/suggestions Grátis dentro da quota (10/min, 300/dia), depois ¥0,1 por chamada Ver
Carregar áudio de origem POST /api/music/upload-source Grátis Ver
Submeter upload reforçado POST /api/music/enhanced-upload Pago, ¥10 por chamada Ver
Listar tarefas de upload reforçado GET /api/music/enhanced-upload Grátis Ver
Consultar uma tarefa de upload reforçado GET /api/music/enhanced-upload/:id Grátis Ver
Cancelar uma tarefa de upload reforçado POST /api/music/enhanced-upload/:id/cancel Grátis; só as fases canceláveis são reembolsadas Ver
Carregar e fazer cover POST /api/music/upload-cover Pago, atualmente ¥0,6 por chamada por predefinição; para áudio grande prefira o fluxo em dois passos upload-source + generate-from-source Ver
Cover a partir de um clip de origem POST /api/music/generate-from-source Pago, atualmente ¥0,6 por chamada por predefinição Ver
Extend POST /api/music/extend Pago, atualmente ¥0,6 por chamada por predefinição Ver
Substituir secção POST /api/music/replace-section Pago, atualmente ¥0,6 por chamada por predefinição Ver
Get Full Song POST /api/music/concat Pago, fixo ¥0,05 por chamada Ver
Remaster POST /api/music/remaster Pago, atualmente ¥0,6 por chamada por predefinição Ver
Adicionar instrumental POST /api/music/add-instrumental Pago, cobrado pelo modelo pedido Ver
Adicionar vocal POST /api/music/add-vocal Pago, cobrado pelo modelo pedido Ver
Adicionar faixa POST /api/music/add-stem Pago, cobrado pelo modelo pedido Ver
Mashup POST /api/music/mashup Pago, cobrado pelo modelo pedido Ver
Sample POST /api/music/sample Pago, cobrado pelo modelo pedido Ver
Inspo POST /api/music/inspo Pago, cobrado pelo modelo pedido Ver
Crop POST /api/music/crop Pago, cobrado pelo modelo pedido Ver
Remover secção POST /api/music/remove-section Pago, cobrado pelo modelo pedido Ver
Fade in/out POST /api/music/fade Pago, cobrado pelo modelo pedido Ver
Reverse POST /api/music/reverse Pago, cobrado pelo modelo pedido Ver
Speed POST /api/music/speed Pago, cobrado pelo modelo pedido Ver
Stems (separação de voz/acompanhamento) POST /api/music/separate Pago; two ¥0,6 por chamada por predefinição, twelve ¥3,0 Ver
Remoção de voz POST /api/music/vocal-removal Grátis Ver
Eliminar stems POST /api/music/stem-delete Grátis Ver
Gerar/obter WAV POST /api/music/wav Grátis Ver
Obter MIDI POST /api/music/download-file (kind=midi) Grátis Ver
Endereço de media / stream de pré-visualização POST /api/music/download-url, /api/music/generation-stream-url Grátis Ver
Download de ficheiro da música POST /api/music/download-file Grátis Ver
Download do pacote da música POST /api/music/download-all Grátis Ver
Endereço de download estável GET /api/music/download Grátis Ver
Download Free2 POST /api/music/free2 Pago, ¥0,2 por música com sucesso Ver
Consultar o estado de uma música POST /api/music/query Grátis Ver
Histórico de músicas da conta GET /api/music/songs Grátis Ver
Parâmetros de geração da música GET /api/music/songs/:song_id Grátis Ver
Letras com marcação temporal POST /api/lyrics/timeline Grátis Ver
Elegibilidade e identidade de licença GET /api/music/authorization/context Grátis Ver
Associar identidade de licença POST /api/music/authorization/identity Grátis; não pode ser alterada após confirmação Ver
Listar músicas licenciáveis GET /api/music/authorization/songs Grátis; exige identidade associada Ver
Emitir licença comercial POST /api/music/authorization/certificates Grátis; exige elegibilidade Ver
Histórico de licenças GET /api/music/authorization/certificates Grátis Ver
Detalhe da licença GET /api/music/authorization/certificates/:id Grátis Ver
Descarregar o PDF da licença GET /api/music/authorization/certificates/:id/download Grátis Ver

Os endpoints /api/voice/clone/* e /api/music/generate-with-voice pertencem à cadeia inicial de clonagem de voz e não são recomendados para novas integrações; use antes a 【Recomendado】 API de perfil de voz.

Parâmetros avançados: Max Mode e Variety

Os endpoints de geração suportam estes dois parâmetros opcionais (omitir mantém o comportamento e o preço anteriores):

Parâmetro Tipo Intervalo Notas
max_mode boolean true / false Usa mais capacidade de cálculo para melhorar a consistência da música inteira; este pedido é cobrado ao dobro do preço
variety integer 0-4 Grau de variação estilística: 0=Off, 1=Normal, 2=High, 3=Extra, 4=Max. Omitir usa o nível predefinido do modelo (a família v6 usa 1); sem custo adicional

Endpoints que os suportam: POST /api/music/create, POST /api/music/create/custom, POST /api/music/extend, POST /api/music/upload-cover, POST /api/music/generate-from-source, POST /api/music/add-instrumental, POST /api/music/add-vocal, POST /api/music/add-stem, POST /api/music/mashup, POST /api/music/sample, POST /api/music/inspo, POST /api/music/replace-section, POST /api/music/voice-profile/cover, POST /api/music/speech.

Campos de resposta comuns das músicas

Os endpoints de geração, cover, extend, separação e consulta devolvem normalmente um array de músicas com estes campos:

Campo Tipo Notas
song_id string ID da música ou da tarefa
song_title string Título da música
status string Estado como pending, completed, failed
audio_url string Endereço do áudio, devolvido quando a geração termina
video_url string Endereço do vídeo, pode estar vazio
cover_url string Endereço da imagem de capa
lyrics string Texto da letra
style_tags string Etiquetas de estilo
duration number Duração do áudio em segundos
created_at string Data de criação
model_version string Versão do modelo
generation_type string Tipo de geração
error_message string Motivo da falha

Quatro passos para integrar (exemplo mínimo)

Com estes quatro passos obtém a sua primeira música; a lista completa de campos de cada passo está na página correspondente da lista de endpoints recomendados.

# 1) Submeter uma geração: ¥0,6, devolve 2 músicas
curl -X POST https://www.suno-api.io/api/music/create \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description": "bright Brazilian pop, piano intro, warm female vocal", "model": "suno-v6"}'

# 2) Fazer polling até status ser completed (3-5 segundos é um bom intervalo)
curl -X POST https://www.suno-api.io/api/music/query \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_id": "o song_id devolvido no passo 1"}'

# 3) Obter um endereço de media: os endpoints de leitura são grátis; song / wav / video / cover / midi
curl -X POST https://www.suno-api.io/api/music/download-url \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"song_id": "o mesmo song_id", "kind": "song"}'

Quando algo falha: 401 / 402 / 403 / 429 estão no guia de erros; timeouts e cobranças duplicadas na secção "Tempos de espera e configuração de timeout" acima; o detalhe de cada endpoint na lista de endpoints recomendados abaixo.

Recomendações

Sobre esta documentação

Esta página foi reorganizada em torno das capacidades que a Create UI expõe na prática, e as novas integrações devem lê-la primeiro. A documentação antiga da API continua disponível na secção "Documentação antiga da API (compatível)" para quem quiser manter o método anterior.

PróximoAPI de consulta de saldo da conta

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