/v2/upload-cover/generatePOST /v2/upload-cover/generate
Upload your own audio file and generate an AI cover version with a new style, lyrics, and vocal settings — while retaining the original melody. Supports both custom mode (full control over lyrics, style, title) and non-custom mode (simple prompt-based generation). Audio file must not exceed 8 minutes in length.
https://udioapi.pro/api/v2/upload-cover/generatetips
Two Generation Modes:
- Non-Custom Mode (Recommended for beginners): Set
custom_modetofalse. Onlyupload_urlandpromptare required. Lyrics will be auto-generated based on the prompt (max 500 chars). - Custom Mode: Set
custom_modetotrue. You must provideupload_url,prompt(used as exact lyrics),style, andtitle. Ifmake_instrumentalistrue,promptcan be omitted.
Character Limits (vary by model):
- chirp-v4-0: prompt (3000), style (200), title (80)
- chirp-v4-5 / chirp-v4-5-plus: prompt (5000), style (1000), title (100)
- chirp-v4-5-all: prompt (5000), style (1000), title (80)
- chirp-v5 / chirp-v5-5: prompt (5000), style (1000), title (100)
Model Credits: chirp-v4-0 = 8 credits, chirp-v4-5 / chirp-v4-5-plus / chirp-v4-5-all = 10 credits, chirp-v5 / chirp-v5-5 = 12 credits each.
Developer Notes:
- Generated files will be deleted after 15 days.
- The uploaded audio must not exceed 8 minutes. For chirp-v4-5-all, the limit is 1 minute.
- Use the Status API to poll for task completion (every 5–10 seconds).
- You may also configure a
callback_urlto receive results via webhook.
requestHeaders
| name | required | description |
|---|---|---|
nameAuthorization | requiredyes | descriptionBearer token for authentication |
nameContent-Type | requiredyes | descriptionapplication/json |
requestBody
Request body supports two modes: Non-Custom Mode (simple) or Custom Mode (full control)
commonParams
| paramName | paramType | required | description | example |
|---|---|---|---|---|
paramNameupload_url | paramTypestring | requiredyes | descriptionURL of the audio file to cover. Must be a publicly accessible URL. The audio must not exceed 8 minutes (1 minute for chirp-v4-5-all). | examplehttps://storage.example.com/my-song.mp3 |
paramNamemodel | paramTypestring | requiredyes | descriptionAI model to use. Options: 'chirp-v4-0', 'chirp-v4-5', 'chirp-v4-5-plus', 'chirp-v4-5-all', 'chirp-v5', 'chirp-v5-5'. | examplechirp-v4-5 |
paramNamecustom_mode | paramTypeboolean | requiredno | descriptionEnable custom mode for full control over lyrics, style, and title. Default: false. When false, only prompt and upload_url are needed. | examplefalse |
paramNamemake_instrumental | paramTypeboolean | requiredno | descriptionGenerate instrumental music without vocals. When true in custom mode, prompt is not required. | examplefalse |
paramNameprompt | paramTypestring | requiredno | descriptionIn non-custom mode: a text description of desired output (max 500 chars, lyrics auto-generated). In custom mode: exact lyrics to be sung (max varies by model: 3000–5000 chars). Required unless make_instrumental is true. | exampleA calm and relaxing piano track with soft melodies |
paramNamestyle | paramTypestring | requiredno | descriptionMusic style/genre (custom mode only). Max length: 200 chars (chirp-v4-0), 1000 chars (other models). Leave empty in non-custom mode. | examplepop, upbeat, electronic |
paramNametitle | paramTypestring | requiredno | descriptionSong title (custom mode only). Max length: 80 chars (chirp-v4-0 / chirp-v4-5-all), 100 chars (other models). Leave empty in non-custom mode. | exampleSummer Cover |
paramNametags | paramTypestring | requiredno | descriptionNegative tags — music styles or traits to exclude from the generated audio. Custom mode only. | exampleHeavy Metal, Upbeat Drums |
paramNamegender | paramTypestring | requiredno | descriptionVocal gender preference. Use 'male' or 'female'. Only effective in custom mode. Note: can only increase the probability, not guarantee. | examplefemale |
paramNamestyle_weight | paramTypenumber | requiredno | descriptionStrength of adherence to style. Range 0–1, up to 2 decimals. | example0.65 |
paramNameweirdness_constraint | paramTypenumber | requiredno | descriptionControls creative deviation. Range 0–1, up to 2 decimals. | example0.65 |
paramNameaudio_weight | paramTypenumber | requiredno | descriptionBalance weight for audio features. Range 0–1, up to 2 decimals. | example0.65 |
paramNamecallback_url | paramTypestring | requiredno | descriptionURL to receive webhook notifications when the task completes. Your callback endpoint should accept POST requests with JSON payload. | examplehttps://api.example.com/webhook/upload-cover |
responses
{
"code": 200,
"message": "success",
"workId": "upcov1a2b3c4d5e6f7890abcdef",
"data": {
"task_id": "upcov1a2b3c4d5e6f7890abcdef"
}
}codeExamples
curl -X POST "https://udioapi.pro/api/v2/upload-cover/generate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "chirp-v4-5",
"upload_url": "https://storage.example.com/my-song.mp3",
"custom_mode": false,
"make_instrumental": false,
"prompt": "A calm and relaxing piano cover with soft melodies"
}'