Tous les systèmes opérationnels·v1 · stable

API publique

Créez des tâches de séparation de stems audio avec des clés API, des uploads, du polling et des webhooks signés.

URL de base
https://api.aistemsplitter.org/v1
Authentification
Bearer · clé API
Limite de débit
Par clé, par minute
Unité de crédit
1 crédit = 1 seconde audio

L'API publique est disponible à l'adresse suivante :

txt
https://api.aistemsplitter.org/v1

Les exemples ci-dessous supposent BASE_URL=https://api.aistemsplitter.org.

Créez une clé API depuis Paramètres → Développeur. Enregistrez la clé API et le secret de signature webhook dès leur affichage, car ils ne sont visibles qu'une seule fois.

Ressources API

Authentification

Envoyez votre clé comme bearer token :

txt
curl -sS "$BASE_URL/v1/credits" \
  -H "Authorization: Bearer $AISTEMSPLITTER_API_KEY"

Créer une séparation depuis une Direct URL

txt
curl -sS -X POST "$BASE_URL/v1/audio/splits" \
  -H "Authorization: Bearer $AISTEMSPLITTER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: demo-001" \
  -d '{
    "input": {
      "type": "direct_url",
      "url": "https://example.com/song.mp3"
    },
    "stemModel": "6s",
    "webhookUrl": "https://example.com/webhooks/aistemsplitter"
  }'

Flux d'upload

Réservez d'abord un upload :

txt
curl -sS -X POST "$BASE_URL/v1/audio/uploads" \
  -H "Authorization: Bearer $AISTEMSPLITTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "song.wav",
    "contentType": "audio/wav",
    "contentLength": 23812033
  }'

Uploadez le fichier vers l'uploadUrl retournée avec les uploadHeaders retournés, puis créez la séparation avec input.type défini sur uploaded_file.

Consulter le statut

txt
curl -sS "$BASE_URL/v1/audio/splits/$SPLIT_ID" \
  -H "Authorization: Bearer $AISTEMSPLITTER_API_KEY"

Les statuts sont queued, processing, succeeded et failed. Les tâches réussies incluent des URL de stems non vides.

Webhooks

Lorsque webhookUrl est fourni, AIStemSplitter envoie un événement terminal :

txt
{
  "event": "audio.split.completed",
  "data": {
    "id": "split_123",
    "status": "succeeded"
  }
}

Vérifiez AIStemSplitter-Signature avec le secret de signature webhook :

txt
AIStemSplitter-Signature: t=1760000000,v1=<hex-hmac>

L'entrée HMAC est :

txt
<timestamp>.<raw-json-body>

Utilisez HMAC SHA-256 et rejetez les timestamps trop anciens dans votre récepteur.

Crédits

Un crédit correspond à une seconde d'audio source. GET /credits renvoie le solde actuel en secondes.

Codes d'erreur

CodeHTTPSignification
UNAUTHORIZED401Clé API manquante ou invalide
INSUFFICIENT_CREDITS402Crédits insuffisants
VALIDATION_ERROR422Corps de requête ou source audio invalide
RATE_LIMITED429La clé API a dépassé sa limite par minute
SERVER_ERROR500Erreur interne du service

Prêt à livrer avec AI Stem Splitter ?

Générez une clé dans votre tableau de bord, ajoutez une requête curl et commencez à séparer des stems depuis vos propres apps en quelques minutes.