Skip to main content
You can clone a voice in Anam Lab from a recording, or bring in a voice you already have with a provider. Each kind of provider voice reaches Anam a different way, so start by finding your voice in the table below. Your organization needs custom voice access to clone or import a voice. If Lab or the API reports an access error, contact Anam Support.

Choose how to add a voice

To check which kind an ElevenLabs voice is, open My Voices in ElevenLabs and use the Type filter: Voice Design, Instant Voice Clone, Professional Voice Clone or Default voices.

Clone or upload a voice in Lab

Sign in to Anam Lab and open the persona you want to update.
1

Open the cloning screen

Select the Voice tab, then Record or upload. The cloning screen supports both recording and uploading audio.
2

Record or upload audio

Choose the language and accent, then select Start recording to record a sample with your microphone, or Upload audio file to use an existing recording.For microphone recording, read the displayed script for 10–15 seconds. The recorder stops automatically at 15 seconds. Review your sample, then select Continue.
3

Name and clone the voice

Enter a Voice name and any other details, then select Clone voice and listen to the preview.
4

Use the voice

Select Use this voice to assign the clone to your persona, then Publish to apply the change.

Lab audio requirements

  • Upload WAV, MP3/MPEG, MP4/M4A, WebM, or OGG audio.
  • The file must be at least 10 KB and no larger than 50 MB (10,240–52,428,800 bytes).
  • The 15-second limit applies to the in-browser recorder, not to uploaded file duration. Uploaded files still need to pass file validation and the voice provider’s processing checks.

Import a provider voice in Lab

Select the Voice tab, then Import from provider. Lab asks two questions and then shows the one way your voice can reach Anam:
  1. Where is the voice from? ElevenLabs or Cartesia. Fish Audio appears where it’s enabled for your organization.
  2. What kind of voice is it? For ElevenLabs: Voice Library voice, Professional Voice Clone or Instant clone or designed voice. Every Cartesia voice imports the same way, so for Cartesia Lab asks How do you want to import it? instead.
Each choice says up front what it leads to, so a voice that needs a share link or your own key never goes through the voice ID form. Back returns to the previous step. Share-link import, connecting a provider account and your own ElevenLabs key are available to every organization.

Import ElevenLabs voices

The method depends on what kind of voice it is.

Public Voice Library voices

In Lab, choose ElevenLabs, then Voice Library voice. Paste the voice ID or a Voice Library link, pick the Voice model, and select Validate. When the preview is ready, name the voice and select Save voice. ElevenLabs’ default voices import the same way. The first import of a Voice Library voice can take about a minute while ElevenLabs adds it to Anam’s account. A Professional Voice Clone can be shared with Anam by link. Anam’s own ElevenLabs account then speaks it, so it works on personas with Zero Data Retention.
1

Turn on link sharing in ElevenLabs

In ElevenLabs, open My Voices, find the voice and select More actions (three dots), then Share Voice. Turn on Anyone with the link and copy the link.
2

Import the link in Lab

In Lab, choose ElevenLabs, then Professional Voice Clone. Paste the link into ElevenLabs share link and select Add & check. Lab adds the voice to Anam’s ElevenLabs account and shows which models it’s fine-tuned for.
3

Pick a model and import

Choose the Voice model, adjust the name if you want, and select Import. If you already have the voice on that model, the button reads Refresh preview and regenerates its preview instead of creating another voice.
A shared voice can be used by one Anam organization. Turning off link sharing in ElevenLabs later doesn’t remove Anam’s copy; contact Anam Support to have it removed.

Use your own ElevenLabs API key

Instant clones and Voice Design voices stay in the ElevenLabs account that made them, and ElevenLabs doesn’t let them be shared outside it. To use them, save your organization’s ElevenLabs API key in Anam. Anam then speaks those voices with your key, so you never share them. In Lab, your own key is for instant clones and Voice Design voices; a Professional Voice Clone in your account offers Use share link instead. To use one of your own Professional Voice Clones with your key, import it with the API (useOrganizationKey). You can also save the key with the API (manage your ElevenLabs key).
1

Choose the voice kind

In Lab, choose ElevenLabs, then Instant clone or designed voice.
2

Connect your ElevenLabs account

Select Sign in with ElevenLabs, or Use an API key instead and paste a key with Voices read and Text to Speech access. Lab lists the voices in your account.
3

Save the key and use the voice

Select Use your key on the voice. The first time, the Use your ElevenLabs API key dialog saves your organization’s key: paste it, or keep the key you connected with, and select Save key and use. Lab checks the voice with a preview; then name it and select Save voice.
What to know about your own key:
  • In Lab, only organization owners and admins can save or remove the key. Other members can use voices that speak with it, and are asked to have an owner or admin add it when none is saved. Over the API, an API key with voices:write access can save or remove it.
  • The saved key needs Text to Speech access. A key you paste to browse your voices in Lab also needs Voices read. Keys from ElevenLabs data-residency workspaces work; Anam uses the host that accepts the key.
  • Speech for these voices runs on your ElevenLabs plan, and ElevenLabs bills it there.
  • Your saved key shows under the voice list as its last four characters, with Remove. Removing it blocks new sessions and previews with the voices that use it until you save a key again, and the voice list marks those voices Needs your ElevenLabs API key. Sessions that already started keep running. Removing the key in Anam doesn’t revoke it in ElevenLabs; delete it there if you no longer need it.
  • Voices on your own key can’t be used on personas with Zero Data Retention, because the speech runs through your ElevenLabs account and its retention settings. ElevenLabs offers zero retention on its enterprise plans. If you need ZDR with your own voices, contact Anam Support.
  • Voices on your own key need a Cara 4 avatar. A session with an older avatar fails with 400 and asks you to choose a Cara 4 avatar or another voice.

