Clone a voice (SDK add)
/el/v1/voices/addClones a voice with ElevenLabs voices.add(). The returned voice_id is an AllModels voice ID and works as the {voice_id} path parameter on the /el text-to-speech endpoints. AllModels clones on ITS OWN providers, not on ElevenLabs: send x-allmodels-provider to choose one, or let AllModels pick the provider that needs nothing the SDK cannot send. Cloning is charged once, when the voice is created, and only clone voices you have the speaker's permission to use — sending this request is that attestation.
Tenant key (ElevenLabs SDK convention).
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
const body = new FormData();body.set(name, "My Narrator")fetch("https://example.com/el/v1/voices/add", { method: "POST", headers: { "Content-Type": "multipart/form-data" }, body}){ "voice_id": "AM:@narrator", "requires_verification": true}{ "detail": { "message": "string", "status": "string", "property1": null, "property2": null }}{ "error": "missing_api_key"}{ "detail": { "message": "string", "status": "string", "property1": null, "property2": null }}{ "detail": { "message": "string", "status": "string", "property1": null, "property2": null }}{ "detail": { "message": "string", "status": "string", "property1": null, "property2": null }}{ "detail": { "message": "string", "status": "string", "property1": null, "property2": null }}{ "detail": { "message": "string", "status": "string", "property1": null, "property2": null }}{ "detail": { "message": "string", "status": "string", "property1": null, "property2": null }}{ "detail": { "message": "string", "status": "string", "property1": null, "property2": null }}{ "detail": { "message": "string", "status": "string", "property1": null, "property2": null }}Get Speech Engine signed URL GET
Returns a short-lived, single-use WebSocket URL that a browser or mobile client can open without receiving your AllModels API key.
Get one cloned voice (SDK get) GET
Reads one voice with ElevenLabs `voices.get()`. Only voices your own organization cloned are addressable here — use the voice listings to discover the shared catalogue — and a clone that is not yet usable answers 404 until it is. Addressed by the `AM:@<name>` voice ID, which is the only voice reference AllModels publishes.
