Saltar al contenido principal
POST
Referenciar la pista de origen: las operaciones basadas en canciones existentes no requieren recordar ningún id anterior; solo pasa task_id (el task_id nuestro de la tarea que produjo la pista de origen) + audio_index (qué canción dentro del resultado music[], empieza en 1, por defecto 1).
custom determina qué campos surten efecto: los campos escritos bajo el modo incorrecto son ignorados silenciosamente por el proveedor (sin error). Con custom=true, surten efecto prompt (letra), title, tags, negative_tags, style_weight, weirdness_constraint, audio_weight y persona_id, y gpt_description se ignora; con custom=false, solo se lee gpt_description (obligatorio en ese caso — si falta, se devuelve un 400 en el momento del envío). vocal_gender funciona en ambos modos. Si no se pasa custom, el backend lo infiere en este orden: hay prompttrue; no hay prompt pero hay gpt_descriptionfalse; en otro caso, hay tags/titletrue.

Uso

Uso A — versión en un estilo especificado (el más común, recomendado) Proporciona la canción de origen + los tags del estilo objetivo; no hace falta preocuparse por custom (cuando el sistema ve tags, lo trata automáticamente como custom=true):
Para más control también puedes añadir prompt (letra) / title. Uso B — modo inspiración (custom=false) No especifiques un estilo concreto y deja que el proveedor improvise, pero debes proporcionar gpt_description describiendo el efecto que quieres:
Elige uno de los dos usos — no pases solo custom=false sin gpt_description (eso falla con 400 en el envío).

Authorizations

Authorization
string
requerido
Todas las interfaces requieren autenticación mediante Bearer TokenObtener la API Key:Visita la página de gestión de API Keys para obtener tu API KeyAl usarla, añade en la cabecera de la petición:

Body

model
string
predeterminado:"suno"
Modelo de audio. Actualmente se pasa suno (si no se pasa, por defecto suno).
task_id
string
requerido
El task_id nuestro de la tarea que produjo la pista de origen. Si falta o no se puede resolver la fuente, se devuelve un 400 en el momento del envío.
audio_index
integer
predeterminado:"1"
Qué canción dentro de data.music[] del resultado de la tarea de origen (empieza en 1: 1 = primera canción; por defecto 1; una generación suele producir 2 canciones: índices 1 y 2).
version
string
predeterminado:"v5.5"
Versión de generación: v3.5 / v4 / v4.5 / v4.5+ / v4.5-all / v5 / v5.5, afecta a la calidad de audio y a la facturación; por defecto v5.5 si no se pasa, y un valor no válido devuelve 400 directamente en el momento del envío.
custom
boolean
true=modo personalizado (prompt se usa como letra); false=modo inspiración (usa gpt_description); si no se pasa, se infiere del contenido (ver el Warning más arriba).
prompt
string
Letra. Surte efecto cuando custom=true (se ignora en modo inspiración).
gpt_description
string
Prompt de inspiración. Obligatorio cuando custom=false — si falta, la petición falla con 400 en el envío (no se llama al proveedor y no se cobra nada).
title
string
Título. Solo tiene efecto cuando custom=true.
tags
string
Etiquetas del estilo objetivo. Solo tiene efecto cuando custom=true.
negative_tags
string
Etiquetas de estilo a excluir. Solo tiene efecto cuando custom=true.
style_weight
number
Peso del estilo, 0.00-1.00 (los valores fuera de rango devuelven 400 directamente en el momento del envío). Solo tiene efecto cuando custom=true.
weirdness_constraint
number
Creatividad, 0.00-1.00 (alias weirdness). Solo tiene efecto cuando custom=true.
audio_weight
number
Peso del audio, 0.00-1.00. Solo tiene efecto cuando custom=true.
vocal_gender
string
Género de la voz: Male / Female. Funciona en ambos modos.
persona_id
string
Id de estilo Persona. Solo tiene efecto cuando custom=true.
Obtener el resultado: esta interfaz es una tarea asíncrona. Tras enviarla obtienes un task_id; consulta GET /v1/music/tasks/{task_id} cada 3-5 s hasta que status sea completed o failed (la generación de música suele tardar 30-120 s; durante la generación, status es pending y progress avanza en cola 10 → listo 50 → completado 100). Al completarse, toma el audio_url de data.result.music[]. En caso de fallo, data.error.message indica la razón y la cuota reservada se reembolsa automáticamente.

Response

code
integer
Código de estado de la respuesta
data
array
Array de datos devueltos