> ## 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 Music Generation API Reference

> Use the Suno music generation API to create full AI songs from prompts for demos, content production, commercial ideas, and creative music workflows.

Start here if you need the main endpoint for **Suno API** music generation.

For the complete endpoint directory, workflow guidance, and related links, see the [Suno API overview](/api/en/suno).


## OpenAPI

````yaml openapi/en/suno.json POST /suno/v1/music
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/music:
    post:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Custom_Params'
                - $ref: '#/components/schemas/Instrumental_Params'
                - $ref: '#/components/schemas/Mv_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: {}
                  required:
                    - custom
                    - instrumental
                    - mv
      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
    Instrumental_Params:
      type: object
      properties:
        instrumental:
          type: boolean
          default: false
          description: |-
            Whether to generate instrumental music.

            - **true**: Generate instrumental-only music
            - **false**: Generate a track with vocals and lyrics
              - In inspiration mode, the **gpt_description_prompt** parameter is required
              - In custom mode, the **prompt** parameter is required
    Mv_Params:
      type: object
      properties:
        mv:
          type: string
          default: chirp-v5
          enum:
            - chirp-v5-5
            - chirp-v5
            - chirp-v4-5+
            - chirp-v4-5
            - chirp-v4-5-all
            - chirp-v4
            - chirp-v3-5
            - chirp-v3-0
          description: Model to use.
    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>.

````