# POST /v1/music/stem-separation (ElevenLabs API)
Base URL: https://api.elevenlabs.io
Auth: xi-api-key: <ELEVENLABS_API_KEY>
Last verified: 2026-09-03

> Stem Separation

## Critical Gotchas
* Authentication uses the non-standard `xi-api-key` header, not `Authorization: Bearer`. Sending a Bearer token returns HTTP 401.
* Text-to-speech responses are raw binary audio, not JSON. Write the body to a file (`--output speech.mp3`) rather than parsing it.

## cURL
curl -X POST 'https://api.elevenlabs.io/v1/music/stem-separation?output_format=mp3_22050_32' \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -F 'file=@sample.bin'

## Parameters
| Name | In | Type | Required | Description |
| :--- | :--- | :--- | :--- | :--- |
| file | body | string | Yes | The audio file to separate into stems. |
| output_format | query | string | No | Output format of the generated audio.... |
| stem_variation_id | body | string | No | The id of the stem variation to use. |

## Response (200 OK)
"Binary ZIP file containing files like: vocals.mp3, drums.mp3, bass.mp3, guitar.mp3, piano.mp3, other.mp3"

---
Need an API key? Get one at https://elevenlabs.io/app/sign-up