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 3 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 3 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 drie minuten zijn gratis — daarna draai je op creditpakketten die nooit verlopen, $0.08–$0.14 per minuut, afhankelijk van pakketgrootte.