---
title: "Suno Voice Create Custom Voice API"
method: POST
path: "/api/v1/voice/generate"
tags: ["docs/en/Market/Suno API/voice", "suno接口/voice"]
---

# Suno Voice Create Custom Voice API

`POST /api/v1/voice/generate`

Generate a custom Suno Voice from verification audio for the validation phrase returned by the server.

Submit the original validation task ID, the user's verification audio URL, and optional voice metadata such as `voiceName`, `description`, and `style`. For best voice generation results, the verification audio should contain the user recording the exact `validateInfo` phrase in a singing voice rather than plain speech. The system will validate the recording and create a reusable custom voice.

## Query Task Status

After submitting the task, you can check the voice generation progress and obtain the final `voiceId` through the voice record query endpoint:

<Card
  title="Get Voice Record"
  icon="lucide-search"
  href="/suno-api/suno-voice-record-info"
>
  Learn how to check the custom voice generation status and obtain the generated voiceId
</Card>

:::tip[]
In the production environment, it is recommended to use the `callBackUrl` parameter to receive automatic notifications when the custom voice is generated, rather than polling the status endpoint.
:::

## Use the Generated Voice

When the task succeeds, the response from the query or callback contains `voiceId`. You can use this ID in supported Suno generation endpoints that accept a custom voice.

Related resources

<CardGroup cols={2}>
  <Card title="Check Voice Availability" icon="lucide-badge-check" href="/suno-api/suno-voice-check-voice"> Verify whether a generated voice is available for use </Card>
  <Card title="General API" icon="lucide-cog" href="/suno-api/get-remaining-credits"> View account credits and usage </Card>
</CardGroup>

## Request body

- object
  - `taskId` string, required — Task ID
  - `verifyUrl` string, required — Audio URL for the user's recording of the validation phrase returned by the server; singing is recommended for best results [Required]
  - `voiceName` string — Voice name
  - `description` string — Voice description
  - `style` string — Voice style
  - `singerSkillLevel` 'beginner' | 'intermediate' | 'advanced' | 'professional' — Singer skill level. Supported: beginner, intermediate, advanced, professional
  - `callBackUrl` string — Callback URL used to receive custom voice generation results. When the task succeeds, the callback includes the generated `voiceId`; when it fails, it includes `errorCode` and `errorMessage`. The URL must be publicly accessible and return HTTP 200 within 15 seconds. For the payload format, see [Custom Voice Generation Callbacks](https://docs.sunoapi.org/suno-api/suno-voice-generate-callbacks).

## Response `200`

- object
  - `code` integer, required
  - `msg` string, required
  - `data` object, required
    - `taskId` string, required — Task ID

---

[API](https://skmtc.dev/sunoapi/apis/file-upload-api.md) · [All operations](https://skmtc.dev/sunoapi/apis/file-upload-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sunoapi/file-upload-api/revisions/22d45ee33a4a/schema)
