Suno

SunoAudioà la requête18 % d'économie par rapport au prix officiel100.00%

Suno music generation and complete studio workflow: cover, extend, stems, vocals, mastering, editing, MIDI, MV and exports.

Prix

$0.07/ appel

Endpoint

/audio

Mode de livraison

Cycle de vie d'une tâche asynchrone

Disponibilité

Disponible

Documentation de l'API

Configurer et copier la requête

Choisissez les options que ce modèle accepte. Le code ci-dessous se met à jour selon vos choix.

Pas à pas dans la documentation
POSThttps://www.aisplice.store/v1/music/generationsBearer API keyTâche asynchrone

OptionsSeules les options publiées pour ce modèle sont affichées.

# 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 .
  1. 1Soumettre la tâche
  2. 2Interroger le statut
  3. 3Récupérer le contenu

Référence des paramètres

prompt
stringfacultatif

Instruction décrivant le résultat souhaité.

Cycle de la réponse

Statut des tâches, états finaux et exemples de réponses de résultat.

Soumettre
{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "object": "music.task",
  "model": "Suno",
  "status": "queued"
}

En attente

queued · submitted · in_progress · processing

Succès

completed · succeeded · success

Échec

failed · failure · cancelled · canceled

Erreurs et production

Règles de nouvelle tentative, idempotence et checklist minimale de production.

400 / 422

Corrigez les champs de la requête ou l'option non prise en charge ; ne réessayez pas sans modification.

401

Vérifiez que la clé API est présente, active et envoyée comme jeton Bearer.

402

Le solde du compte est insuffisant.

409

L'Idempotency-Key est en cours de traitement ou a été réutilisée avec un autre corps.

429

Attendez le délai indiqué par Retry-After avant de réessayer.

5xx

Réessayez avec un backoff exponentiel en conservant l'Idempotency-Key d'origine.

  • Gardez les clés API sur votre serveur pour les applications mobiles et navigateur publiques.
  • Définissez une Idempotency-Key unique pour chaque opération asynchrone facturable.
  • Enregistrez task_id pour que l'interrogation puisse reprendre après un redémarrage.
  • Utilisez un délai d'expiration pour chaque requête HTTP et indiquez l'ID de requête dans vos demandes au support.
  • Lisez les métadonnées des modèles en direct au lieu de coder en dur les prix et les options prises en charge.

Prix et paliers

18 % d'économie par rapport au prix officiel

Prix par requête

$0.07/ appel

$0.085

Le prix affiché ici est exactement celui qui vous est facturé — les appels échoués sont remboursés automatiquement.