Die Public API ist unter folgender URL verfügbar:
https://api.aistemsplitter.org/v1Die folgenden Beispiele gehen von BASE_URL=https://api.aistemsplitter.org aus.
Erstelle einen API-Key unter Einstellungen → Entwickler. Speichere den API-Key und das Webhook-Signatur-Secret sofort, wenn sie angezeigt werden, da sie nur einmal sichtbar sind.
API-Assets
Authentifizierung
Sende deinen Key als Bearer Token:
curl -sS "$BASE_URL/v1/credits" \
-H "Authorization: Bearer $AISTEMSPLITTER_API_KEY"Split aus einer Direct URL erstellen
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"
}'Upload-Ablauf
Reserviere zuerst einen 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
}'Lade die Datei mit den zurückgegebenen uploadHeaders zur zurückgegebenen
uploadUrl hoch und erstelle anschließend den Split mit input.type auf
uploaded_file.
Status abfragen
curl -sS "$BASE_URL/v1/audio/splits/$SPLIT_ID" \
-H "Authorization: Bearer $AISTEMSPLITTER_API_KEY"Statuswerte sind queued, processing, succeeded und failed. Erfolgreiche
Jobs enthalten nicht leere Stem-URLs.
Webhooks
Wenn webhookUrl angegeben ist, sendet AIStemSplitter ein finales Event:
{
"event": "audio.split.completed",
"data": {
"id": "split_123",
"status": "succeeded"
}
}Prüfe AIStemSplitter-Signature mit dem Webhook-Signatur-Secret:
AIStemSplitter-Signature: t=1760000000,v1=<hex-hmac>Die HMAC-Eingabe ist:
<timestamp>.<raw-json-body>Verwende SHA-256 HMAC und lehne veraltete Zeitstempel in deinem Empfänger ab.
Credits
Ein Credit entspricht einer Sekunde Quell-Audio. GET /credits gibt das aktuelle
Guthaben in Sekunden zurück.
Fehlercodes
| Code | HTTP | Bedeutung |
|---|---|---|
UNAUTHORIZED | 401 | API-Key fehlt oder ist ungültig |
INSUFFICIENT_CREDITS | 402 | Nicht genügend Credits |
VALIDATION_ERROR | 422 | Request Body oder Audioquelle ist ungültig |
RATE_LIMITED | 429 | API-Key hat sein Minutenlimit überschritten |
SERVER_ERROR | 500 | Interner Servicefehler |