Skip to main content
POST
/
api
/
generate
/
submit
curl --request POST \
  --url https://api.vidgo.ai/api/generate/submit \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "upload-and-cover-audio",
  "callback_url": "https://your-domain.com/callback",
  "input": {
    "upload_url": "https://example.com/audio/my-track.mp3",
    "prompt": "Transform into an upbeat electronic dance version",
    "style": "EDM, Electronic",
    "title": "Dance Remix",
    "custom_mode": true,
    "instrumental": false,
    "mv": "V5",
    "negative_tags": "Slow, Sad",
    "style_weight": 0.8
  }
}
'
{
  "code": 200,
  "data": {
    "task_id": "task-unified-1757165031-uyujaw3d",
    "status": "not_started",
    "created_time": "2025-11-12T10:30:00"
  }
}
  1. After submission, a task_id will be returned. If you provided a callback_url, when the task status becomes finished or failed, a POST request will be sent to the callback_url.
  2. Regardless of whether callback_url is provided, you can retrieve the response result through the unified Query Music Detail endpoint.

Usage Guide

  • This endpoint transforms an uploaded audio track into a new style while preserving the original melody
  • Upload your audio file and specify the desired transformation style
  • The original melody and structure are maintained while applying new musical characteristics

Parameter Details

  • Audio Upload Requirement:
    • The uploaded audio must not exceed 8 minutes in length
    • Note: For the V4_5ALL model, the uploaded audio must not exceed 1 minute in length
    • Provide a valid URL pointing to your audio file via upload_url
  • In Custom Mode ( custom_mode: true ):
    • style and title are required
    • prompt is required if instrumental is false
    • Character limits vary by model:
      • V4: prompt 3000 characters, style 200 characters, title 80 characters
      • V4_5 & V4_5PLUS: prompt 5000 characters, style 1000 characters, title 100 characters
      • V4_5ALL: prompt 5000 characters, style 1000 characters, title 80 characters
      • V5: prompt 5000 characters, style 1000 characters, title 100 characters
  • In Non-custom Mode ( custom_mode: false ):
    • prompt is required to describe the desired transformation (max 500 characters)
    • style and title should be left empty

Developer Notes

  • Ensure your audio URL is publicly accessible and the file is under 8 minutes (1 minute for V4_5ALL)
  • For best results, use high-quality source audio with clear melody lines
  • The audio_weight parameter can help balance between preserving the original and applying the new style

Optional parameters

  • negative_tags (string): Music styles or characteristics to exclude from the cover.
  • vocal_gender (string): Vocal gender preference. Use m for male, f for female. Note: This parameter increases the probability but cannot guarantee adherence.
  • style_weight (number): Strength of adherence to the new style. Range 0-1, up to 2 decimals.
  • weirdness_constraint (number): Controls creative deviation. Range 0-1, up to 2 decimals.
  • audio_weight (number): Balance weight for preserving original audio features. Range 0-1, up to 2 decimals.
  • persona_id (string): Persona ID to apply to the covered track. How to generate persona_id, visit generate-persona.

Authorizations

Authorization
string
header
required

All API endpoints require Bearer Token authentication

Get your API Key:

Visit the API Key Management Page to get your API Key

Add it to the request header:

Authorization: Bearer VIDGO_API_KEY

Body

application/json
model
enum<string>
required

API model identifier.

Must be upload-and-cover-audio for this endpoint.

Available options:
upload-and-cover-audio
Example:

"upload-and-cover-audio"

input
object
required

Input parameters for audio cover generation

callback_url
string<uri>

Webhook callback URL for result notifications.

Endpoint that receives task completion updates.

Example:

"https://your-domain.com/callback"

Response

200 - application/json

Task submitted successfully

code
integer
required

HTTP status code

Example:

200

data
object
required