Skip to main content
POST
/
api
/
v1
/
client
/
job
/
CreateTask
Suno music extension from uploaded audio
curl --request POST \
  --url https://api.crun.ai/api/v1/client/job/CreateTask \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "model": "suno/music-extend-upload",
  "callback_url": "https://your-domain.com/api/callback",
  "input": {
    "audio_url": "https://example.com/uploaded-audio.mp3",
    "mode": "custom",
    "model": "v5",
    "instrumental": false,
    "continue_at": 30,
    "title": "Midnight Addiction (Extended)",
    "tags": "Western R&B, female vocal, dark, sensual",
    "lyrics": "[Verse 1]\nI still taste your words in the dark...",
    "vocal_gender": "f",
    "style_weight": 0.85,
    "audio_weight": 0.6,
    "weirdness_constraint": 0.2,
    "negative_tags": "metal, aggressive"
  }
}
'
{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "task_12345678"
  }
}

Important Notes

  • For existing music, suno may fail to upload.
  • Supports two extension modes: simple and custom
  • In simple mode, prompt is required; other optional parameters are optional
  • In custom mode, continue_at, title and tags are required, and lyrics is required if instrumental=false
If you want a quick extension based on the uploaded audio, recommend start with mode=simple.

Extend Music (Simple Mode)

Extend using your uploaded audio file and a short prompt.
{
    "model": "suno/music-extend-upload",
    "callback_url": "",
    "input": {
        "audio_url": "https://example.com/uploaded-audio.mp3",
        "mode": "simple",
        "model": "v5",
        "instrumental": false,
        "prompt": "Extend this track with a dreamy outro, keep the mood soft and warm.",
        "continue_at": 180
    }
}

Extend Music (Custom Mode)

Custom extension lets you control style and lyrics. Provide title, tags, and lyrics (unless instrumental).
{
    "model": "suno/music-extend-upload",
    "callback_url": "",
    "input": {
        "audio_url": "https://example.com/uploaded-audio.mp3",
        "mode": "custom",
        "model": "v5",
        "instrumental": false,
        "continue_at": 30,
        "title": "Midnight Addiction (Extended)",
        "tags": "Western R&B, female vocal, dark, sensual",
        "lyrics": "[Verse 1]\nI still taste your words in the dark...",
        "vocal_gender": "f",
        "style_weight": 0.85,
        "audio_weight": 0.6,
        "weirdness_constraint": 0.2,
        "negative_tags": "metal, aggressive"
    }
}

Get Task Result

After submitting a task, use the unified query endpoint to check progress and retrieve results:

Get Suno Task Info

Learn how to query suno task status and retrieve generation results

Authorizations

x-api-key
string
header
required

All APIs require authentication via API Key.

Get API Key:

  1. Visit API Key Management Page to get your API Key

Usage: Add to request header:

x-api-key: YOUR_API_KEY

Note:

  • Keep your API Key secure and do not share it with others
  • If you suspect your API Key has been compromised, reset it immediately in the management page

Body

application/json
model
enum<string>
required

The model name to use for generation. Required field.

  • Must be suno/music-extend-upload for this endpoint
Available options:
suno/music-extend-upload
input
object
required

Input parameters for extending music based on an uploaded audio file.

Rules:

  • audio_url is required and must point to the uploaded audio file.
  • mode=simple: prompt is required.
  • mode=custom: continue_at, title and tags are required.
  • mode=custom and instrumental=false: lyrics is required.
  • model=v4: tags max length is 200 and lyrics max length is 3000.
callback_url
string<uri>

Optional. Callback URL for receiving task completion notifications.

  • System will POST task status and results to this URL when generation completes
  • Callback payloads structure is consistent with the data object returned by the task status query
  • Your callback endpoint should accept POST requests with JSON payload containing results
  • It returns an HTTP 200 status code upon successful receipt
Example:

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

Response

Request successful

code
enum<integer>

Response status code

  • 200: Success - Request has been processed successfully
  • 401: Unauthorized - Authentication credentials are missing or invalid
  • 402: Insufficient Credits - Account does not have enough credits to perform the operation
  • 404: Not Found - The requested resource or endpoint does not exist
  • 422: Validation Error - The request parameters failed validation checks
  • 429: Rate Limited - Request limit has been exceeded for this resource
  • 455: Service Unavailable - System is currently undergoing maintenance
  • 500: Server Error - An unexpected error occurred while processing the request
  • 501: Generation Failed - Content generation task failed
  • 505: Feature Disabled - The requested feature is currently disabled
Available options:
200,
401,
402,
404,
422,
429,
455,
500,
501,
505
message
string

Response message, error description when failed

Example:

"success"

data
object