Vocu Developers
🇺🇸 English
  • 🇺🇸 English
  • 🇨🇳 简体中文
Api Docs(Current)
User GuideBack To APP
Api Docs(Current)
User GuideBack To APP
🇺🇸 English
  • 🇺🇸 English
  • 🇨🇳 简体中文
🇺🇸 English
  • 🇺🇸 English
  • 🇨🇳 简体中文
  1. Styles
  • Overview
  • Authentication Method
  • Core
    • Voice Character
      • Manage
        • Get the list of voice characters for the current user
        • Get details of the voice character with the specified ID
        • Create a new voice character
        • Update a voice character's name and description
        • Upload avatar for the voice character with the specified ID
        • Delete Voice Character with the specified ID
      • Styles
        • Get the transcription of a style's reference audio
          GET
        • Add a style to the voice character with the specified ID
          POST
        • Correct the transcription of a style's reference audio
          POST
        • Update a style's name and description
          POST
        • Set a style as the default style
          POST
        • Reset a style and reprocess its reference audio
          POST
        • Delete Style of the specified ID for the Voice Character with the specified ID
          DELETE
    • Voice Generation
      • Async jobs
        • Get the list of asynchronous generation tasks for the current user
        • Get the details of an asynchronous generation task by ID
        • Create Asynchronous Voice Generation Task
        • Upload audio for voice conversion
        • Delete an asynchronous generation task by ID
      • Synchronous
        • List synthesis parameter presets
        • One-shot synthesis returning an MP3 stream directly
        • Synchronous real-time voice generation
  • Creative
    • Templates
      • Get User's Template List
      • Get Template Details with Specified ID
      • Create New Template
      • Update Template with Specified ID
      • Delete Template with Specified ID
  • Account
    • User
      • Get current user account information
  • Advanced
    • Splitter
      • List splitter configurations
      • Get splitter configuration details
      • Create a splitter configuration
      • Update a splitter configuration (diff mode)
      • Delete a splitter configuration
  • Schemas
    • Generation Template
    • Generation Task
    • Voice Character
    • General Generation Parameters (New)
    • ErrorResponse
  1. Styles

Add a style to the voice character with the specified ID

POST
https://v1.vocu.ai/api/voice/{id}/prompt
Append a style (prompt) to an existing voice. The new style is assigned a UUID as its promptId, which you then pass when generating; omitting it uses default.
Preconditions: the target must be a self-created voice (from === 'upload'). Voices bought from the market or imported from the library cannot take new styles and return AUTH_FORBIDDEN. A voice in creating returns 409 VOICE_CREATING; one in failed returns 400 VOICE_CREATE_FAILED.
Audio constraints for this endpoint: 20 MB data-URL cap (voice creation is 100 MB), at least 3 seconds of speech. Uploaded content is checked for safety; a rejection returns SAFETY_* with a traceId. language must use a full value; some endpoints silently downgrade illegal values to auto. See the "Languages and localization" document.
May return RATE_LIMIT_* (HTTP 429). Read Retry-After and retry with exponential backoff. See the "Errors" document.
TIP
Legacy voices are prepared automatically before the style is added. If that preparation fails the call returns VOICE_UNAVAILABLE (503) and can be retried later.
INFO
Deprecated alias: /api/tts/voice/{id}/prompt. See the site document "Versions and migration".
INFO
See the Errors document for the full code reference. Always use the X-Vocu-App-Request-Id response header when troubleshooting.

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Path Params

Body Params application/json

Example
{
    "name": "Happy",
    "prompt": "data:audio/wav;base64,fMRLm9LywDeweSOsz0q9zahvHoMrnLvoUTippGeXDe33z0S8hs5tpRcTG3MY8QwG2N8aqVUiYNACiFJOa8OVI7n7JXdAN694A4XyAVQCu4GUjy6z0d3SiWmdolGKcKTQJ0V4PK25bgp9Jyp5uNAJDGZCHxErLo5fiTKffWmuDI3hboQUfbP3kRKQl746HMcemZrMoGeyWbtc8XBujLquIFGm9ZPsNWQNIIM1k9VuwJ5vIIYpg8lPjpikAHhPr5f3MVaS5U3XgbLlHk04zmokryHpvU54xs4asiHcRM0gaKHyM03HlxaH3nkN6FY39rJeTZtS5DZ1Tgn1jK3F8zVKFFOAx8wavYFuEiriRZO4IqwN5v7mNVqgJgYyH9TgcNnUmRP4WRwjcpWHZAZ1NPBB629y1XIt3ScxB16g4bdMOahsWQg1qJ6c9wJElSAzsiq6Z75gAR0f5Z1IvpqSSgBxMcMyVc5QgFHd3F5ldsZ2ExXNvlPZdqgm",
    "description": "Happy emotional style",
    "vocalFilter": false
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://v1.vocu.ai/api/voice//prompt' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
    "name": "Happy",
    "prompt": "data:audio/wav;base64,fMRLm9LywDeweSOsz0q9zahvHoMrnLvoUTippGeXDe33z0S8hs5tpRcTG3MY8QwG2N8aqVUiYNACiFJOa8OVI7n7JXdAN694A4XyAVQCu4GUjy6z0d3SiWmdolGKcKTQJ0V4PK25bgp9Jyp5uNAJDGZCHxErLo5fiTKffWmuDI3hboQUfbP3kRKQl746HMcemZrMoGeyWbtc8XBujLquIFGm9ZPsNWQNIIM1k9VuwJ5vIIYpg8lPjpikAHhPr5f3MVaS5U3XgbLlHk04zmokryHpvU54xs4asiHcRM0gaKHyM03HlxaH3nkN6FY39rJeTZtS5DZ1Tgn1jK3F8zVKFFOAx8wavYFuEiriRZO4IqwN5v7mNVqgJgYyH9TgcNnUmRP4WRwjcpWHZAZ1NPBB629y1XIt3ScxB16g4bdMOahsWQg1qJ6c9wJElSAzsiq6Z75gAR0f5Z1IvpqSSgBxMcMyVc5QgFHd3F5ldsZ2ExXNvlPZdqgm",
    "description": "Happy emotional style",
    "vocalFilter": false
}'

Responses

🟢200Successfully added character style
application/json
Style added; returns the updated voice with the new entry in metadata.prompts
Bodyapplication/json

Example
{
    "status": 200,
    "message": "OK",
    "data": {
        "id": "22454287-ecbd-499c-9ccb-c60f2d38acc7",
        "idForGenerate": "3192abc5-9ab0-4235-be44-eb8a336338b9",
        "name": "Qian Lifang",
        "status": "lora-pending",
        "metadata": {
            "avatar": "https://loremflickr.com/2252/1664?lock=6544168410253842",
            "description": "Diving enthusiast",
            "prompts": [
                {
                    "id": "default",
                    "name": "Default Style",
                    "promptOriginAudioStorageUrl": "https://storage.vocu.ai/prompt/530917/477883-playback-qmrue4.mp3"
                },
                {
                    "id": "238ab849-ac1b-408f-97dc-02645f3fb62d",
                    "name": "Happy",
                    "promptOriginAudioStorageUrl": "https://storage.vocu.ai/prompt/964700/450066-playback-o364bm.mp3",
                    "description": "Happy emotional style"
                }
            ]
        }
    }
}
🟠400Bad request
🟠401Unauthorized
🟠403Forbidden
🟠404Not found
🟠409Conflict
🟠413Payload too large
🟠429Rate limited
🔴500Server error
🔴503Temporarily unavailable
Modified at 2026-08-23 09:24:46
Previous
Get the transcription of a style's reference audio
Next
Correct the transcription of a style's reference audio