Capability

Song Generation

Four operations sharing one output shape: prompt-based generation, style-matching from a reference, and melody/MIDI-guided generation. Available in v5, v6, and v7.

Compat route available

POST /v{5,6,7}/generate/song covers generate_song, similar_song, and melody_to_song with old-style field names — no tool_id needed. See Compat Routes. midi_to_song has no compat route; use the native path below.

Quickstart

POST/v7/generate/songcompat route, simplest way to start

curl -X POST https://apiv2.soundverse.ai/v7/generate/song \ -H "Authorization: Bearer sksoundverse_..." \ -H "Content-Type: application/json" \ -H "Idempotency-Key: song-req-001" \ -d '{ "prompt": "uplifting indie pop, female vocals", "lyrics": "walking through the city lights...", "parameters": {"versions": 2} }'

Response: 201 {"job_id": "...", "status": "queued"}. Poll GET /v7/status?job_id=... or GET /v1/generations/{job_id}.

Use a saved voice clone

After a Voice Cloning task completes, add its vocal_id (for example, sv_voice_...) to a prompt-based or reference-song request to sing the result in that saved voice. The ID must belong to your account and have active consent. Do not send a provider voice ID. Saved voices are not supported with melody_url.

generate_song — native payload

POST/v1/generationstool_id for (model, "generate_song")

FieldTypeRequiredDefaultDescription
promptstringNo""Style, mood, genre. Up to 1024 characters.
lyricsstringNo""Lyrics for the song. Up to 3000 characters.
genderstringNo""Preferred vocal gender: 'female' or 'male'. Optional.
vocal_idstringNo""Optional saved Soundverse voice ID (sv_voice_...) created by Voice Cloning. Must be owned by your account and have active consent.
versionsintegerNo1Number of versions to generate. 1–3.

similar_song — native payload

POST/v1/generationstool_id for (model, "similar_song")

FieldTypeRequiredDefaultDescription
song_referencefile inputYesA song whose style to match. mp3/m4a, ~30s, up to 15MB. See Overview → Providing audio/file input for the ref/url/data_b64 shapes.
lyricsstringNo""Up to 3000 characters.
vocal_idstringNo""Optional saved Soundverse voice ID (sv_voice_...) to use while matching the reference song's style.
versionsintegerNo11–3.

melody_to_song — native payload

POST/v1/generationstool_id for (model, "melody_to_song")

FieldTypeRequiredDefaultDescription
melodyfile inputYesA melody clip to follow. mp3/m4a/.mid, 5–60s, up to 15MB.
lyricsstringNo""Up to 3000 characters.
versionsintegerNo11–3.

Not every version supports melody-following (it requires a clone-capable backing model). A version that doesn’t returns a mid-run error, not a validation error — the request is accepted, then fails.

midi_to_song — native only

POST/v1/generationstool_id for (model, "midi_to_song")

No compat route exists for this operation — the old API never had a MIDI input field.

FieldTypeRequiredDefaultDescription
midifile inputYesA .mid file to follow. 5–60s (duration is informational for MIDI — it carries no audio duration).
lyricsstringNo""Up to 3000 characters.
versionsintegerNo11–3.

Same clone-model caveat as melody_to_song above.

Pricing

VersionRoyalty-FreeStandardDistributionSyncMaster
v5$0.07$0.11$0.14$0.28$0.70
v6$0.10$0.15$0.20$0.39$0.98
v7$0.12$0.25$0.27$0.67$1.67

USD per song, by license tier.

Same price for all 4 operations at a given version.