Skip to content
Lumean API
GET/voices/heygen

HeyGen Voices

The HeyGen voice catalogue with filters by language, accent, gender and render engine.

Fetch the accepted filter values from GET /voices/heygen/filters first — the spelling there is the provider's (English, en-US). Pages are numbered from zero.

Required key permission: voices.read.

On this page(3)

Parameters

The inputs live inside the request line: fill in a value and you get a ready URL. Below are the type, whether it is required and the allowed values of every parameter.

GEThttps://api.lumean.app/api/public/voices/heygen
  • stringin queryoptional≤ 32 chars

    Voice gender.

    Allowed values
  • stringin queryoptional≤ 64 chars

    Voice language in HeyGen spelling (English, Spanish, …). Listed by GET /voices/heygen/filters.

  • stringin queryoptional≤ 16 chars

    Region/accent (en-US, en-GB, …). Listed by GET /voices/heygen/filters.

  • stringin queryoptional≤ 512 chars

    Render engine; several values comma-separated. Listed by GET /voices/heygen/filters.

  • stringin queryoptional

    Ordering. Defaults to default.

    Allowed values
  • integerin queryoptional≥ 0

    Page number. Numbered from zero.

  • integerin queryoptional1..200

    Page size. Defaults to 55.

Possible responses

200

Success. The payload is in data.

Body example
{
  "success": true,
  "message": "HeyGen voices retrieved successfully.",
  "data": {
    "voices": [
      {
        "voice_id": "7f3a9c1e2b8d4f56a0c3e7f91b2d5a68",
        "voice_name": "Yb56nzJ2XkQ0Fh1PmT8L",
        "display_name": "Cassidy Pro",
        "gender": "female",
        "language": "English",
        "locale": null,
        "accent": "en-US",
        "flag_url": "https://resource2.heygen.ai/flags/us.png",
        "preview_url": "https://api.lumean.app/api/voice-preview?u=eyJpdiI6IjZmM2E5YzFlMmI4ZDRmNTYiLCJ2YWx1ZSI6ImZha2UifQ%3D%3D&signature=9f8e7d6c5b4a3928170f6e5d4c3b2a1908f7e6d5c4b3a2918f7e6d5c4b3a2918",
        "voice_engines": [
          "elevenLabs"
        ],
        "labels": [
          "Conversational",
          "Warm"
        ],
        "support_realtime": true,
        "emotion_support": false,
        "support_locale": false
      },
      {
        "voice_id": "c159d4a2f6b7483d95e0a1c8f4b2d637",
        "voice_name": "Xt4Wq8LmZ2VbPc6RfShu",
        "display_name": "Marcus Energetic",
        "gender": "male",
        "language": "English",
        "locale": null,
        "accent": "en-GB",
        "flag_url": "https://resource2.heygen.ai/flags/gb.png",
        "preview_url": "https://api.lumean.app/api/voice-preview?u=eyJpdiI6ImMxNTlkNGEyZjZiNzQ4M2QiLCJ2YWx1ZSI6ImZha2UifQ%3D%3D&signature=1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b",
        "voice_engines": [
          "elevenLabs",
          "azure"
        ],
        "labels": [
          "Energetic"
        ],
        "support_realtime": false,
        "emotion_support": true,
        "support_locale": true
      }
    ],
    "total": 2,
    "page": 0,
    "page_size": 55,
    "has_more": false
  }
}
Response fields
successrequired

Success flag. Branch on the HTTP status code instead: any 2xx response carries true here, while an error comes back in a different shape that need not contain this field at all.

boolean
messagerequired

A human-readable note in the account language. Fine to show to a user; do not parse it — the wording changes without notice and is not an error code.

string
datarequired

The response payload.

object
voicesrequired

Voices from the HeyGen catalogue.

array<object>
array item
voice_idrequired

Voice identifier — goes into a heygen template’s config.voice_id.

string
voice_namerequired

The provider’s original name for the voice.

string
display_namerequired

Display name of the voice.

string
genderrequired

Voice gender. Usable as a value for the gender filter.

string
languagerequired

Language in the provider’s spelling (English, Spanish). This is exactly what the language filter accepts — take it from here or from /voices/heygen/filters instead of guessing.

string
localerequired

Voice locale, when the provider supplies one.

string
accentrequired

Accent in the provider’s spelling (en-US). The value for the accent filter.

string
flag_urlrequired

Link to the language flag icon — for decorating a list.

string
preview_urlrequired

Preview clip of the voice. The link points at our server, not the provider.

string
voice_enginesrequired

Rendering engines available for this voice. The values work as voice_engine filter input.

array<string>
labelsrequired

Provider-supplied labels: delivery, use case, emotion.

array<string>
support_realtimerequired

Whether the voice supports the provider’s streaming mode.

boolean
emotion_supportrequired

Whether the voice accepts emotion directives.

boolean
support_localerequired

Whether a locale can be set for the voice independently of the language.

boolean
totalrequired

How many voices match the filters, across all pages.

integer
pagerequired

Page number, zero-based.

integer
page_sizerequired

Page size the server applied.

integer
has_morerequired

Whether another page exists.

boolean
401

The key is missing, unknown, disabled or expired.

Analyse this response
Body example
{
  "success": false,
  "message": "API key is missing. Provide it in the X-API-KEY header.",
  "data": null
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

Error text in the key's language (set through the X-Locale header).

string
datarequired

Always null when the request is rejected before processing.

nullable
null
403

The key lacks the required permission, or the object belongs to another user.

Analyse this response
Body example
{
  "success": false,
  "message": "This API key does not have permission to perform this action."
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

Error text in the key's language (set through the X-Locale header).

string
422

Validation error. Offending fields are listed in errors.

Analyse this response
Body example
{
  "message": "string",
  "errors": {}
}
Response fields
messagerequired

Errors overview.

string
errorsrequired

A detailed description of each field that failed validation.

object
*optional
arbitrary keys
array<string>

Feed this page to an AI

Open .mdllm.md

spec 0.0.1