SDK's en integraties, native voor je stack.
Eén Stem Splitter-API in zeven first-party SDK's en vier no-code integraties — van npm install @aistemsplitter/sdk tot één n8n-node — ondersteund door een OpenAPI 3.1-specificatie en creditpakketten die nooit verlopen.
Kies de SDK die bij je stack past
Dien een job in, poll één keer, krijg zes stems
Twaalf regels die het API-oppervlak laten zien. Dien een split in, krijg een job-id, poll één keer, ontvang vocals, drums, bass, guitar, piano en other — dezelfde htdemucs_ft-scheiding die in elke SDK draait. Gefactureerd per minuut inputaudio tegen creditpakketten die nooit verlopen ($0.08–$0.14 per minuut, afhankelijk van 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 } }Dezelfde API, een no-code pad voor de rest van het team
De engineer is zelden de enige gebruiker. Zet dezelfde Stem Splitter-API in n8n, GitHub Actions, een container of een Pipedream-workflow — zodat ops, content en CI allemaal op één vendor draaien.
n8n community node
Trigger vanuit elke bron en lever zes stems op. Self-host of n8n Cloud.
GitHub Action
Splits audio in stems in CI/CD en voeg automatisch toe aan releases.
Vragen die developers stellen voordat ze installeren
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.
Welke SDK moet ik installeren — Node, Python of curl?
Kies de taal waarop je service al draait. Node en Python leveren typed clients met helpers in één call (waitForSplit, verify_signature) en volledige methode-autocomplete; curl werkt op dezelfde REST-endpoints als je prototypeert of vanuit een shell script. De hosted API is identiek over alle 13 distributiekanalen — dezelfde job-id's, dezelfde webhooks, dezelfde facturering per minuut.
Verlopen credits als ik ze niet gebruik?
Nee. Creditpakketten verlopen nooit — koop $6.99 / 50 minuten, $15 / 150 minuten of $39.99 / 500 minuten en het saldo blijft op je account totdat je het besteedt. Er is geen maandabonnement, geen rolloverlimiet en geen automatische verlenging. De eerste 10 minuten zijn gratis zonder kaart, gefactureerd tegen $0.08–$0.14 per minuut, afhankelijk van pakketgrootte.
Welk model gebruiken jullie, en kan ik het in de request benoemen?
De default is htdemucs_ft (Demucs fine-tuned, 4-stem: vocals, drums, bass, other) — dezelfde modelvariant die de open-source community benchmarkt op ongeveer 8.7 dB SDR. Je kunt overschakelen naar htdemucs_6s voor guitar- en piano-stems door model='htdemucs_6s' mee te geven bij submit. Modellen worden expliciet benoemd in elke SDK, zodat outputkwaliteit vergelijkbaar is met lokale Demucs-runs.
Kan ik de SDK of de inference self-hosten?
De SDK-clients hebben een MIT-licentie en worden gepubliceerd naar npm, JSR, PyPI, Maven Central, Packagist, LuaRocks, SPM en CocoaPods — fork of vendor ze zoals je wilt. De inference zelf draait op onze managed GPU's tegen de hosted API op api.aistemsplitter.com — er is geen on-prem inference-image in v1, maar de GHCR Docker-image wrapt de SDK voor self-hosted orchestration.
Wat is de rate limit, en hoe verwerk ik grote bestanden?
Concurrent jobs en requestlimieten per minuut staan op /developers/api met de actuele cijfers (ze veranderen, dus we pinnen ze hier niet). Voor grote uploads roep je presignUpload (Node) / presign_upload (Python) aan om een direct-to-storage URL te krijgen — de SDK handelt retries met exponential backoff standaard af. Bestanden tot 50 MB uploaden direct; grotere bestanden gebruiken multipart presigned URL's.
Hoe ontvang ik het resultaat zonder eindeloos te pollen?
Geef webhook_url mee op createSplit. Wanneer de job klaar is, POST de API een HMAC-SHA256-signed event naar je URL met de stem-downloadlinks inline. Verifieer de signature met één SDK-call (verifyWebhook in Node, verify_signature in Python). De Webhooks-sectie in elke quickstart per taal toont runnable Express-, Hono-, FastAPI- en Flask-handlers.
Bouw vandaag nog met Stem Splitter.
Maak een sleutel, plak die in de Quick Start en krijg binnen een minuut gescheiden stems terug. De eerste tien minuten zijn gratis — daarna draai je op creditpakketten die nooit verlopen, $0.08–$0.14 per minuut, afhankelijk van pakketgrootte.