Skip to main content
POST
/
api
/
v1
/
client
/
job
/
CreateTask
Suno music generation
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 @- <<EOF
{
  "model": "suno/music-generate",
  "callback_url": "https://your-domain.com/api/callback",
  "input": {
    "mode": "custom",
    "model": "v5",
    "instrumental": false,
    "title": "Midnight Addiction",
    "tags": "Western R&B, female vocal, dark, sensual, slow tempo, moody",
    "lyrics": "[Verse 1]\nI still taste your words in the dark\nLike a flame leaving invisible scars\n\n[Chorus]\nYou're my midnight addiction\nNo cure for this condition",
    "vocal_gender": "f",
    "style_weight": 0.85,
    "weirdness_constraint": 0.2,
    "negative_tags": "metal, aggressive"
  }
}
EOF
{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "task_12345678"
  }
}

Important Notes

  • Supports two generation modes: simple and custom
  • This endpoint generates music based on your text prompts(simple model) or custom lyrics and styles(custom model)
  • Each request generates a maximum of two different music variations
  • You can control the level of detail through the generation mode and instrumental-only settings
For new users, it is recommended to start with the simple mode(mode=simple).

Generate Music (Simple Mode)

Generate music with just one text prompt, no other complicated parameters required.

Response Example

{
	"model": "suno/music-generate",
	"callback_url": "",
	"input": {
        "mode": "simple",
        "model": "v5",
        "instrumental": false,
        "prompt": "A dark and sensual Western R&B song with smooth and breathy female vocals, slow tempo, minimal beat, deep bass, moody atmosphere, about heartbreak and toxic love, late night vibe, intimate and emotional."
    }
}

Generate Music (Custom Mode)

Custom song generation requires a song title, style, and lyrics (unless generating an instrumental), along with optional advanced parameter settings.
{
	"model": "suno/music-generate",
	"callback_url": "",
	"input": {
        "mode": "custom",
        "model": "v5",
        "title": "Midnight Addiction",
        "tags": "Western R&B, female vocal, dark, sensual, slow tempo, moody, emotional",
        "lyrics": "[Verse 1]\nI still taste your words in the dark\nLike a flame leaving invisible scars\nYou pull me close just to let go\nAnd I keep falling into your shadow\n\n[Chorus]\nYou're my midnight addiction\nNo cure for this condition\nEven when it hurts, I stay\nLost in your contradiction\n\n[Verse 2]\nEvery silence feels so loud\nWhen your love ain't around\nI know I should walk away\nBut I'm too deep to escape now",
        "vocal_gender": "f",
        "style_weight": 0.85,
        "weirdness_constraint": 0.2
    }
}

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-generate for this endpoint
Available options:
suno/music-generate
input
object
required

Input parameters for Suno music generation.

Rules:

  • mode=simple: prompt is required.
  • mode=custom: 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