> ## 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 Create Voice API Documentation

> Suno Create Voice is used to create a custom voice model from an uploaded audio sample.

<Info>
  **Create Voice is an asynchronous task API.**

  After submitting the request, the result will not be returned immediately.
  You can obtain the result using one of the following methods:

  * Set **hookUrl** to receive a **callback notification** when the task is completed
  * Or call the **[fetch API](/api/en/suno/suno_fetch_v2)** to manually query the task status and result

  If you use **hookUrl**, please ensure that the URL is publicly accessible; otherwise, the callback notification may fail.
</Info>

<Warning>
  1. The uploaded audio must contain **clear human speech**, otherwise the voice creation may fail.

  Please follow these requirements:

  * The audio must contain **clear human speech**
  * Avoid **background noise**, music, or echo
  * Do not include **multiple speakers**
  * Low-volume, unclear, or noisy audio **may cause generation failure or poor results**

  2. The created voice is a **private resource**, and the following limitations apply:

  * **Cross-account usage is not supported**
  * After the voice is successfully created, please use it promptly, otherwise it may expire or become unavailable.

  It is recommended to use the voice as soon as possible after creation to avoid expiration.
</Warning>

<Tip>
  Recommended audio requirements:

  * Audio duration: **at least 10 seconds**
  * Speaker: **single speaker only**
  * Recording environment: **quiet and noise-free**
  * Audio format: **WAV or MP3**
</Tip>


## OpenAPI

````yaml openapi/en/suno.json POST /suno/v1/create-voice
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/create-voice:
    post:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    audio_url:
                      type: string
                      description: Publicly accessible direct audio file URL (WAV or MP3)
                  required:
                    - audio_url
                - $ref: '#/components/schemas/HookUrlParams'
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
        '400':
          $ref: '#/components/responses/400Response'
        '401':
          $ref: '#/components/responses/401Response'
      security:
        - CustomApiKey: []
components:
  schemas:
    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>.

````