curl --location 'https://api.myvocal.ai/sound_clone/api/v1/music/capabilities' \
--header 'accessKey: <your_api_key>'
{
"code": 1,
"message": "success",
"data": {
"accessState": "ENABLED",
"planKey": "PRO",
"ratePerMinute": 1920,
"rateVersion": "music-2026-08-26-v1",
"balances": { "monthly": "10500", "additional": "0", "total": "10500" },
"quoteTtlSeconds": 600,
"supportedDurationsSec": [60, 90, 120, 180],
"supportedVocalLanguages": [ { "code": "en", "name": "English" } ],
"genres": ["POP", "ROCK", "HIP_HOP", "ELECTRONIC", "RNB_SOUL", "INDIE", "JAZZ", "CINEMATIC", "FOLK_ACOUSTIC", "LATIN", "COUNTRY", "CLASSICAL"],
"moods": ["UPLIFTING", "ENERGETIC", "ROMANTIC", "DREAMY", "MELANCHOLIC", "DARK", "CALM", "HOPEFUL", "DRAMATIC", "PLAYFUL", "NOSTALGIC", "INTENSE"],
"vocalStyles": ["WARM_INTIMATE", "BRIGHT_ENERGETIC", "POWERFUL_ANTHEMIC", "SOFT_BREATHY"],
"lyricsModes": ["AUTO", "CUSTOM"],
"requestId": "..."
}
}
Text-to-Music
Music capabilities
Read the Text-to-Music account state, rate card and accepted enum values.
GET
/
sound_clone
/
api
/
v1
/
music
/
capabilities
curl --location 'https://api.myvocal.ai/sound_clone/api/v1/music/capabilities' \
--header 'accessKey: <your_api_key>'
{
"code": 1,
"message": "success",
"data": {
"accessState": "ENABLED",
"planKey": "PRO",
"ratePerMinute": 1920,
"rateVersion": "music-2026-08-26-v1",
"balances": { "monthly": "10500", "additional": "0", "total": "10500" },
"quoteTtlSeconds": 600,
"supportedDurationsSec": [60, 90, 120, 180],
"supportedVocalLanguages": [ { "code": "en", "name": "English" } ],
"genres": ["POP", "ROCK", "HIP_HOP", "ELECTRONIC", "RNB_SOUL", "INDIE", "JAZZ", "CINEMATIC", "FOLK_ACOUSTIC", "LATIN", "COUNTRY", "CLASSICAL"],
"moods": ["UPLIFTING", "ENERGETIC", "ROMANTIC", "DREAMY", "MELANCHOLIC", "DARK", "CALM", "HOPEFUL", "DRAMATIC", "PLAYFUL", "NOSTALGIC", "INTENSE"],
"vocalStyles": ["WARM_INTIMATE", "BRIGHT_ENERGETIC", "POWERFUL_ANTHEMIC", "SOFT_BREATHY"],
"lyricsModes": ["AUTO", "CUSTOM"],
"requestId": "..."
}
}
Read this endpoint first. It tells you what the account may do and which enum values the write endpoints accept, so you never have to hard-code them.
Header
string
required
API key for authentication.
Response
string
Whether this account may use Text-to-Music:
ENABLED or DISABLED. DISABLED means generation is not available for the account.string
The account’s plan, for example
STANDARD, PRO, BUSINESS or ENTERPRISE.number
Characters per minute for this account. The charge is
ceil(durationSec × ratePerMinute / 60).string
Version label of the applicable rate.
object
{ monthly, additional, total }, each a JSON string. Convert before comparing.number
How long a quote stays valid. Currently
600.array
The durations you may request:
60, 90, 120, 180.array
Entries shaped
{ code, name }. Send the code as vocalLanguage, not the display name.array
Accepted
genre values: POP, ROCK, HIP_HOP, ELECTRONIC, RNB_SOUL, INDIE, JAZZ, CINEMATIC, FOLK_ACOUSTIC, LATIN, COUNTRY, CLASSICAL.array
Accepted
moods values: UPLIFTING, ENERGETIC, ROMANTIC, DREAMY, MELANCHOLIC, DARK, CALM, HOPEFUL, DRAMATIC, PLAYFUL, NOSTALGIC, INTENSE.array
Accepted
vocalStyle values: WARM_INTIMATE, BRIGHT_ENERGETIC, POWERFUL_ANTHEMIC, SOFT_BREATHY.array
AUTO, CUSTOM.curl --location 'https://api.myvocal.ai/sound_clone/api/v1/music/capabilities' \
--header 'accessKey: <your_api_key>'
{
"code": 1,
"message": "success",
"data": {
"accessState": "ENABLED",
"planKey": "PRO",
"ratePerMinute": 1920,
"rateVersion": "music-2026-08-26-v1",
"balances": { "monthly": "10500", "additional": "0", "total": "10500" },
"quoteTtlSeconds": 600,
"supportedDurationsSec": [60, 90, 120, 180],
"supportedVocalLanguages": [ { "code": "en", "name": "English" } ],
"genres": ["POP", "ROCK", "HIP_HOP", "ELECTRONIC", "RNB_SOUL", "INDIE", "JAZZ", "CINEMATIC", "FOLK_ACOUSTIC", "LATIN", "COUNTRY", "CLASSICAL"],
"moods": ["UPLIFTING", "ENERGETIC", "ROMANTIC", "DREAMY", "MELANCHOLIC", "DARK", "CALM", "HOPEFUL", "DRAMATIC", "PLAYFUL", "NOSTALGIC", "INTENSE"],
"vocalStyles": ["WARM_INTIMATE", "BRIGHT_ENERGETIC", "POWERFUL_ANTHEMIC", "SOFT_BREATHY"],
"lyricsModes": ["AUTO", "CUSTOM"],
"requestId": "..."
}
}
Common errors
code = 401,"Key verification failed": theaccessKeyis missing, invalid or disabled. This is returned with HTTP200and nodatafield.code = 47018: Text-to-Music is not available for this account or cohort.
