---
title: "Clean voice from background music for multiple files"
method: POST
path: "/api/v1/split/batch/demuser/"
tags: ["Batch Stem Separation"]
---

# Clean voice from background music for multiple files

`POST /api/v1/split/batch/demuser/`

Batch version of /split/demuser/. Accepts a list of split parameters and returns results for each item.
    Each item is processed independently - if one fails, others will still be processed.
    Results are returned in the same order as input items.

    Each result contains either:
    - success: {"status": "success", "task_id": "...", "source_id": "..."}
    - error: {"status": "error", "error": "...", "code": "...", "source_id": "..."}

## Request body

- BatchDemuserSplitParameters
  - `items` DemuserSplitParameters[], required — List of split parameters to process.
    - `source_id` string, uuid4, required — ID of the source file to be processed.
    - `presets` DemuserSplitterPresetsV1, required
      - `splitter` 'andromeda' | 'perseus' | 'orion' | 'phoenix' | 'lyra' | 'lynx'
      - `dereverb_enabled` boolean — Enabling dereverb removes echo from the audio for clarity, which may slightly alter the voice. Disabling dereverb preserves the natural echo of the recording for authenticity. Only for {'vocals', 'voice'} stems.
      - `encoder_format` 'mp3' | 'wav' | 'flac' | 'aac' | 'ogg'
      - `stem` 'music', required — Stem to extract. Only 'music' stem is supported.
    - `idempotency_key` string, uuid4, nullable — Unique uuid4 key to ensure idempotent requests. Prevents duplicate task execution with the same parameters. Can be reused until the task starts. Once processing begins, reusing this key will return an error.

## Response `200`

OK

- BatchTasksResponse
  - `results` union[], required — List of task start results in the same order as input parameters.
    - union
      - SuccessfulTaskStart
        - `status` 'success'
        - `task_id` string, required — ID of the created split task.
        - `source_id` string, required — Source file ID.
      - FailedTaskStart
        - `status` 'error'
        - `error` string, required — Error message describing why the task failed to start.
        - `code` union, required — Error code.
          - 'idempotency_key_used' | 'internal_error'
          - 'exceeded_duration' | 'batch_not_avaliable' | 'max_duration' | 'exceeded_size'
        - `source_id` string, required — Source file ID.

## Other responses

- `400` — Bad Request
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/lalal/apis/lalal-ai-api.md) · [All operations](https://skmtc.net/lalal/apis/lalal-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lalal/lalal-ai-api/revisions/ebb545e26e94/schema)
