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

# Suno Stem Split

> Separate a song into stems. Pick exactly one source: `task_id` + `audio_id` (one of your Suno songs) or `audio_url` (any audio, up to 20 MB). Works best on clean mixes such as AI-generated songs.

**Pricing** (per request, by `mode`):

| Option | Tokens | USD |
|---|---|---|
| vocals · 2 stems | 3.25 | $0.065 |
| single · 1 instrument | 6.5 | $0.130 |
| stems · up to 12 stems | 16.25 | $0.325 |

Separating the same audio again is charged again, so keep the results.

**Result**: `json` holds one item per stem, e.g. `{ "type": "audio", "value": "https://...mp3", "stem": "vocal" }`. `stem` is one of `vocal`, `instrumental`, `backing_vocals`, `drums`, `bass`, `guitar`, `keyboard`, `strings`, `brass`, `woodwinds`, `percussion`, `synth`, `fx`. Stems the song doesn't contain are not returned. Result links expire (see `link_expired_at`).



## OpenAPI

````yaml api-reference/audio-generations/openapi-suno-stem-split.json POST /api/v1/audio/generations
openapi: 3.1.0
info:
  title: GoEnhance API - Suno Stem Split
  description: >-
    Separate a song into vocals and instrumental, up to 12 stems, or one chosen
    instrument.
  version: 1.0.0
servers:
  - url: https://api.goenhance.ai
security: []
paths:
  /api/v1/audio/generations:
    post:
      tags:
        - AudioGenerations
      summary: Suno Stem Split
      description: >-
        Separate a song into stems. Pick exactly one source: `task_id` +
        `audio_id` (one of your Suno songs) or `audio_url` (any audio, up to 20
        MB). Works best on clean mixes such as AI-generated songs.


        **Pricing** (per request, by `mode`):


        | Option | Tokens | USD |

        |---|---|---|

        | vocals · 2 stems | 3.25 | $0.065 |

        | single · 1 instrument | 6.5 | $0.130 |

        | stems · up to 12 stems | 16.25 | $0.325 |


        Separating the same audio again is charged again, so keep the results.


        **Result**: `json` holds one item per stem, e.g. `{ "type": "audio",
        "value": "https://...mp3", "stem": "vocal" }`. `stem` is one of `vocal`,
        `instrumental`, `backing_vocals`, `drums`, `bass`, `guitar`, `keyboard`,
        `strings`, `brass`, `woodwinds`, `percussion`, `synth`, `fx`. Stems the
        song doesn't contain are not returned. Result links expire (see
        `link_expired_at`).
      parameters:
        - name: Authorization
          in: header
          description: ''
          required: false
          example: '{{Authorization}}'
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  enum:
                    - suno-stem-split
                  description: Model name. Must be `suno-stem-split`.
                task_id:
                  type: string
                  description: >-
                    The `img_uuid` of one of your earlier successful Suno tasks
                    that produced songs (`suno-v6`, `suno-extend`, `suno-cover`,
                    `suno-add-vocals`, `suno-add-instrumental`,
                    `suno-replace-section` or `suno-mashup`). Must be sent
                    together with `audio_id`.
                audio_id:
                  type: string
                  description: >-
                    The `audio_id` of the song to use, taken from that task's
                    result (`json[].audio_id`). Must be sent together with
                    `task_id`.
                audio_url:
                  type: string
                  format: uri
                  description: >-
                    Alternative to `task_id` + `audio_id`: a public URL of any
                    audio file, up to 20 MB.
                mode:
                  type: string
                  enum:
                    - vocals
                    - stems
                    - single
                  default: vocals
                  description: >-
                    `vocals` (default): 2 stems, vocals + instrumental (vocal
                    remover / karaoke). `stems`: up to 12 stems. `single`:
                    extract one instrument named in `stem_name`.
                stem_name:
                  type: string
                  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
                  description: >-
                    Required when `mode` is `single` (case-insensitive), not
                    allowed otherwise. The instrument to extract.
                custom_callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. A publicly accessible HTTPS URL. When the task
                    status changes (processing / success / failed), GoEnhance
                    sends a POST request to this URL. The request body is
                    identical to the response of GET /api/v1/jobs/detail. If
                    your server does not respond with HTTP 200, the notification
                    is retried up to 3 times, with a 3-second timeout per
                    attempt.
                  example: https://your-server.com/goenhance/callback
              required:
                - model
            example:
              model: suno-stem-split
              audio_url: https://example.com/my-song.mp3
              mode: vocals
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                  data:
                    type: object
                    properties:
                      img_uuid:
                        type: string
                      cost:
                        type: number
                        description: >-
                          Tokens deducted for this request. This is the amount
                          actually charged, so it already reflects any discount
                          active on your account and can be lower than the
                          listed price. Tokens are deducted when the task is
                          accepted, and refunded automatically if the generation
                          ends in failure.
                        example: 3.25
                    required:
                      - img_uuid
                      - cost
                required:
                  - code
                  - msg
                  - data
              examples:
                '1':
                  summary: Success
                  value:
                    code: 0
                    msg: Success
                    data:
                      img_uuid: c12b656c-747a-44fd-9c80-add79b0c52d5
                      cost: 3.25
                '2':
                  summary: Insufficient tokens
                  value:
                    code: 100
                    msg: tokens is not enough
                quota:
                  summary: API key quota exceeded
                  value:
                    code: 101
                    msg: 'API key quota exceeded: 4990 of 5000 tokens used (monthly)'
                bad:
                  summary: Invalid parameters
                  value:
                    code: -1
                    msg: >-
                      lyrics is required when custom_mode is true and
                      instrumental is false
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
          headers: {}
      deprecated: false

````