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

# Voice Persona Complete

> Upload verification recording and create voice persona

<Info>
  This is **Phase 2** of the Voice Persona creation workflow. You must complete [Phase 1: Init](/api-reference/suno/voicePersonaInit) first and wait for the task status to reach `awaiting`. See the [full workflow guide](/api-reference/suno/voicePersona).
</Info>

Uses the **same `taskId`** returned by init. After calling complete, continue polling the same taskId until status becomes `success`.

<Warning>
  You must call this endpoint within **30 seconds** of the task reaching `awaiting` status. Exceeding this timeout causes the task to fail with `VP_USER_TIMEOUT`.
</Warning>

<Tip>
  No intermediate data (`vox_audio_id`, `phrase_id`, etc.) is needed — the system reads them automatically from the init phase. Just pass `taskId`, `verification_audio_url`, `name`, and optional fields.
</Tip>


## OpenAPI

````yaml POST /suno/v2/voicePersona/complete
openapi: 3.0.0
info:
  title: Suno AI
  description: API documentation for Suno AI
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.mountsea.ai
    description: API Gateway
security: []
tags:
  - name: suno
    description: ''
paths:
  /suno/v2/voicePersona/complete:
    post:
      tags:
        - suno
      summary: complete voice persona
      description: >-
        Submit verification recording to complete the voice persona creation.
        Uses the same taskId returned by init.
      operationId: ApiPublicController_voicePersonaComplete
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VoicePersonaCompleteDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskIdDto'
      security:
        - bearerAuth: []
components:
  schemas:
    VoicePersonaCompleteDto:
      type: object
      properties:
        taskId:
          type: string
          format: uuid
          description: init 返回的 taskId（同一个任务）
          example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        verification_audio_url:
          type: string
          format: uri
          description: 用户朗读验证短语后的录音 URL（WAV/MP3）
          example: https://example.com/verification.wav
        name:
          type: string
          description: Persona 名称
          example: My Voice
        description:
          type: string
          description: Persona 描述
        is_public:
          type: boolean
          description: 是否公开，默认 false
          example: false
        image_s3_id:
          type: string
          description: 封面图片（base64 或 null 自动生成）
      required:
        - taskId
        - verification_audio_url
        - name
    TaskIdDto:
      type: object
      properties:
        taskId:
          type: string
          description: task id. Use this id to query task status.
          example: 15c257ff-43f7-4678-bd41-202ad6b8488b
      required:
        - taskId
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````