---
title: "Get an Audio Voice"
method: GET
path: "/v3/models/audio/voices/{voice_id}"
tags: ["Models"]
---

# Get an Audio Voice

`GET /v3/models/audio/voices/{voice_id}`

## Request

- Base URL: `https://api.heygen.com`
- URL: `https://api.heygen.com/v3/models/audio/voices/{voice_id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Returns one model-backed audio voice, owned by the caller's workspace or public, and its current lifecycle state. `PENDING` covers queued and running work, `ACTIVE` is ready for inference, and `FAILED` is terminal. An instant voice is `ACTIVE` as soon as it can speak.

## Path parameters

- `voice_id` string, required

## Response `200`

Successful response

- object
  - `data` ModelAudioVoiceResponse: Customer-visible state of one model-backed audio voice.
    - `voice_id` string, required: Stable identifier for this voice.
    - `mode` 'professional' | 'instant', required: `professional` for a professional voice clone, `instant` for an instant voice clone.
    - `name` string, required: Display name of the voice.
    - `language` string, nullable: Primary language code of the voice. An instant clone created without one has none until its recording passes every check and the detected language is recorded, so a clone refused before that never gets one. A professional voice created without one has none until it is ACTIVE.
    - `status` 'PENDING' | 'ACTIVE' | 'FAILED', required: Values persisted in ``video_tts_voices.status``.
    - `created_at` integer, required: Unix timestamp in seconds when the voice was created.
    - `failure_reason` 'INVALID_AUDIO' | 'INSUFFICIENT_AUDIO' | 'PREPROCESSING_FAILED' | 'TRAINING_FAILED' | 'DESIGN_FAILED' | 'ARTIFACT_VALIDATION_FAILED' | 'INTERNAL_ERROR': Stable failure codes persisted for terminal training failures.
    - `preview_audio_url` string, nullable: URL to a WAV clip of this voice reading a short fixed preview script: in its language when a script exists for it, otherwise in English. Present only when `status` is `ACTIVE` and a clip exists. The URL can expire; read the voice again rather than storing it.

## Other responses

- `400`: Invalid request parameters
- `401`: Authentication failed
- `404`: Resource not found
- `429`: Rate limit exceeded

## Changes

- **2026-11-03** `7dfa5e59b4f5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/heygen/apis/heygen-external-api/changes/v3/models/audio/voices/:voice_id/get.md)

---

[API](https://skmtc.dev/heygen/apis/heygen-external-api.md) - [All operations](https://skmtc.dev/heygen/apis/heygen-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/heygen/apis/heygen-external-api/revisions/7dfa5e59b4f5?raw)
