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
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": "..."
}
}
Requests a presigned URL for one part number. You then
PUT that part’s bytes directly to the returned URL.
Header
string
required
API key for 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.
