Suno
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.
https://www.aisplice.store/v1/music/generationsBearer API keyTâche asynchroneOptionsSeules 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 .- 1Soumettre la tâche
- 2Interroger le statut
- 3Récupérer le contenu
Référence des paramètres
promptInstruction 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.
Cycle de la réponse
Statut des tâches, états finaux et exemples de réponses de résultat.
{
"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.
Erreurs et production
Règles de nouvelle tentative, idempotence et checklist minimale de production.
400 / 422Corrigez les champs de la requête ou l'option non prise en charge ; ne réessayez pas sans modification.
401Vérifiez que la clé API est présente, active et envoyée comme jeton Bearer.
402Le solde du compte est insuffisant.
409L'Idempotency-Key est en cours de traitement ou a été réutilisée avec un autre corps.
429Attendez le délai indiqué par Retry-After avant de réessayer.
5xxRé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 officielPrix 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.