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.

POSThttps://www.aisplice.store/v1/music/generationsBearer API keyTarea asíncrona

OpcionesSolo 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.

prompt
stringopcional

Instrucción que describe el resultado deseado.

Ciclo de vida de la respuesta

Estado de la tarea, estados finales y ejemplos de respuesta del resultado.

Enviar
{
  "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

Todos los campos: /v1/music en la referencia de la API →

#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

Una tarea fallida o cancelada se reembolsa automáticamente. El registro de solicitudes muestra el costo final de cada tarea.

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.

Buscar otro error →

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.
recommended-rollout.txt
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 tuning

Mantén una única fuente de verdad para los resultados

Cuando una tarea termine, organiza tu app en torno a la URL de la plataforma que devuelve /content. Así ocultas los detalles del proveedor upstream y la reproducción del historial se mantiene estable.

¿Sigues con el problema?

Envíanos el ID de solicitud o el mensaje de error y lo revisaremos.