> ## Documentation Index
> Fetch the complete documentation index at: https://heygen-1fa696a7.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# HeyGen Instant Clone

> Clone a speaker's voice from a single recording in minutes on HeyGen's Starfish engine, then use it for text-to-speech and avatar videos.

<img className="w-full h-44 object-cover rounded-xl" src="https://mintcdn.com/heygen-1fa696a7/hfMXXwJzjE7vBSYZ/images/theme/research-2.webp?fit=max&auto=format&n=hfMXXwJzjE7vBSYZ&q=85&s=d6ee10585b27ddaf8137d6ed67791708" alt="" noZoom width="1400" height="788" data-path="images/theme/research-2.webp" />

Full schema: [`POST /v3/voices/clone`](/reference/clone-a-voice).

An instant clone creates a usable voice from one recording in minutes. It runs on the Starfish engine, so the voice works wherever Starfish-compatible voices do: [Third Party Speech](/docs/voices/speech) and [`POST /v3/videos`](/reference/create-video). For a studio-grade clone trained on the [HeyGen Voice](/docs/models/heygen-voice) model, see [HeyGen Professional Clone](/docs/voices/professional-voice-clone). Instant cloning on third-party voice engines is coming soon.

## Create the clone

```bash theme={null}
curl -X POST "https://api.heygen.com/v3/voices/clone" \
  -H "X-Api-Key: $HEYGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "voice_name": "Customer narrator",
    "audio": {
      "type": "url",
      "url": "https://example.com/recording.wav"
    }
  }'
```

```json Response theme={null}
{
  "data": {
    "voice_clone_id": "1bd001e7e50f421d891986aad5c8bbd2"
  }
}
```

`audio` is a public HTTPS URL, a HeyGen `asset_id` from the [Assets API](/docs/upload-assets), or inline base64 with a `media_type`. Optionally pass a `language` hint such as `es` (auto-detected when omitted); `remove_background_noise` defaults to `true`. Each account has a clone allowance, and a request past it returns `400 resource_limit_reached`; deleting a clone with [`DELETE /v3/voices/{voice_id}`](/reference/delete-a-voice) frees the slot.

## Poll clone status

Cloning runs asynchronously. Poll [`GET /v3/voices/{voice_clone_id}`](/reference/get-voice) until `status` is `complete`:

```bash theme={null}
curl "https://api.heygen.com/v3/voices/1bd001e7e50f421d891986aad5c8bbd2" \
  -H "X-Api-Key: $HEYGEN_API_KEY"
```

| Status       | Meaning                                                       |
| ------------ | ------------------------------------------------------------- |
| `processing` | The clone is still being created.                             |
| `complete`   | The voice is ready to use.                                    |
| `failed`     | Cloning ended unsuccessfully. Retry with a cleaner recording. |

## Use the voice

Once `complete`, the `voice_clone_id` works anywhere a `voice_id` does: pass it to [Third Party Speech](/docs/voices/speech) for standalone audio, or to [`POST /v3/videos`](/reference/create-video) to narrate an avatar video. Cloned voices appear in [`GET /v3/voices?type=private`](/reference/list-voices).
