curl --location 'https://api.myvocal.ai/sound_clone/api/v1/interpretation/uploads/iu_.../parts' \
--header 'accessKey: <your_api_key>' \
--header 'Content-Type: application/json' \
--data '{ "partNumber": 1 }'
{
"code": 1,
"message": "success",
"data": {
"uploadId": "iu_...",
"partNumber": 1,
"method": "PUT",
"url": "https://<storage-host>/...",
"requiredHeaders": { "Content-Length": "16777216" },
"expiresAt": "2027-01-15T16:07:11",
"requestId": "..."
}
}
Upload the source
Sign an upload part
Get a presigned URL for one part of an upload session.
POST
/
sound_clone
/
api
/
v1
/
interpretation
/
uploads
/
{uploadId}
/
parts
curl --location 'https://api.myvocal.ai/sound_clone/api/v1/interpretation/uploads/iu_.../parts' \
--header 'accessKey: <your_api_key>' \
--header 'Content-Type: application/json' \
--data '{ "partNumber": 1 }'
{
"code": 1,
"message": "success",
"data": {
"uploadId": "iu_...",
"partNumber": 1,
"method": "PUT",
"url": "https://<storage-host>/...",
"requiredHeaders": { "Content-Length": "16777216" },
"expiresAt": "2027-01-15T16:07:11",
"requestId": "..."
}
}
Interpretation · Translate and dub uploaded audio/video · Workflow: Interpretation quickstart · Polling: Async jobs and retries
Requests a presigned URL for one part number. You then
PUT that part’s bytes directly to the returned URL.
Header
string
required
Your API key. See Authentication.
Path
string
required
The upload session identifier.
Body
number
required
The part to sign: from
1 to totalParts.Response
string
The upload session.
number
The signed part.
string
The HTTP method to use, normally
PUT.string
The presigned URL to send the part bytes to.
object
Headers that must be included with the request to the presigned URL.
string
When the presigned URL expires (15 minutes by default). Request it again for the same part if it expires.
curl --location 'https://api.myvocal.ai/sound_clone/api/v1/interpretation/uploads/iu_.../parts' \
--header 'accessKey: <your_api_key>' \
--header 'Content-Type: application/json' \
--data '{ "partNumber": 1 }'
{
"code": 1,
"message": "success",
"data": {
"uploadId": "iu_...",
"partNumber": 1,
"method": "PUT",
"url": "https://<storage-host>/...",
"requiredHeaders": { "Content-Length": "16777216" },
"expiresAt": "2027-01-15T16:07:11",
"requestId": "..."
}
}
The presigned URL points at object storage, not at MyVocal. Do not send your
accessKey or any credential to it: the URL’s signature is the authorization, and it is already scoped to this one part.Common errors
code = 47126: the part number is outside1..totalParts.code = 47124: the upload session does not exist, is not owned by your account, or is no longer usable.code = 47127: object storage is unavailable — retry.
