Skip to main content
POST
Upload a Voice sample
Operations are enabled individually by server configuration. Disabled operations return 503 without a task. Music credit deduction is currently disabled.

Using this operation

Upload a voice sample and select a segment, then request a phrase, record verification, and check the created Voice.
    1. Prepare the fields shown in the example below. Replace sample URLs and IDs with resources you can access.
    1. Set model to suno_voice_upload and place the parameters inside input. Submit once and save the returned task_id.
    1. Query the saved task or receive its callback. A processing result is not a reason to submit the operation again.
  • After result.ready is true, pass result.voice_upload_task_id to the verification-phrase endpoint.

Create task

Send model and input to the common task endpoint. callback_url is an optional top-level public HTTPS address. All resource IDs are APIstable IDs owned by your account. Music credit deduction is currently disabled.

Acceptance response

HTTP 200 confirms acceptance, not completion. Query GET /api/v1/tasks/{task_id} until data.status is succeeded or failed. Read data.result only after success; a failed task has its error in data.message.

Parameter reference

Inputs and limits

The schema lists supported fields, types and basic limits. Also follow Important conditions: cross-field and source-resource checks are not fully represented in JSON Schema. Unknown parameters are rejected. URL fields accept public HTTPS URLs, never file objects.

Important conditions

  • Select 0 ≤ vocal_start_s < vocal_end_s ≤ the recording duration, with at most two decimal places. Wait for ready:true before requesting a phrase. The successful upload session lasts 24 hours.
  • Upload name/description are not automatically copied to the final Voice. Set them again in suno_voice_create if required.
  • Audio URL inputs must contain readable MP3/WAV/FLAC/OGG/M4A/AAC audio with positive duration; the limit is 500 MiB per file. URLs must be publicly accessible HTTPS on port 443, without embedded credentials or private-network addresses. Keep them accessible until the task finishes.
  • Uploaded files last 24 hours, generated files 14 days and task details 30 days. Reused files keep their original expiry. Valid Voice/Persona identity mappings are separate from task-log cleanup. Download files you need to retain.

Result schema

The creation response is {code:200,msg:“success”,data:{task_id}}. Poll GET /api/v1/tasks/{task_id}. On success, data.result is an object matching the schema below; it is otherwise null. input remains a JSON string.
Voice: all four steps File uploads Callbacks

Authorizations

Authorization
string
header
required

Every valid key can submit and query its own account. Revoked keys are rejected.

Body

application/json
model
enum<string>
required
Available options:
suno_voice_upload
Example:

"suno_voice_upload"

input
object
required
callback_url
string<uri>

Optional public HTTPS endpoint for signed completion callbacks; no redirects or private IPs.

Response

Accepted task. Poll the common task endpoint or use callback_url.

code
any
required
msg
any
required
data
object
required