Will credits be deducted if a task fails?
No. Credits are charged only when task processing succeeds and results are available.
API Doc
Designed for source separation and vocal isolation, with async task creation + status querying. Suitable for karaoke, remixing, and practice accompaniment scenarios.
AudioSeparation is an API for source separation and vocal isolation. It can intelligently split tracks such as lead vocals, backing vocals, and accompaniment from songs, making it suitable for karaoke production, remixing, and practice accompaniment use cases.
All API requests require api-key using an API key. Include your API key in the request header:
API Host: https://audiocleaner.ai/
api-key: YOUR_API_KEYThis audio separation service is billed by task audio duration, rounded up to whole minutes.
Each task reports `duration` (seconds), and the backend automatically calculates billable minutes.
| Item | Description |
|---|---|
| Billing Unit | Minutes (converted from seconds and rounded up) |
| Deduction Rule | File duration divided by 60, rounded up |
| Examples | 1-60s => 1 min; 61-120s => 2 min; 121-180s => 3 min |
| When Billed | After task creation succeeds and enters processing (subject to backend policy) |
| Actual Price | Based on backend pricing and final billing results |
POST /audio/api/v1/api-keys/separation/task/create| Header | Type | Required | Description |
|---|---|---|---|
| Content-Type | string | Yes | application/json |
| api-key | string | Yes | YOUR_API_KEY |
| Parameter | Type | Required | Description |
|---|---|---|---|
| model_type | int | Yes | Model type |
| inputurl | string | Yes | Publicly accessible URL of uploaded audio/video file |
| model_type | model_name | display_name | support_stems | Notes |
|---|---|---|---|---|
| 350 | Spliter Vocals Model V2 | MelBandRoformer | vocals | Recommended |
| 490 | Spliter Vocals Model V3 | Spliter Vocals Model V3 | lead_vocals, backing_vocals, other | Premium (is_new_add_model) |
| 340 | Spliter Drums Model V1 | HTDemucs v4 (FT Drums) | drums | Recommended |
| 360 | Spliter Bass Model V1 | HTDemucs4 FT Bass | bass | Recommended |
| 380 | Spliter piano Model V1 | HTDemucs4_6stems | piano | Recommended |
| 390 | Spliter guitar Model V1 | HTDemucs4_6stems | guitar | Recommended |
| 491 | Spliter Strings V1 | Spliter Strings V1 | strings | Premium (is_new_add_model) |
| 492 | Spliter Wind V1 | Spliter Wind V1 | wind | Premium (is_new_add_model) |
| 493 | Spliter Synthesizer V1 | Spliter Synthesizer V1 | synthesizer | Premium (is_new_add_model) |
| 501 | Spliter All Model | HTDemucs (Standard) | bass, drums, vocals, other | Recommended |
| 320 | Spliter All Model | HTDemucs v4 (6-Stem) | bass, drums, vocals, piano, guitar, other | Recommended |
{
"model_type": 350,
"inputurl": "https://resource.audiocleaner.ai/acweb/audio/audio_splitter.mp4"
}{
"code": 100000,
"data": {
"job_id": "33b6251d7ba94edea8361c318736e746"
},
"message": "Request Success"
}{
"code": 100000,
"data": {
"job_id": "33b6251d7ba94edea8361c318736e746"
},
"message": "Request Success"
}{
"code": 100100,
"data": {},
"message": "Insufficient credit balance"
}{
"code": 101002,
"data": {},
"message": "Invalid API key"
}{
"code": 101003,
"data": {},
"message": "API key rate limit exceeded"
}{
"code": 101004,
"data": {},
"message": "API key concurrent request limit exceeded"
}{
"code": 101005,
"data": {},
"message": "Your account is suspended. Status cannot be modified. Please contact the administrator"
}{
"code": 101006,
"data": {},
"message": "API key not enabled"
}curl --location --request POST 'https://audiocleaner.ai/audio/api/v1/api-keys/separation/task/create' \
--header 'Content-Type: application/json' \
--header 'api-key: YOUR_API_KEY' \
--data-raw '{
"model_type": 350,
"inputurl": "https://resource.audiocleaner.ai/acweb/audio/audio_splitter.mp4"
}'POST /audio/api/v1/api-keys/separation/task/get| Header | Type | Required | Description |
|---|---|---|---|
| Content-Type | string | Yes | application/json |
| api_key | string | Yes | YOUR_API_KEY |
| Parameter | Type | Required | Description |
|---|---|---|---|
| job_id | string | Yes | job_id returned when creating the task |
curl --location --request POST \
'https://audiocleaner.ai/audio/api/v1/api-keys/separation/task/get' \
--header 'Content-Type: application/json' \
--header 'api-key: YOUR_API_KEY' \
--data-raw '{
"job_id": "YOUR_JOB_ID"
}'| Field | Type | Description |
|---|---|---|
| code | number | Response code indicating request status |
| data | object | Main response payload; fields vary by scenario |
| message | string | Human-readable description for this request result |
| data.status | string | Task status: waiting / success / failed, etc. |
| data.file_type | string | File type, e.g. audio |
| data.video_url | string | Original audio/video file URL |
| data.output | object | Dynamic object: keys follow selected model support_stems; not fixed |
| data.output.* | string | Result URLs per stem, e.g. vocals / drums / bass / piano / guitar / other / lead_vocals / backing_vocals / strings / wind / synthesizer |
| data.zip_url | string | ZIP download URL for separation results |
| model_type | Main output Keys (standard stems) |
|---|---|
| 350 | vocals |
| 490 | lead_vocals, backing_vocals, other |
| 340 | drums |
| 360 | bass |
| 380 | piano |
| 390 | guitar |
| 491 | strings |
| 492 | wind |
| 493 | synthesizer |
| 501 | bass, drums, vocals, other |
| 320 | bass, drums, vocals, piano, guitar, other |
| Code | Meaning |
|---|---|
| 100000 | Success |
| 100100 | Insufficient credit balance |
| 101002 | Invalid API key |
| 101003 | API key rate limit exceeded |
| 101004 | API key concurrent request limit exceeded |
| 101008 | Task not found |
{
"code": 100000,
"data": {
"status": "waiting/success/failed",
"file_type": "audio",
"video_url": "https://resource.audiocleaner.ai/paid/source-file/202604/14/1776146445_before.wav",
"output": {
"vocals": "https://resource.audiocleaner.ai/paid/output/result/202604/14/1776146482_before_vocals.wav",
"other": "https://resource.audiocleaner.ai/paid/output/result/202604/14/1776146483_before_other.wav"
},
"zip_url": "https://resource.audiocleaner.ai/paid/output/result/202604/14/1776146484_before.zip"
},
"message": "Request Success"
}No. Credits are charged only when task processing succeeds and results are available.
Yes. You can control output types through `separation_type`, such as vocal removal (accompaniment only) or extracting vocal stems as well.
Depending on backend risk-control policies, some requests may require a risk-control/captcha token.