Import Cartesia voices

A Cartesia library voice imports by its voice ID. A voice you made in Cartesia must be set to Shared first.
1

Share the voice in Cartesia

Open the voice’s sharing settings and select Shared. Cartesia describes this setting as Anyone with the voice ID can use it.
Cartesia voice sharing dialog with Shared selected so anyone with the voice ID can use the voice
2

Import the voice in Lab

In Lab, choose Cartesia, then Paste a voice ID. Paste the voice ID or a play.cartesia.ai voice link, select Validate, then Save voice.
To pick from the voices in your Cartesia account, choose Use a Cartesia API key instead. Create a key under API Keys in Cartesia, paste it and select Connect. Lab lists your voices, including private ones, and a private voice shows Make public, which sets it to public after you confirm.

Import voices with the API

POST /v1/voice-imports imports an existing provider voice. Anam generates a real preview before it saves the voice, so a successful response means the voice works. Use an API key with voices:write access. Imports are slow, so set your client’s timeout above 120 seconds. A voice ID import spends up to 5 seconds reading the voice’s details and up to 90 seconds generating the preview. A share-link import can take up to 110 seconds, and the endpoint allows 120 seconds in total. If your client gives up early, the import can still finish and create the voice: list your voices with GET /v1/voices before you retry a voice ID import, so you don’t create a duplicate. Retrying a share-link import doesn’t create a duplicate; it refreshes the voice. Send one of three inputs, depending on the kind of voice:

Import by voice ID

cURL
Omit providerModelId to use the provider’s default model. Omit displayName and description to take them from the provider. A successful request returns 201 with the new voice and a Location header. Repeating a request creates another voice.

Manage your ElevenLabs key with the API

Save your organization’s ElevenLabs API key once, then import voices that speak with it. A key you save this way only needs Text to Speech access.
cURL
Anam checks the key with ElevenLabs on each of its API hosts, including data-residency hosts, and stores it encrypted. Saving replaces any key already saved, including one saved in Lab. Each request returns the key’s status, never the key itself:
Response
enabled is always true. hint is the key’s last four characters, and voiceCount is how many voices speak with it. Saves are limited to 10 per organization per hour, counting saves made in Lab.

Import with your own ElevenLabs key

After you’ve saved a key, import any voice it can reach:
cURL
useOrganizationKey works only with provider: "ELEVENLABS" and a providerVoiceId. The request returns 201 with the new voice and a Location header. The voice has isZdr: false, so personas with Zero Data Retention can’t use it, and ElevenLabs bills its speech to the account the key belongs to.
cURL
With shareUrl, you can also send provider ("ELEVENLABS", or omit it), providerModelId and displayName. Any other field returns 400 invalid_request, and details.issues lists the fields you can send. The voice speaks with Anam’s ElevenLabs account, so it works on personas with Zero Data Retention. The response is 201 with the new voice and a Location header. If your organization already has this voice on the requested model, speaking with Anam’s ElevenLabs account, Anam regenerates its preview, applies any displayName, and returns that voice with 200. A copy of the same voice imported with useOrganizationKey doesn’t count.

Handle import errors

Every error returns JSON with a stable code, a message, retryable and a requestId. Two fields are optional:
  • details.issues appears when the body fails validation. The top-level message is then just Request validation failed, and each issue has a path and a message that says what to change.
  • docsUrl appears on errors with a page that explains the fix, such as voice_not_accessible and the organization_key_* errors. Don’t rely on it being present.
Authentication, permission and body errors all use invalid_request, so tell them apart by status: The other codes: If you’re building an integration or an agent that imports voices:
  • Branch on code, not on message. message can change wording; codes don’t.
  • Retry only when retryable is true, with a backoff.
  • On voice_not_accessible, don’t retry the same request. Ask which kind of voice it is, or use the table above to pick shareUrl or useOrganizationKey.
  • On organization_key_missing or organization_key_rejected, save a key with PUT /v1/voices/elevenlabs-key, then retry the import.
  • Show message to the person who supplied the voice. When details.issues is present, show each issue’s message instead; the top-level one is generic.
  • Set a client timeout above 120 seconds. If a voice ID import times out on your side, list your voices before retrying it.

Create a voice with the API

Use create voice for programmatic cloning. The API supports audio sent as multipart form data or an uploaded audio reference. For larger audio uploads, use create voice presigned upload, upload the audio to the returned URL, then pass the returned audioKey to create voice. Follow the API reference’s upload requirements rather than assuming the Lab file formats and limits apply to the API.

Next Steps

Avatar Gallery

Browse available avatars to pair with your voice

Persona Configuration

Learn more about configuring personas

Prompting Guide

Write effective system prompts for multilingual personas

Authentication

Understand session token creation
Last modified on October 23, 2026