Por capacidad
Música
La música se ejecuta como tarea: envía un prompt y luego consulta o recibe un callback. Empieza solo con el prompt.
#1. Elige un modelo
suno$0.07 / solicitudLímites y estado
1 modelos en línea para esto. Al cambiar de modelo, cambia el código de abajo.
#2. Copia la solicitud
Reemplaza YOUR_API_KEY por tu clave y ejecútala. Las opciones que se muestran son las que acepta este modelo.
https://www.aisplice.store/v1/music/generationsBearer API keyTarea asíncronaOpcionesSolo se muestran las opciones publicadas para este modelo.
# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"
# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/music/generations \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
-d '{
"model": "Suno",
"prompt": "An uplifting electronic track for a product launch",
"operation": "music",
"version": "v6",
"custom": false,
"instrumental": false
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
printf '%s\n' "$SUBMITTED" >&2
exit 1
fi
echo "task_id=$TASK_ID"
# 2. Poll until terminal
while true; do
STATUS_JSON=$(curl --fail-with-body -sS \
"https://www.aisplice.store/v1/music/tasks/$TASK_ID" \
-H "Authorization: Bearer $API_KEY")
STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
echo "status=$STATUS"
case "$STATUS" in
completed|succeeded|success) break ;;
failed|failure|cancelled|canceled)
printf '%s\n' "$STATUS_JSON" | jq .
exit 1
;;
esac
sleep 3
done
# 3. Fetch the final result
curl --fail-with-body -sS \
"https://www.aisplice.store/v1/music/tasks/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" | jq .Todos los parámetros
Todos los campos que acepta este modelo, con los valores permitidos.
Todos los parámetros
Todos los campos que acepta este modelo, con los valores permitidos.
promptInstrucción que describe el resultado deseado.
Ciclo de vida de la respuesta
Estado de la tarea, estados finales y ejemplos de respuesta del resultado.
Ciclo de vida de la respuesta
Estado de la tarea, estados finales y ejemplos de respuesta del resultado.
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "music.task",
"model": "Suno",
"status": "queued"
}En espera
queued · submitted · in_progress · processing
Éxito
completed · succeeded · success
Fallo
failed · failure · cancelled · canceled
#3. Obtén el resultado
La llamada de envío responde de inmediato con un task_id. Consulta la tarea cada pocos segundos hasta que status sea completed, o pasa webhook_url y te llamaremos cuando termine.
GET https://www.aisplice.store/v1/music/tasks/{task_id}
GET https://www.aisplice.store/v1/music/tasks/{task_id}/content
Solo se cobra si tiene éxito
Valores de estado y consulta periódica →Recibe un callback en lugar de consultar →
#Si algo sale mal
- 400 con un nombre de campo: este modelo no acepta esa opción; usa los valores indicados en el paso 2.
- Contenido rechazado por el modelo: reformula el prompt; las solicitudes rechazadas no se cobran.
- 402: el saldo no cubre esta solicitud; recarga en Billetera y reintenta.
- 429: reduce el ritmo y reintenta después de los segundos indicados en Retry-After.
- 503 model_not_found: el nombre del modelo es incorrecto o el modelo está fuera de línea; elige uno del paso 1.
Integrarlo en tu productoQué opciones mostrar primero a tus usuarios y cuáles dejar para más adelante.
Qué opciones mostrar primero a tus usuariosEmpieza con el prompt y un ajuste de precio; añade el resto cuando el flujo básico funcione.+
Intención creativa
Los campos como prompt van en la UI porque el usuario entiende directamente el resultado que cambian.
Multiplicador de costo
Los campos como duración, resolución, tamaño y cantidad solo deben introducirse cuando el precio ya se pueda explicar.
Cambio de modo
Los campos como imagen, máscara o ID de continuación cambian el propio flujo de trabajo y solo deben aparecer en modos dedicados.
Infraestructura del sistema
Los campos como webhook_secret son para integradores, no para creadores habituales, así que déjalos fuera de la UI predeterminada.
prompt- Cuándo mostrarlo
- Siempre. Es la entrada mínima viable para la música.
- Valor predeterminado recomendado
- Obligatorio en la UI.
- Por qué importa
- Transmite el tema, el género y la dirección emocional.
instrumental / make_instrumental- Cuándo mostrarlo
- Muéstralo cuando el producto distinga claramente entre salida con voz e instrumental.
- Valor predeterminado recomendado
- Mantenlo en el servidor salvo que los usuarios elijan entre pistas con voz e instrumentales.
- Por qué importa
- Cambia el tipo de salida y debe corresponder a una decisión de negocio clara.
title / tags- Cuándo mostrarlo
- Muéstralo solo cuando los usuarios ya entiendan la generación solo con prompt.
- Valor predeterminado recomendado
- Campos avanzados opcionales.
- Por qué importa
- Ayudan a controlar el estilo, pero no deben impedir el primer resultado exitoso.
version / mv- Cuándo mostrarlo
- Muéstralo solo si los usuarios deben elegir una familia de modelos o un modo de generación.
- Valor predeterminado recomendado
- Fija una versión recomendada en el servidor.
- Por qué importa
- Aumenta la fatiga de decisión y normalmente corresponde a los controles del operador.
continue_clip_id / continue_at- Cuándo mostrarlo
- Muéstralo solo en flujos de continuación o extensión.
- Valor predeterminado recomendado
- Ocúltalo en los flujos de creación estándar.
- Por qué importa
- Son controles para expertos y confunden a los usuarios nuevos si se muestran demasiado pronto.
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content
Phase 2
- one quality or resolution selector
- clear pricing hint
Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuningMantén una única fuente de verdad para los resultados
¿Sigues con el problema?
Envíanos el ID de solicitud o el mensaje de error y lo revisaremos.