API Crear clave

SunoAudio

Música

Dos pistas por toma con Suno.

Precio
12 crpor toma · 30 s
Tiempo habitual
≈ 2 min
Id del modelo
audio.music

Zona de pruebas

Zona de pruebas

10 - 360

Más ajustes
Voz cantada
Regístrate para ejecutarlo

Cambia los ajustes: el precio y el código se actualizan. Para ejecutarlo necesitas una cuenta.

audio.music
Duración
10-360 s
Admite
Texto

Aún no hay un ejemplo de este modelo. Estos son sus ajustes reales.

# 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
JOB_ID=$(curl -s -X POST https://staglight.ai/api/v1/jobs \
  -H "Authorization: Bearer $STAGLIGHT_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "op": "audio.music",
    "params": {
      "duration": 30
    },
    "max_credits": 12
  }' | jq -r .id)

# 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while :; do
  JOB=$(curl -s "https://staglight.ai/api/v1/jobs/$JOB_ID?wait=30" -H "Authorization: Bearer $STAGLIGHT_API_KEY")
  case "$(echo "$JOB" | jq -r .status)" in queued|running) ;; *) break ;; esac
done

# 3. Descarga el resultado desde outputs[0].download_url.
DOWNLOAD_URL=$(echo "$JOB" | jq -r '.outputs[0].download_url')
curl -L -o result.mp3 "$DOWNLOAD_URL"
import os, uuid, requests

BASE = "https://staglight.ai/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['STAGLIGHT_API_KEY']}"}

# 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
r = requests.post(f"{BASE}/jobs", timeout=60,
                  headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
                  json={
                    "op": "audio.music",
                    "params": {
                      "duration": 30
                    },
                    "max_credits": 12
                  })
r.raise_for_status()
job = r.json()

# 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while job["status"] in ("queued", "running"):
    job = requests.get(f"{BASE}/jobs/{job['id']}", headers=HEADERS,
                       params={"wait": 30}, timeout=60).json()

# 3. Descarga el resultado desde outputs[0].download_url.
print(job["outputs"][0]["download_url"] if job["outputs"] else job["data"] or job["error"])
// Node 18 o posterior. Guárdalo como run.mjs: el await de nivel superior necesita un módulo.
const BASE = "https://staglight.ai/api/v1";
const headers = { Authorization: `Bearer ${process.env.STAGLIGHT_API_KEY}` };

// 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
let res = await fetch(`${BASE}/jobs`, {
  method: "POST",
  headers: { ...headers, "Content-Type": "application/json", "Idempotency-Key": crypto.randomUUID() },
  body: JSON.stringify({
    "op": "audio.music",
    "params": {
      "duration": 30
    },
    "max_credits": 12
  }),
});
if (!res.ok) throw new Error((await res.json()).error.message);
let job = await res.json();

// 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while (job.status === "queued" || job.status === "running") {
  job = await (await fetch(`${BASE}/jobs/${job.id}?wait=30`, { headers })).json();
}

// 3. Descarga el resultado desde outputs[0].download_url.
console.log(job.outputs[0]?.download_url ?? job.data ?? job.error);
{
  "id": "job_19a2b3c4d5e6f7a8b9c0d1",
  "op": "audio.music",
  "status": "queued",
  "credits": 12,
  "title": "",
  "params": {
    "duration": 30
  },
  "progress": null,
  "outputs": [],
  "data": null,
  "error": null,
  "run_id": null,
  "source": "api",
  "created_at": "2026-11-06T12:00:00Z",
  "finished_at": null,
  "eta_seconds": 90
}

Cuánto cuesta

12 cr por ejecución. Los ajustes no cambian el precio.

La zona de pruebas muestra el precio exacto de tus ajustes. La tarea se cobra una vez al aceptarla y se reembolsa si falla.

Parámetros

NombreTipoPor defectoValores
promptIdea de la pista string Hasta 3.000 caracteres
styleEstilo string Hasta 1.000 caracteres
instrumentalInstrumental boolean true
durationDuración (s) integer 30 10 - 360
titleTítulo string Hasta 80 caracteres
lyricsLetra string Hasta 5.000 caracteres
vocal_genderVoz cantada enum any any, f, m

Envíalos dentro de params. Los archivos son ids de POST /api/v1/uploads. Ver la documentación

Más modelos