sonic

create / extend / cover / remaster / add vocals / add instrumental

Unified endpoint for creating, extending, and covering music. The operation is determined by the task_type parameter.

Credits cost: 20 per generation call (create_music, description mode, cover_music, persona_music) on every model. extend_music, remaster, add_vocals and add_instrumental cost 15, and concat_music costs 2. persona_music with max_mode: true costs 40.

Suno's v6 release on 2026-09-09 did not change any mv value here — see Sonic Instructions and the API Changelog.

post/api/v1/sonic/create

Request

  • Base URL
    https://api.musicapi.ai
  • URL
    https://api.musicapi.ai/api/v1/sonic/create
  • Auth
    HTTP bearer

Request body

task_type'create_music' | 'extend_music' | 'cover_music' | 'concat_music' | 'persona_music' | 'remaster' | 'add_instrumental' | 'add_vocals'

Operation type. Default is "create_music" if not specified.

custom_modeboolean required

true = custom lyrics mode (requires prompt), false = AI description mode (requires gpt_description_prompt). Not needed for concat_music.

mv'sonic-v6' | 'sonic-v6-wild' | 'sonic-v6-mini' required

Music model version. Not needed for concat_music. Suno retired v3.5 through v5.5 on 2026-09-09 and maps every retired id onto v6, so sonic-v3-5, sonic-v4, sonic-v4-5, sonic-v4-5-plus, sonic-v5 and sonic-v5-5 are still accepted and run v6 — existing integrations need no change.

promptstring

Song lyrics with structure tags [Verse], [Chorus], [Bridge], [Outro]. Required when custom_mode=true . Max 5000 chars.

gpt_description_promptstring

AI description of desired music. Required when custom_mode=false. Max 400 chars.

titlestring

Song title. Max 80 characters.

tagsstring

Music style tags (comma-separated). Max 1000 chars.

negative_tagsstring

Tags to avoid (comma-separated).

make_instrumentalboolean

true = generate instrumental without vocals.

auto_lyricsboolean

true = AI generates lyrics,title,tags from prompt. Requires custom_mode=true.

continue_clip_idstring

Source clip_id. Required for extend_music, cover_music, concat_music.

continue_atnumber

Timestamp (seconds) to continue from. Required for extend_music.

persona_idstring

Virtual singer ID from create-persona. Required for persona_music.

audio_weightnumber

Reference audio influence (0-1). For cover_music: how closely the result follows the original audio. For persona_music: how strongly the song follows the Persona's reference voice (try 0.7-0.9 for voice likeness). Higher = closer.

style_weightnumber

Style tag influence (0-1). Higher = stronger style adherence.

weirdness_constraintnumber

Creativity level (0-1). Higher = more experimental.

vocal_gender'f' | 'm'

Vocal gender: 'f' (female), 'm' (male). Supported on every current model.

variation_category'subtle' | 'normal' | 'high'

Remaster variation level. Only applies to the remaster task on sonic-v5 / sonic-v5-5; upstream has not documented it for v6.

overpainting_start_snumber

Start time (seconds) for add_instrumental/add_vocals. Specifies where to begin adding content.

overpainting_end_snumber

End time (seconds) for add_instrumental/add_vocals. Specifies where to stop adding content.

webhook_urlstring

HTTPS URL for completion webhook.

webhook_secretstring

Secret for webhook signature verification.

use_suno_cdnboolean required

Optional. Accepted for backward compatibility; it no longer changes the link host. Result audio/image URLs are always served from our delivery CDN, whether this is true, false or omitted. Non-boolean values return 400 validation_error.

durationinteger

Target song length in seconds. Range 10-360. The generated track lands close to the requested length rather than exactly on it. Only for task_type create_music, persona_music, extend_music and cover_music; sending it with any other task_type returns a validation error.

variety'off' | 'normal' | 'high' | 'extra' | 'max'

Only for persona_music. How far the style may wander from the tags. off keeps the voice closest to the Persona. Default upstream behaviour is normal. Sending it with any other task_type returns a validation error.

max_modeboolean

Only for persona_music. Spends more compute on consistency across the whole song. Doubles the credit cost (40 instead of 20 per generation); a failed max_mode generation refunds the full amount. Sending it with any other task_type returns a validation error.

Example request

{
  "duration": 120,
  "variety": "off",
  "max_mode": true
}

Response

Success

codeinteger required

Response code (200 for success)

task_idstring required

Task ID for polling with get-music endpoint

messagestring required

Response message

Changes

No recorded changes to this operation across all 1 revision of this API.