Skip to main content
GET
/
suno
/
v2
/
generate
/
schema
Generate Schema
curl --request GET \
  --url https://api.mountsea.ai/suno/v2/generate/schema
{
  "task": "<string>",
  "description": "<string>",
  "required": [
    {}
  ],
  "optional": [
    {}
  ],
  "notAllowed": [
    {}
  ],
  "example": {}
}
This endpoint helps you understand what parameters are required or optional for each task type when using the Generate endpoint.
Recommended Workflow: Before calling /generate, first call this endpoint with your desired task type to understand exactly which fields to include in your request.

Query Parameters

task
string
The task type to get schema for. If not provided, returns schemas for all tasks.
ValueDescription
createCreate new music from scratch
extendExtend existing music
upload_extendExtend uploaded audio
upload_coverCover uploaded audio
coverCreate cover of existing clip
use_styles_lyricsUse styles from existing clip with new lyrics
replace_sectionReplace a section of existing audio
add_instrumentalAdd instrumental to audio
add_vocalsAdd vocals to audio
gen_stem_twoGenerate two-track stems
gen_stem_allGenerate all stems
mashupMashup two songs

Response

Returns an array of task schema objects containing:
task
string
The task type identifier.
description
string
Human-readable description of the task.
required
array
List of required fields with their descriptions, types, and examples.
optional
array
List of optional fields with their descriptions, types, and examples.
notAllowed
array
List of fields that will be ignored for this task type.
example
object
A complete request example for this specific task.

Example

curl -X GET "https://api.mountsea.ai/suno/v2/generate/schema" \
  -H "Authorization: Bearer your-api-key"

Response Example

[
  {
    "task": "extend",
    "description": "Extend existing music",
    "required": [
      {
        "field": "clip_id",
        "description": "Source clip ID",
        "example": "clip_abc123",
        "type": "string"
      }
    ],
    "optional": [
      {
        "field": "continue_at",
        "description": "Continue position in seconds",
        "example": 30,
        "type": "number"
      },
      {
        "field": "tags",
        "description": "Style tags",
        "example": "Pop, Happy",
        "type": "string"
      },
      {
        "field": "prompt",
        "description": "Lyrics or prompt text",
        "example": "[Verse]\nHello world...",
        "type": "string"
      }
    ],
    "notAllowed": [
      "range",
      "audio_url"
    ],
    "example": {
      "task": "extend",
      "model": "chirp-v50",
      "clip_id": "clip_abc123",
      "continue_at": 30,
      "tags": "Pop, Happy"
    }
  }
]

Task Types Overview

TaskDescriptionKey Required Fields
createCreate new musicmodel
extendExtend existing clipclip_id, model
upload_extendExtend uploaded audioaudio_url, model
upload_coverCover uploaded audioaudio_url, model
coverCover existing clipclip_id, model
use_styles_lyricsUse styles with new lyricsclip_id, model
replace_sectionReplace audio sectionclip_id, range, infill_context_range, continued_aligned_prompt, model
add_instrumentalAdd instrumentalclip_id, range, model
add_vocalsAdd vocalsclip_id, range, model
gen_stem_twoTwo-track stemsclip_id, model
gen_stem_allAll stemsclip_id, model
mashupMashup two songsmashup_clip_ids, model
All tasks require task and model fields. Use this endpoint to get the complete list of required and optional fields for each specific task type.