Docs
Voice Management
List, clone, and delete voices.
Manage your Stealth TTS voices — list available voices, clone custom voices from audio samples, and delete cloned voices.
GET/api/voices/stealth
List available Stealth voices. Returns built-in voices plus any voices you have cloned.
Response Fields
| Field | Type | Description |
|---|---|---|
| voice_id | string | Use this as the voice_id parameter in /api/generate-simple |
| name | string | Display name of the voice |
| language | string | Language code (e.g. en, es, de) |
| is_cloned | boolean | Whether this voice was cloned by you |
200 Success 401 Auth failed
curl "https://api.algrow.online/api/voices/stealth" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"success": true,
"voices": [
{
"voice_id": "james",
"name": "James",
"language": "en",
"description": "",
"tags": [],
"is_cloned": false
},
{
"voice_id": "my-custom-voice",
"name": "My Custom Voice",
"language": "en",
"description": "Cloned from sample",
"tags": ["custom"],
"is_cloned": true
}
]
}POST/api/voices/clone
Clone a custom Stealth voice from an audio sample. Upload up to 30 seconds of clear speech audio. The cloned voice can then be used with provider=stealth in the generate endpoint.
Clone limits by plan: Professional — 30 clones, Ultimate — unlimited. Requires Professional or Ultimate plan.
Request Parameters (multipart form-data)
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| displayName | string | Required | — | Name for the cloned voice |
| audioFile | file | Required | — | Audio sample (MP3, WAV, M4A, OGG, WEBM). Max 15MB, max 30 seconds. |
| langCode | string | Optional | EN_US | Language of the audio. Values: EN_US, ES_ES, FR_FR, DE_DE, PT_BR, IT_IT, JA_JP, KO_KR, ZH_CN, RU_RU, AR_SA, PL_PL, NL_NL, HI_IN, HE_IL |
| transcription | string | Optional | — | Text transcription of the audio sample (improves clone quality) |
| description | string | Optional | — | Description of the voice |
| tags | string | Optional | — | Comma-separated tags (e.g. narrator,deep) |
| removeBackgroundNoise | string | Optional | false | Set to true to remove background noise from the sample |
200 Created 400 Validation error 401 Auth failed 403 Plan / limit
curl -X POST "https://api.algrow.online/api/voices/clone" \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "displayName=My Narrator" \ -F "langCode=EN_US" \ -F "audioFile=@sample.mp3" \ -F "transcription=Hello, this is a sample of my voice." \ -F "removeBackgroundNoise=true"
{
"success": true,
"voice": {
"voice_id": "my-narrator",
"name": "My Narrator",
"language": "EN_US",
"description": "",
"tags": []
}
}DELETE/api/voices/stealth/:voice_id
Delete a cloned Stealth voice. Only voices you own can be deleted. This action is permanent.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| voice_id | string | Required | The voice_id of the cloned voice to delete |
200 Deleted 401 Auth failed 404 Not found
curl -X DELETE "https://api.algrow.online/api/voices/stealth/my-narrator" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"success": true
}GET/api/voices/minimax
List MiniMax voices you have cloned. MiniMax has no built-in catalog — every voice in your library was created via /api/voices/minimax/clone. Requires Professional or Ultimate plan.
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Required | Bearer token: Bearer YOUR_API_KEY |
Response Fields
| Field | Type | Description |
|---|---|---|
| voice_id | string | Use this as the voice_id parameter in /api/generate-simple with provider=minimax |
| name | string | Display name you assigned when cloning |
| language | string | Language tag assigned at clone time (e.g. English, Spanish) |
| is_cloned | boolean | Always true — MiniMax voices are user-cloned only |
| created_at | string | ISO-8601 timestamp when the voice was cloned |
200 Success 401 Auth failed 403 Plan required
curl "https://api.algrow.online/api/voices/minimax" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"success": true,
"voices": [
{
"voice_id": "user_abc123_my_narrator",
"name": "My Narrator",
"language": "English",
"is_cloned": true,
"created_at": "2026-06-01T12:00:00"
}
]
}POST/api/voices/minimax/clone
Clone a custom MiniMax voice from an audio sample. Upload a clear speech sample of at least 30 seconds. The cloned voice can then be used with provider=minimax in the generate endpoint. Requires Professional or Ultimate plan.
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Required | Bearer token: Bearer YOUR_API_KEY |
| Content-Type | string | Auto | Set automatically by curl -F. If manual: multipart/form-data |
Clone limits by plan: Professional — 8 clones, Ultimate — 15 clones. Requires Professional or Ultimate.
Request Parameters (multipart form-data)
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| voice_name | string | Required | — | Display name for the cloned voice |
| audio_file | file | Required | — | Audio sample (MP3, WAV, M4A, OGG, WEBM). Max 5MB. Min 30 seconds. |
| language | string | Optional | English | Language of the sample. Values: English, Chinese, Spanish, French, German, Italian, Portuguese, Polish, Russian, Ukrainian, Czech, Slovak, Croatian, Serbian, Bulgarian, Dutch, Romanian, Swedish, Norwegian, Afrikaans, Catalan, Greek, Lithuanian, Latvian, Vietnamese, Indonesian, Malay, Tagalog, Swahili, Hindi, Japanese, Korean, Danish, Finnish, Hungarian, Slovenian |
| need_noise_reduction | string | Optional | true | Set to false to skip background-noise reduction on the sample |
Response Fields
| Field | Type | Description |
|---|---|---|
| voice_id | string | Use this as the voice_id parameter in /api/generate-simple with provider=minimax |
| name | string | Display name you supplied |
| language | string | Language tag assigned to the clone |
| is_cloned | boolean | Always true |
200 Created 400 Validation error 401 Auth failed 403 Plan / limit 502 Upstream error
curl -X POST "https://api.algrow.online/api/voices/minimax/clone" \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "voice_name=My Narrator" \ -F "audio_file=@sample.mp3" \ -F "language=English" \ -F "need_noise_reduction=true"
{
"success": true,
"voice": {
"voice_id": "user_abc123_my_narrator",
"name": "My Narrator",
"language": "English",
"is_cloned": true
}
}DELETE/api/voices/minimax/{voice_id}
Delete one of your cloned MiniMax voices. Removes the voice from your library and best-effort deletes it upstream. Requires Professional or Ultimate plan.
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Required | Bearer token: Bearer YOUR_API_KEY |
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| voice_id | string | Required | The voice_id of one of your cloned MiniMax voices (from /api/voices/minimax) |
200 Deleted 401 Auth failed 403 Plan required 404 Not owned
curl -X DELETE "https://api.algrow.online/api/voices/minimax/user_abc123_my_narrator" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"success": true
}