Skip to content
Open CastalyConsole

Video

Create an audio asset

Add an audio track to an existing group for supported Seedance workflows.

This page documents the Modelflare asset-management route. Calls require a valid media API key, an available media channel, and the required permission.

POST https://modelflare.dev/volc/asset/CreateAsset

Use a Modelflare API key:

Terminal windowbash
-H "Authorization: Bearer YOUR_MODELFLARE_API_KEY"

Send Idempotency-Key with create, update, and delete requests. Retrying the same key for the same user replays the saved response without repeating the mutation.

Add an audio track to an existing group for supported Seedance workflows.

Field Type Required Description Example
GroupId string Yes Target asset group ID. group-20260320141746-zsf6b
AssetType Audio Yes Must be Audio. Audio
URL string Yes Public URL, data URI, or raw Base64. WAV or MP3 only, 2–30 seconds, no more than 15 MB. https://example.com/audio.mp3
file binary No Multipart alternative to URL with the same audio constraints. audio.mp3
Name string No Display/search name, up to 64 characters. background-music
model string Yes Use volc-asset-audio for the standard route or volc-asset-audio-nsfw for the separately authorized sensitive-content route. volc-asset-audio
ProjectName string No Project name. It must match the target group; defaults to default. default

JSON example:

JSON
{
"model": "volc-asset-audio",
"GroupId": "group-20260320141746-zsf6b",
"Name": "background-music",
"AssetType": "Audio",
"URL": "https://example.com/audio.mp3",
"ProjectName": "default"
}

multipart/form-data example:

Terminal windowbash
curl --request POST https://modelflare.dev/volc/asset/CreateAsset \
--header "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
--form "model=volc-asset-audio" \
--form "GroupId=group-20260320141746-zsf6b" \
--form "file=@audio.mp3"

The audio has entered asynchronous processing. Poll GetAsset until Status is Active or Failed. There is no upload-time SLA; a typical audio file takes about 3–6 seconds, while a busy review queue can take roughly 10 seconds to 2 minutes.

Field Type Required Description Example
Id string Yes Asset ID. Use asset://<ID> only after the status is Active. asset-20260528140922-d9646

Response example:

JSON
{
"Id": "asset-20260528140922-d9646"
}
Status Meaning
400 The request is invalid.
401 The API key is missing or unauthorized.

Error body example (when returned):

JSON
{
"error": {
"code": "invalid_request",
"message": "Request validation failed."
}
}

Image, video, and audio creation are asynchronous. After receiving an asset ID, call GetAsset and use the asset://<ID> reference only when the status is Active.