L'API publique est disponible à l'adresse suivante :
https://api.aistemsplitter.org/v1Les 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 :
curl -sS "$BASE_URL/v1/credits" \
-H "Authorization: Bearer $AISTEMSPLITTER_API_KEY"Créer une séparation depuis une Direct URL
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 :
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
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 :
{
"event": "audio.split.completed",
"data": {
"id": "split_123",
"status": "succeeded"
}
}Vérifiez AIStemSplitter-Signature avec le secret de signature webhook :
AIStemSplitter-Signature: t=1760000000,v1=<hex-hmac>L'entrée HMAC est :
<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
| Code | HTTP | Signification |
|---|---|---|
UNAUTHORIZED | 401 | Clé API manquante ou invalide |
INSUFFICIENT_CREDITS | 402 | Crédits insuffisants |
VALIDATION_ERROR | 422 | Corps de requête ou source audio invalide |
RATE_LIMITED | 429 | La clé API a dépassé sa limite par minute |
SERVER_ERROR | 500 | Erreur interne du service |