Referencia de la API

Música

Modelos de este endpoint (1)

Pruébalo en Workbench
POST/v1/music/generations
GET/v1/music/tasks/{task_id}
GET/v1/music/tasks/{task_id}/content

Generación de música asíncrona para canciones e instrumentales. El envío devuelve un task_id de inmediato; consulta la tarea o acepta un callback de webhook y luego lee el audio terminado en /content.

#Parámetros de la solicitud

  • modelstringobligatorio

    Un ID de modelo de música de la página de modelos, p. ej. suno.

  • promptstringobligatorio

    Describe la canción, el ambiente, la instrumentación o la dirección de la letra.

  • titlestringopcional

    Título opcional de la pista, reenviado a las familias de modelos que lo admiten.

  • tagsstring | arrayopcional

    Pistas opcionales de género o estilo, como cinematic, pop o ambient.

  • versionstringopcional

    Selector de versión de la familia de modelos cuando el proveedor ofrece varias generaciones.

  • mvstringopcional

    Selector del modo musical propio del proveedor; mantenlo en el servidor salvo que los usuarios necesiten un control explícito.

  • instrumentalbooleanopcional

    Genera una salida instrumental sin voz cuando el modelo lo admite.

  • make_instrumentalbooleanopcional

    Flag alternativo del proveedor para salida instrumental; algunos proveedores lo usan en lugar de instrumental.

  • continue_clip_idstringopcional

    Continúa o extiende un clip anterior en lugar de empezar una pista nueva.

  • continue_atnumberopcional

    Punto de reanudación en segundos para los flujos de continuación.

  • webhook_urlstringopcional

    URL HTTPS a la que se llama cuando la tarea llega a un estado final.

  • webhook_secretstringopcional

    Si se define, las entregas incluyen X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret)).

Empieza simple

Para la mayoría de los productos, prompt basta en la primera integración. title, tags, version y los campos de continuación son controles avanzados que solo deben añadirse cuando el producto los necesite claramente.

El mismo contrato asíncrono que otras tareas multimedia

La música sigue el mismo patrón envío → consulta o webhook → /content que las tareas de imagen y video, así que un solo ejecutor de tareas en el backend suele poder manejar las tres.

#Errores relacionados

  • 404 not_foundRuta desconocida, nombre de modelo desconocido, o un task_id caducado o de otra cuenta.
  • 422 unprocessable_entityEl proveedor rechazó valores de parámetros que el gateway reenvió (p. ej. tamaño o duración no admitidos).
  • 401Bearer token no válido o ausente. Esta ruta no tiene error.code — compara por el estado.
  • 402 insufficient_user_quotaEl saldo de la billetera no cubre la estimación reservada previamente.
  • 429Limitación por clave. Cuerpo vacío; espera el Retry-After. Un 429 que sí incluye insufficient_user_quota indica en cambio un límite de gasto diario.
  • 503 model_not_foundModelo desconocido, o ningún canal sano lo atiende ahora mismo.

Tabla completa de códigos de error →

#Ejemplo de solicitud

# submit
curl https://www.aisplice.store/v1/music/generations \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "suno",
    "prompt": "a warm cinematic piano theme",
    "instrumental": true
  }'

# poll every 5s
curl https://www.aisplice.store/v1/music/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"

# fetch the finished track
curl -L https://www.aisplice.store/v1/music/tasks/$TASK_ID/content \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -o song.mp3

#Respuesta

response.json
// POST — submit accepted
{"task_id": "task_xxx", "status": "queued"}

// GET /v1/music/tasks/{task_id}
{
  "task_id": "task_xxx",
  "status": "in_progress",
  "progress": "42%"
}

// GET /v1/music/tasks/{task_id}/content
{
  "task_id": "task_xxx",
  "status": "completed",
  "metadata": {
    "audio_url": "https://…",
    "lyric": "…"
  }
}

¿Sigues con el problema?

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