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

# Suno Song Extension API Reference

> Use the Suno song extension API to continue existing music with new sections, longer structure, or additional progression while keeping the original feel.

Use the **Suno Extend API** when you already have a promising song segment and want to continue it with additional structure, length, or musical progression.


## OpenAPI

````yaml openapi/en/suno.json POST /suno/v1/extend
openapi: 3.1.0
info:
  title: TTAPI API DOCS
  version: 1.0.0
  description: Suno AI Music API
servers:
  - url: https://api.ttapi.io
security: []
paths:
  /suno/v1/extend:
    post:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Custom_Params'
                - $ref: '#/components/schemas/Gpt_description_prompt_Params'
                - $ref: '#/components/schemas/Prompt_Params'
                - $ref: '#/components/schemas/Title_Params'
                - $ref: '#/components/schemas/Tags_Params'
                - $ref: '#/components/schemas/Negative_tags_Params'
                - $ref: '#/components/schemas/Style_weight_Params'
                - $ref: '#/components/schemas/Weirdness_constraint_Params'
                - $ref: '#/components/schemas/Audio_weight_Params'
                - $ref: '#/components/schemas/Duration_Params'
                - $ref: '#/components/schemas/Auto_lyrics_Params'
                - $ref: '#/components/schemas/Vocal_gender_Params'
                - $ref: '#/components/schemas/Persona_id_Params'
                - $ref: '#/components/schemas/IsStorageParams'
                - $ref: '#/components/schemas/HookUrlParams'
                - type: object
                  properties:
                    music_id:
                      type: string
                      description: Audio ID of the track to extend.
                    continue_at:
                      type: number
                      example: 10
                      description: >-
                        Timestamp, in seconds, where the audio extension should
                        begin.
                    custom:
                      type: boolean
                      default: true
                      description: >-
                        Whether to use custom mode.


                        - **true**: Generate audio from lyrics.

                        - **false**: Generate audio from the inspiration-mode
                        prompt.
                  required:
                    - custom
                    - music_id
                    - continue_at
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
        '400':
          $ref: '#/components/responses/400Response'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - CustomApiKey: []
components:
  schemas:
    Custom_Params:
      type: object
      properties:
        custom:
          type: boolean
          default: false
          description: >-
            Whether to use custom mode.


            - **true**: Audio will be generated from lyrics

            - **false**: Audio will be generated based on inspiration mode
            prompts
    Gpt_description_prompt_Params:
      type: object
      properties:
        gpt_description_prompt:
          type: string
          description: >-
            Prompt for inspiration mode.


            When not using custom mode (custom=false), this parameter is always
            required. Lyrics will be automatically generated from this prompt.
            Maximum length: 3000 characters.
          example: >-
            Night city lo-fi piano with rain ambience, soft vocal phrases,
            theme: "Under the city lights"
    Prompt_Params:
      type: object
      properties:
        prompt:
          type: string
          description: >-
            Lyrics.


            Used in custom mode (custom=true). Required when instrumental is
            false. The lyrics will be used and sung in the generated track.
            Maximum length: 5000 characters.
    Title_Params:
      type: object
      properties:
        title:
          type: string
          description: |-
            Music title.

            Used in custom mode (custom=true). Maximum length: 80 characters.
    Tags_Params:
      type: object
      properties:
        tags:
          type: string
          description: |-
            Music style or genre.

            Used in custom mode (custom=true). Maximum length: 1000 characters.
          example: rock, blues, hip-hop, r&b
    Negative_tags_Params:
      type: object
      properties:
        negative_tags:
          type: string
          description: |-
            Music styles or genres that should be excluded from generation.

            Used in custom mode (custom=true).
    Style_weight_Params:
      type: object
      properties:
        style_weight:
          type: number
          description: |-
            Music style weight, range: 0.00–1.00.

            Used in custom mode. Valid range: 0 <= x <= 1.
          example: 0.5
    Weirdness_constraint_Params:
      type: object
      properties:
        weirdness_constraint:
          type: number
          description: |-
            Audio creativity (weirdness) weight, range: 0.00–1.00.

            Used in custom mode. Valid range: 0 <= x <= 1.
          example: 0.5
    Audio_weight_Params:
      type: object
      properties:
        audio_weight:
          type: number
          description: |-
            Audio weight, range: 0.00–1.00.

            Used in custom mode. Valid range: 0 <= x <= 1.
          example: 0.5
    Duration_Params:
      type: object
      properties:
        duration:
          type: int
          description: |-
            Audio duration, in seconds 

            Used in custom mode. Valid range: 10 <= x <= 360.
          example: 120
    Auto_lyrics_Params:
      type: object
      properties:
        auto_lyrics:
          type: boolean
          default: false
          description: >-
            Whether to automatically generate lyrics. Custom mode only.


            - **true**: The input lyrics will be creatively rewritten, similar
            to the inspiration mode prompt effect

            - **false**: Use the provided lyrics directly to generate the music
    Vocal_gender_Params:
      type: object
      properties:
        vocal_gender:
          type: string
          description: |-
            Vocal gender.

            - Male: Male voice

            - Female: Female voice
          enum:
            - Male
            - Female
    Persona_id_Params:
      type: object
      properties:
        persona_id:
          type: string
          description: |-
            Music style ID. Custom mode only.

            Use this parameter to generate music with a specific style.
    IsStorageParams:
      type: object
      properties:
        isStorage:
          type: boolean
          default: true
          description: >-
            Whether to store the generated audio.


            - **true**: The audio will be stored and a TTAPI CDN URL will be
            returned

            - **false**: The original source URL will be returned
    HookUrlParams:
      type: object
      properties:
        hookUrl:
          type: string
          description: Callback notification URL
  responses:
    SuccessResponse:
      description: Request successful
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: SUCCESS
              message:
                type: string
                example: success
              data:
                type: object
                example:
                  jobId: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
            required:
              - status
              - message
              - data
    400Response:
      description: Parameter error
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: FAILED
              message:
                type: string
              data:
                type: object
            required:
              - status
              - message
    401Response:
      description: Authorization failed
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: FAILED
              message:
                type: string
                example: Wrong TT-API-KEY or email is not activated.
            required:
              - status
              - message
  securitySchemes:
    CustomApiKey:
      type: apiKey
      in: header
      name: TT-API-KEY
      description: >-
        You can obtain your API key from the <a
        href='https://dashboard.ttapi.io' target='_blank'>TTAPI Dashboard</a>.

````