> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sunoapi.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Vocal & Instrument Stem Separation

> Use Suno's official get‑stem API to split tracks created on our platform into clean vocal, accompaniment, or per‑instrument stems with state‑of‑the‑art source‑separation AI.

### Usage Guide

* Separate a platform‑generated mix into vocal, instrumental, and individual instrument components.
* Three processing modes are available:
  * `separate_vocal` — 2‑stem split (Vocals + Instrumental)
  * `split_stem`   — up to 12‑stem split
  * `split_stem_advanced` — advanced multi‑stem separation with specific instrument selection
* Ideal for karaoke creation, remixes, sample extraction, or detailed post‑production.
* Best results on professionally mixed AI tracks with clear vocal and instrumental layers.
* **Billing notice:** Each call consumes credits; **re‑calling the same track is charged again** (no server‑side caching).
* **Pricing:** Check current per‑call credit costs at [**https://sunoapi.org/billing**](https://sunoapi.org/billing).

### Separation Mode Details

| **Mode (<code>type</code>)** | **Stems Returned**                                                                                                                 | **Typical Use**                                             | **Credit Cost** |
| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | :-------------- |
| `separate_vocal` *(default)* | **2 stems** – Vocals + Instrumental                                                                                                | Quick vocal removal, karaoke, basic remixes                 | **10 Credits**  |
| `split_stem`                 | **Up to 12 stems** – Vocals, Backing Vocals, Drums, Bass, Guitar, Keyboard, Strings, Brass, Woodwinds, Percussion, Synth, FX/Other | Advanced mixing, remixing, sound design                     | **50 Credits**  |
| `split_stem_advanced`        | **Specified instrument stems** — extract specific instruments via `stemName`                                                       | Precise instrument extraction, professional post‑production | **20 Credits**  |

### Parameter Reference

| **Name**      | **Type** | **Required** | **Description**                                                                                                                                                                                                       |
| :------------ | :------- | :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `taskId`      | string   | Conditional  | Unique identifier of the music generation task. Should be the taskId returned by the "Generate Music" or "Extend Music" endpoint. **Required when using existing audio.**                                             |
| `audioUrl`    | string   | Conditional  | URL of the audio file uploaded by the user. Maximum file size: 20MB. **Required when using user-uploaded audio.** Cannot be used together with `audioId`.                                                             |
| `audioId`     | string   | Conditional  | Unique identifier of the specific audio track to process. This ID is returned in the callback data after music generation completes. **Required when using existing audio.** Cannot be used together with `audioUrl`. |
| `type`        | string   | Optional     | Separation type: `separate_vocal` (default), `split_stem`, or `split_stem_advanced`                                                                                                                                   |
| `stemName`    | string   | Conditional  | Only used when `type` is `split_stem_advanced`, specifies the name of the specific track/instrument to separate. Supported instruments include: Lead Vocal, Drum Kit, Piano, Guitar, Bass, Synth, Percussion, etc.    |
| `callBackUrl` | string   | Required     | URL for receiving vocal separation task completion updates                                                                                                                                                            |

### Developer Notes

* All returned audio-file URLs remain accessible for **14 days**.
* Separation quality depends on the complexity and mixing of the original track.
* `separate_vocal` returns **2 stems** — vocals + instrumental.
* `split_stem` returns **up to 12 independent stems** — vocals, backing vocals, drums, bass, guitar, keyboard, strings, brass, woodwinds, percussion, synth, FX/other.
* `split_stem_advanced` returns independent stems for specified instruments. Use the `stemName` parameter to specify the instrument name.
* **Billing:** Every request is charged. Re‑submitting the same track triggers **a new credit deduction** (no server‑side caching).


## OpenAPI

````yaml suno-api/suno-api.json POST /api/v1/vocal-removal/generate
openapi: 3.0.0
info:
  title: intro
  description: API documentation for audio generation services
  version: 1.0.0
  contact:
    name: Technical Support
    email: support@sunoapi.org
servers:
  - url: https://api.sunoapi.org
    description: API Server
security:
  - BearerAuth: []
tags:
  - name: Music Generation
    description: Endpoints for creating and managing music generation tasks
  - name: Lyrics Generation
    description: Endpoints for lyrics generation and management
  - name: WAV Conversion
    description: Endpoints for converting music to WAV format
  - name: Vocal Removal
    description: Endpoints for vocal removal from music tracks
  - name: Music Video Generation
    description: Endpoints for generating MP4 videos from music tracks
  - name: Account Management
    description: Endpoints for account and credits management
paths:
  /api/v1/vocal-removal/generate:
    post:
      summary: Separate Vocals from Music
      operationId: separate-vocals-from-music
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - callBackUrl
              oneOf:
                - title: Separate using existing audio
                  required:
                    - taskId
                    - audioId
                  properties:
                    taskId:
                      type: string
                      description: >-
                        Unique identifier of the music generation task. Should
                        be the taskId returned by the "Generate Music" or
                        "Extend Music" endpoint.
                      example: 5c79****be8e
                    audioId:
                      type: string
                      description: >-
                        Unique identifier of the specific audio track to
                        process. This ID is returned in the callback data after
                        music generation completes. Required when using existing
                        audio.
                      example: e231****-****-****-****-****8cadc7dc
                - title: Separate using user-uploaded audio
                  required:
                    - audioUrl
                  properties:
                    audioUrl:
                      type: string
                      format: uri
                      description: >-
                        URL of the audio file uploaded by the user. Maximum file
                        size: 20MB. Cannot be used together with audioId.
                      example: https://example.com/my-audio.mp3
              properties:
                audioId:
                  type: string
                  description: >-
                    Unique identifier of the specific audio track to process.
                    This ID is returned in the callback data after music
                    generation completes. Required when using existing audio.
                    Cannot be used together with audioUrl.
                  example: e231****-****-****-****-****8cadc7dc
                type:
                  type: string
                  description: >-
                    Separation type.

                    - `separate_vocal`: Separate vocals and accompaniment,
                    generating vocal and instrumental tracks

                    - `split_stem`: Separate various instrument sounds,
                    generating multiple instrument tracks

                    - `split_stem_advanced`: Advanced multi-stem separation with
                    specific instrument selection, generating more refined
                    instrument tracks
                  enum:
                    - separate_vocal
                    - split_stem
                    - split_stem_advanced
                  default: separate_vocal
                  example: separate_vocal
                stemName:
                  type: string
                  description: >-
                    Only used when type is split_stem_advanced. Specifies the
                    name of the specific track/instrument to separate.
                  enum:
                    - Lead Vocal
                    - Drum Kit
                    - Kick
                    - Snare
                    - Risers
                    - Bass
                    - Backing Vocals
                    - Piano
                    - Electric Guitar
                    - Percussion
                    - String Section
                    - Synth
                    - Acoustic Guitar
                    - Sound Effects
                    - Synth Pad
                    - Synth Bass
                    - Guitar
                    - Brass Section
                    - Organ
                    - Electronic Drum Kit
                    - Lead Electric Guitar
                    - Synth Keys
                    - Rhythm Electric Guitar
                    - Electric Piano
                    - Upright Bass
                    - Keyboards
                    - Distorted Electric Guitar
                    - Synth Strings
                    - Synth Lead
                    - Woodwinds
                    - Rhythm Acoustic Guitar
                    - Flute
                    - Harp
                    - Tambourine
                    - Trumpet
                    - Arpeggiator
                    - Accordion
                    - Fiddle
                    - Pedal Steel Guitar
                    - Synth Voice
                    - Violin
                    - Digital Piano
                    - Synth Brass
                    - Mandolin
                    - Choir
                    - Banjo
                    - Bells
                    - Clarinet
                    - Tenor Saxophone
                    - Trombone
                    - Shaker
                    - French Horn
                    - Glockenspiel
                    - Electric Bass
                    - Cello
                    - Timpani
                    - Harmonica
                    - Marimba
                    - Vibraphone
                    - Lap Steel Guitar
                    - Saxophone
                    - Orchestra
                    - Horns
                    - Cymbals
                    - Hand Clap
                    - Oboe
                    - Celesta
                    - Congas
                    - Drone
                    - Alto Saxophone
                    - Double Bass
                    - Ukulele
                    - Harpsichord
                    - Baritone Saxophone
                    - Xylophone
                    - Tuba
                    - Bass Guitar
                    - Whistle
                    - Lead Guitar
                    - Rhodes
                    - '808'
                    - Bongos
                    - Bassoon
                    - Cowbell
                    - Viola
                    - Sitar
                    - Steel Drums
                    - Piccolo
                    - Theremin
                    - Bagpipes
                    - Hi-Hat
                    - Music Box
                    - Melodica
                    - Tabla
                    - Koto
                    - Djembe
                    - Taiko
                    - Didgeridoo
                callBackUrl:
                  type: string
                  format: uri
                  description: >-
                    URL for receiving vocal separation task completion updates.
                    Required for all vocal separation requests.
                  example: https://api.example.com/callback
              x-apidog-orders:
                - audioId
                - type
                - stemName
                - callBackUrl
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          taskId:
                            type: string
                            description: Task ID for tracking task status
                            example: 5c79****be8e
        '500':
          $ref: '#/components/responses/Error'
      callbacks:
        vocalRemovalGenerated:
          '{$request.body#/callBackUrl}':
            post:
              description: |-
                System will call this callback when vocal removal is complete.

                ### separate_vocal type callback example
                ```json
                {
                  "code": 200,
                  "data": {
                    "task_id": "3e63b4cc88d52611159371f6af5571e7",
                    "vocal_removal_info": {
                      "instrumental_url": "https://file.aiquickdraw.com/s/d92a13bf-c6f4-4ade-bb47-f69738435528_Instrumental.mp3",
                      "origin_url": "",
                      "vocal_url": "https://file.aiquickdraw.com/s/3d7021c9-fa8b-4eda-91d1-3b9297ddb172_Vocals.mp3"
                    }
                  },
                  "msg": "vocal Removal generated successfully."
                }
                ```

                ### split_stem type callback example
                ```json
                {
                  "code": 200,
                  "data": {
                    "task_id": "e649edb7abfd759285bd41a47a634b10",
                    "vocal_removal_info": {
                      "origin_url": "",
                      "backing_vocals_url": "https://file.aiquickdraw.com/s/aadc51a3-4c88-4c8e-a4c8-e867c539673d_Backing_Vocals.mp3",
                      "bass_url": "https://file.aiquickdraw.com/s/a3c2da5a-b364-4422-adb5-2692b9c26d33_Bass.mp3",
                      "brass_url": "https://file.aiquickdraw.com/s/334b2d23-0c65-4a04-92c7-22f828afdd44_Brass.mp3",
                      "drums_url": "https://file.aiquickdraw.com/s/ac75c5ea-ac77-4ad2-b7d9-66e140b78e44_Drums.mp3",
                      "fx_url": "https://file.aiquickdraw.com/s/a8822c73-6629-4089-8f2a-d19f41f0007d_FX.mp3",
                      "guitar_url": "https://file.aiquickdraw.com/s/064dd08e-d5d2-4201-9058-c5c40fb695b4_Guitar.mp3",
                      "keyboard_url": "https://file.aiquickdraw.com/s/adc934e0-df7d-45da-8220-1dba160d74e0_Keyboard.mp3",
                      "percussion_url": "https://file.aiquickdraw.com/s/0f70884d-047c-41f1-a6d0-7044618b7dc6_Percussion.mp3",
                      "strings_url": "https://file.aiquickdraw.com/s/49829425-a5b0-424e-857a-75d4c63a426b_Strings.mp3",
                      "synth_url": "https://file.aiquickdraw.com/s/56b2d94a-eb92-4d21-bc43-3460de0c8348_Synth.mp3",
                      "vocal_url": "https://file.aiquickdraw.com/s/07420749-29a2-4054-9b62-e6a6f8b90ccb_Vocals.mp3",
                      "woodwinds_url": "https://file.aiquickdraw.com/s/d81545b1-6f94-4388-9785-1aaa6ecabb02_Woodwinds.mp3"
                    }
                  },
                  "msg": "vocal Removal generated successfully."
                }
                ```
              requestBody:
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        code:
                          type: integer
                          description: Status code
                          example: 200
                        msg:
                          type: string
                          description: Response message
                          example: vocal Removal generated successfully.
                        data:
                          type: object
                          properties:
                            task_id:
                              type: string
                              description: Task ID
                            vocal_removal_info:
                              type: object
                              properties:
                                instrumental_url:
                                  type: string
                                  description: >-
                                    Instrumental part audio URL (exists for
                                    separate_vocal type)
                                origin_url:
                                  type: string
                                  description: Original audio URL
                                vocal_url:
                                  type: string
                                  description: Vocal part audio URL
                                backing_vocals_url:
                                  type: string
                                  description: >-
                                    Backing vocals part audio URL (exists for
                                    split_stem type)
                                drums_url:
                                  type: string
                                  description: Drums part audio URL
                                bass_url:
                                  type: string
                                  description: Bass part audio URL
                                guitar_url:
                                  type: string
                                  description: Guitar part audio URL
                                keyboard_url:
                                  type: string
                                  description: >-
                                    Keyboard part audio URL (exists for
                                    split_stem type)
                                percussion_url:
                                  type: string
                                  description: >-
                                    Percussion part audio URL (exists for
                                    split_stem type)
                                strings_url:
                                  type: string
                                  description: >-
                                    Strings part audio URL (exists for
                                    split_stem type)
                                synth_url:
                                  type: string
                                  description: >-
                                    Synthesizer part audio URL (exists for
                                    split_stem type)
                                fx_url:
                                  type: string
                                  description: >-
                                    Effects part audio URL (exists for
                                    split_stem type)
                                brass_url:
                                  type: string
                                  description: >-
                                    Brass part audio URL (exists for split_stem
                                    type)
                                woodwinds_url:
                                  type: string
                                  description: >-
                                    Woodwinds part audio URL (exists for
                                    split_stem type)
              responses:
                '200':
                  description: Callback received successfully
              method: post
              type: path
            path: '{$request.body#/callBackUrl}'
components:
  schemas:
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          description: |-
            # Status Codes

            - ✅ 200 - Request successful
            - ⚠️ 400 - Invalid parameters
            - ⚠️ 401 - Unauthorized access
            - ⚠️ 404 - Invalid request method or path
            - ⚠️ 405 - Rate limit exceeded
            - ⚠️ 413 - Theme or prompt too long
            - ⚠️ 429 - Insufficient credits
            - ⚠️ 430 - Your call frequency is too high. Please try again later. 
            - ⚠️ 455 - System maintenance
            - ❌ 500 - Server error
          example: 200
          enum:
            - 200
            - 400
            - 401
            - 404
            - 405
            - 413
            - 429
            - 430
            - 455
            - 500
        msg:
          type: string
          description: Error message when code != 200
          example: success
  responses:
    Error:
      description: Server error
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        # 🔑 API Authentication


        All endpoints require authentication using Bearer Token.


        ## Get API Key


        1. Visit the [API Key Management Page](https://sunoapi.org/api-key) to
        obtain your API Key


        ## Usage


        Add to request headers:


        ```

        Authorization: Bearer YOUR_API_KEY

        ```


        > **⚠️ Note:**

        > - Keep your API Key secure and do not share it with others

        > - If you suspect your API Key has been compromised, reset it
        immediately from the management page

````