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

# Suno API: Vocal Separation

> Separate clean vocal, accompaniment, or per‑instrument stems from a suno music track.

### Important Notes

* Requires both `task_id` and `suno_id` from a previously generated Suno music task
* Different mode affect the return of task results
* `mode` controls which stem you want: `vocal` or `instrumental`
  * `vocal`: 2 stems - Vocals + Instrumental
  * `instrumental`: Up to 12 stems – Vocals, Backing Vocals, Drums, Bass, Guitar, Keyboard, Strings, Brass, Woodwinds,
    Percussion, Synth, FX/Other

### Vocal Separation

Separate vocals or instrumentals from an existing Suno music result.

<CodeGroup>
  ```json vocal stem theme={null} theme={null}
  {
      "model": "suno/vocal-separatio",
      "callback_url": "",
      "input": {
          "task_id": "task_12345678",
          "suno_id": "suno_abc123",
          "mode": "vocal"
      }
  }
  ```

  ```json instrumental stem theme={null} theme={null}
  {
      "model": "suno/vocal-separatio",
      "callback_url": "",
      "input": {
          "task_id": "task_12345678",
          "suno_id": "suno_abc123",
          "mode": "instrumental"
      }
  }
  ```
</CodeGroup>

### Related Resources

Existing Suno music tracks can originate from any of the following endpoints.

<CardGroup cols={2}>
  <Card title="Generate Music" icon="music" href="/suno-api/generate-music"> Create songs from text prompts with diverse
  styles. </Card>
  <Card title="Extend Music" icon="forward" href="/suno-api/extend-music"> Continue and expand existing music
  seamlessly. </Card>
  <Card title="Extend Upload" icon="upload" href="/suno-api/extend-music-upload"> Upload audio to extend and refine
  compositions. </Card>
  <Card title="Music Cover" icon="retweet" href="/suno-api/cover-music"> Recreate songs in new styles or voices. </Card>
</CardGroup>

### Get Task Result

After submitting a task, use the unified query endpoint to check progress and retrieve results:

<Card title="Get Vocal Separation Info" icon="magnifying-glass" href="/suno-api/vocal-separation-task-info">
  Learn how to query vocal separation task status and retrieve generation results
</Card>


## OpenAPI

````yaml suno-api/vocal-separation.json post /api/v1/client/job/CreateTask
openapi: 3.0.0
info:
  title: Crun Suno Vocal Separation API
  description: crun.ai Suno Vocal Separation API Documentation
  version: 1.0.0
  contact:
    name: Technical Support
    email: support@crun.ai
servers:
  - url: https://api.crun.ai
    description: API Server
security:
  - ApiKeyAuth: []
paths:
  /api/v1/client/job/CreateTask:
    post:
      summary: Suno vocal separation
      operationId: suno/vocal-separatio
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              properties:
                model:
                  type: string
                  enum:
                    - suno/vocal-separatio
                  description: |-
                    The model name to use for generation. Required field.

                    - Must be `suno/vocal-separatio` for this endpoint
                callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. Callback URL for receiving task completion
                    notifications.


                    - System will POST task status and results to this URL when
                    generation completes

                    - Callback payloads structure is consistent with the `data`
                    object returned by the task status query

                    - Your callback endpoint should accept POST requests with
                    JSON payload containing results

                    - It returns an HTTP 200 status code upon successful receipt
                  example: https://your-domain.com/api/callback
                input:
                  $ref: '#/components/schemas/SunoVocalSeparationInput'
            example:
              model: suno/vocal-separatio
              callback_url: https://your-domain.com/api/callback
              input:
                task_id: task_12345678
                suno_id: suno_abc123
                mode: vocal
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          task_id:
                            type: string
                            description: >-
                              Task ID, can be used with Get Task Details
                              endpoint to query task status
                            example: task_12345678
              example:
                code: 200
                message: success
                data:
                  task_id: task_12345678
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - type: object
                    properties:
                      errors:
                        type: array
                        description: Detailed validation error messages
                        items:
                          type: string
                        example:
                          - specific error field message
              example:
                code: 422
                message: Missing Params or Type Error
                errors:
                  - specific error field message
        '500':
          $ref: '#/components/responses/Error'
components:
  schemas:
    SunoVocalSeparationInput:
      type: object
      description: >-
        Input parameters for separating vocals and instrumentals.


        Rules:

        - `task_id` is required and must reference a completed Suno music task.

        - `suno_id` is required and must reference the music item within that
        task.

        - `mode` defaults to `vocal`.
      properties:
        task_id:
          type: string
          description: Task ID of the music generation task.
          example: task_12345678
        suno_id:
          type: string
          description: Suno song ID.
          example: suno_abc123
        mode:
          type: string
          enum:
            - vocal
            - instrumental
          description: >-
            Separation mode, different mode affect the return of task results.


            - **vocal**: Extract the vocals + instrumental stem.

            - **instrumental**: Extract the up to 12 stems – Vocals, Backing
            Vocals, Drums, Bass, Guitar, Keyboard, Strings, Brass, Woodwinds,
            Percussion, Synth, FX/Other
          default: vocal
          example: vocal
      required:
        - task_id
        - suno_id
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          enum:
            - 200
            - 401
            - 402
            - 404
            - 422
            - 429
            - 455
            - 500
            - 501
            - 505
          description: >-
            Response status code


            - **200**: Success - Request has been processed successfully

            - **401**: Unauthorized - Authentication credentials are missing or
            invalid

            - **402**: Insufficient Credits - Account does not have enough
            credits to perform the operation

            - **404**: Not Found - The requested resource or endpoint does not
            exist

            - **422**: Validation Error - The request parameters failed
            validation checks

            - **429**: Rate Limited - Request limit has been exceeded for this
            resource

            - **455**: Service Unavailable - System is currently undergoing
            maintenance

            - **500**: Server Error - An unexpected error occurred while
            processing the request

            - **501**: Generation Failed - Content generation task failed

            - **505**: Feature Disabled - The requested feature is currently
            disabled
        message:
          type: string
          description: Response message, error description when failed
          example: success
  responses:
    Error:
      description: Server Error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        All APIs require authentication via API Key.


        Get API Key:

        1. Visit [API Key Management Page](https://crun.ai/user-api-key) to get
        your API Key


        Usage:

        Add to request header:


        x-api-key: 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
        in the management page

````