---
title: "Suno Persona Creation API"
method: POST
path: "/v1/audios/generations"
tags: ["Audio Generation"]
---

# Suno Persona Creation API

`POST /v1/audios/generations`

- Extract reusable Persona (vocal/style characteristics) from completed Suno music generation tasks
- After successful creation, a `persona_id` is returned, which can be applied in subsequent [Suno Music Generation](/en/api-manual/audio-series/suno/suno-music-generation) via `persona_id` and `persona_model` parameters
- Source task model version must be **suno-v4 or above** (v3.5 not supported)
- Each song (result_id) can only create **one Persona**
- Asynchronous processing mode, use the returned task ID to [query status](/en/api-manual/task-management/get-task-detail)
- Cannot create a new Persona from a Persona task

## Request body

- SunoPersonaCreationRequest
  - `model` 'suno-persona', required — Model name, fixed as `suno-persona`
  - `model_params` object, required — Persona creation parameters
    - `source_task_id` string, required — Task ID of a completed Suno music generation task **How to obtain:** The `id` field returned from a music generation request **Requirements:** 1. Task must belong to the current user 2. Task status must be `completed` 3. Task model must be Suno series (suno-v4 or above) 4. Cannot be a `suno-persona` type task
    - `result_id` string, uuid, required — Unique identifier of a specific song from the source task results **How to obtain:** Via the [Query Task Detail](/en/api-manual/task-management/get-task-detail) API, find the target song's `result_id` in the `result_data.songs[]` array **Limit:** Each `result_id` can only create one Persona; duplicate creation will return an error
    - `name` string, required — Persona name, used for identification and subsequent reference
    - `description` string, required — Musical style description of the Persona
    - `vocal_start` number — Start time point for vocal extraction (seconds) Must be provided together with `vocal_end`; cannot provide only one. Value must be >= 0. The extraction window (`vocal_end - vocal_start`) must be between **10 - 30 seconds**
    - `vocal_end` number — End time point for vocal extraction (seconds) Must be provided together with `vocal_start`; value must be strictly greater than `vocal_start`. The extraction window (`vocal_end - vocal_start`) must be between **10 - 30 seconds**
    - `style` string — Style tags to annotate the musical style of the Persona. Free text, no strict format required; empty strings are ignored

## Response `200`

Persona creation task submitted successfully

- AudioGenerationResponse
  - `created` integer — Task creation timestamp
  - `id` string — Task ID, used to query task status and results
  - `model` string — Actual model name used
  - `object` 'audio.generation.task' — Task type
  - `progress` integer — Task progress percentage (0-100)
  - `status` 'pending' | 'processing' | 'completed' | 'failed' — Task status
  - `task_info` AudioTaskInfo
    - `can_cancel` boolean — Whether the task can be cancelled
    - `estimated_time` integer — Estimated completion time (seconds)
  - `type` 'audio' — Task output type
  - `usage` Usage — Usage and billing information
    - `billing_rule` 'per_call' | 'per_token' | 'per_second' — Billing rule
    - `credits_reserved` number — Estimated credits to be consumed
    - `user_group` 'default' | 'vip' — User group category

## Other responses

- `400` — Invalid request parameters
- `401` — Unauthenticated, invalid or expired token
- `402` — Insufficient quota, recharge required
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/evolink/apis/get-credits-usage-api.md) · [All operations](https://skmtc.dev/evolink/apis/get-credits-usage-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/evolink/get-credits-usage-api/revisions/88edb0ec881f/schema)
