SDKs et intégrations, natifs pour votre stack.
Une seule API Stem Splitter dans sept SDKs officiels et quatre intégrations no-code — de npm install @aistemsplitter/sdk à un simple node n8n — avec une spec OpenAPI 3.1 et des packs de crédits sans expiration.
Choisissez le SDK qui correspond à votre stack
Soumettez un job, interrogez une fois, obtenez six stems
Douze lignes qui prouvent la surface. Soumettez une séparation, obtenez un job id, interrogez une fois, recevez vocals, drums, bass, guitar, piano et other — la même séparation htdemucs_ft exécutée dans chaque SDK. Facturé à la minute d’audio en entrée sur des packs de crédits sans expiration (0,08–0,14 $ par minute selon le volume).
# 1) Submit a split job
curl -X POST https://api.aistemsplitter.org/v1/audio/splits \
-H "Authorization: Bearer $AISTEMSPLITTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": { "type": "direct_url", "url": "https://example.com/song.mp3" },
"stemModel": "htdemucs_ft"
}'
# → { "id": "split_01J…", "status": "queued" }
# 2) Poll for completion
curl https://api.aistemsplitter.org/v1/audio/splits/split_01J… \
-H "Authorization: Bearer $AISTEMSPLITTER_API_KEY"
# → { "status": "succeeded", "stems": { "vocals": "...", ...x6 } }Même API, chemin no-code pour le reste de l’équipe
L’ingénieur est rarement le seul utilisateur. Déposez la même API Stem Splitter dans n8n, GitHub Actions, un conteneur ou un workflow Pipedream — pour que les ops, le contenu et CI tournent tous sur un seul fournisseur.
node communautaire n8n
Déclenchez depuis n’importe quoi, sortez six stems. Auto-hébergé ou n8n Cloud.
GitHub Action
Séparez des stems audio dans CI/CD, joignez-les automatiquement aux releases.
Image Docker / CLI
Un conteneur en une ligne pour les jobs batch et les pipelines locaux.
Questions que les développeurs posent avant d’installer
Which SDK should I install — Node, Python, or curl?
Pick the language your service already runs on. Node and Python ship typed clients with one-call helpers (waitForSplit, verify_signature) and full method autocomplete; curl works on the same REST endpoints if you're prototyping or scripting from a shell. The hosted API is identical across all 13 distribution channels — same job ids, same webhooks, same per-minute billing.
Do credits expire if I don't use them?
No. Credit packs never expire — purchase $6.99 / 50 minutes, $15 / 150 minutes, or $39.99 / 500 minutes and the balance stays on your account until you spend it. There is no monthly subscription, no rollover cap, and no auto-renewal. The first 10 minutes are free with no card required, charged at $0.08–$0.14 per minute depending on pack size.
Which model do you use, and can I name it in the request?
The default is htdemucs_ft (Demucs fine-tuned, 4-stem: vocals, drums, bass, other) — the same model variant the open-source community benchmarks at ~8.7 dB SDR. You can switch to htdemucs_6s for guitar and piano stems by passing model='htdemucs_6s' on submit. Models are named explicitly in every SDK so output quality is comparable to local Demucs runs.
Can I self-host the SDK or the inference?
The SDK clients are MIT-licensed and ship to npm, JSR, PyPI, Maven Central, Packagist, LuaRocks, SPM, and CocoaPods — fork or vendor them as you like. Inference itself runs on our managed GPUs against the hosted API at api.aistemsplitter.com — there is no on-prem inference image in v1, but the GHCR Docker image wraps the SDK for self-hosted orchestration.
What's the rate limit, and how do I handle large files?
Concurrent jobs and per-minute request caps live on /developers/api with the current numbers (they age, so they aren't pinned here). For large uploads, call presignUpload (Node) / presign_upload (Python) to get a direct-to-storage URL — the SDK handles retries with exponential backoff out of the box. Files up to 50 MB upload directly; larger files use multipart presigned URLs.
How do I receive the result without polling forever?
Pass webhook_url on createSplit. When the job finishes, the API POSTs an HMAC-SHA256-signed event to your URL with the stem download links inline. Verify the signature with one SDK call (verifyWebhook in Node, verify_signature in Python). The Webhooks section in each per-language quickstart shows runnable Express, Hono, FastAPI, and Flask handlers.
Quel SDK dois-je installer — Node, Python ou curl ?
Choisissez le langage sur lequel votre service tourne déjà. Node et Python livrent des clients typés avec des helpers en un appel (waitForSplit, verify_signature) et l’autocomplétion complète des méthodes ; curl fonctionne sur les mêmes endpoints REST si vous prototypez ou scriptez depuis un shell. L’API hébergée est identique sur les 13 canaux de distribution — mêmes job ids, mêmes webhooks, même facturation à la minute.
Les crédits expirent-ils si je ne les utilise pas ?
Non. Les packs de crédits n’expirent jamais — achetez 6,99 $ / 50 minutes, 15 $ / 150 minutes ou 39,99 $ / 500 minutes, et le solde reste sur votre compte jusqu’à utilisation. Pas d’abonnement mensuel, pas de plafond de report, pas de renouvellement automatique. Les 10 premières minutes sont gratuites sans carte requise, facturées ensuite à 0,08–0,14 $ par minute selon la taille du pack.
Quel modèle utilisez-vous, et puis-je le nommer dans la requête ?
Par défaut : htdemucs_ft (Demucs fine-tuned, 4 stems : vocals, drums, bass, other) — la même variante de modèle que la communauté open source benchmarke à environ 8,7 dB SDR. Vous pouvez passer à htdemucs_6s pour les stems guitar et piano en envoyant model='htdemucs_6s' à la soumission. Les modèles sont nommés explicitement dans chaque SDK afin que la qualité de sortie soit comparable aux exécutions Demucs locales.
Puis-je auto-héberger le SDK ou l’inférence ?
Les clients SDK sont sous licence MIT et publiés sur npm, JSR, PyPI, Maven Central, Packagist, LuaRocks, SPM et CocoaPods — forkez-les ou vendorisez-les comme vous voulez. L’inférence elle-même tourne sur nos GPUs managés via l’API hébergée api.aistemsplitter.com — il n’y a pas d’image d’inférence on-prem en v1, mais l’image Docker GHCR encapsule le SDK pour une orchestration auto-hébergée.
Quelle est la limite de débit, et comment gérer les gros fichiers ?
Les jobs concurrents et plafonds de requêtes par minute sont indiqués sur /developers/api avec les chiffres actuels (ils évoluent, donc ils ne sont pas figés ici). Pour les gros uploads, appelez presignUpload (Node) / presign_upload (Python) afin d’obtenir une URL direct-to-storage — le SDK gère les retries avec exponential backoff par défaut. Les fichiers jusqu’à 50 MB s’uploadent directement ; les fichiers plus grands utilisent des URLs multipart présignées.
Comment recevoir le résultat sans poller indéfiniment ?
Passez webhook_url sur createSplit. Quand le job se termine, l’API POSTe vers votre URL un événement signé HMAC-SHA256 avec les liens de téléchargement des stems inline. Vérifiez la signature avec un seul appel SDK (verifyWebhook en Node, verify_signature en Python). La section Webhooks de chaque quickstart par langage montre des handlers Express, Hono, FastAPI et Flask exécutables.
Construisez avec la séparation de stems dès aujourd’hui.
Créez une clé, collez-la dans le Quick Start et récupérez des stems séparés en moins d’une minute. Dix minutes gratuites sont offertes — le reste utilise des packs de crédits sans expiration, 0,08–0,14 $ par minute selon la taille du pack.