GET
/
v1
/
voice
/
list
curl --request GET \
  --url 'https://geoff.ai/api/v1/voice/list?scope=custom&language=en' \
  --header 'Authorization: Bearer <token>'
{
  "data": {
    "voices": [
      {
        "voice_id": "british_radio_host_1",
        "name": "British Radio Host",
        "description": "a friendly radio host",
        "gender": "female",
        "language": "en",
        "audio_url": "https://cdn.geoff.ai/voices/british_radio_host_1.wav",
        "audio_cid": "bafy...",
        "video_url": null,
        "video_cid": null,
        "tags": ["designed", "custom"],
        "is_default": false,
        "is_precompiled": false,
        "usage_count": 12
      }
    ],
    "count": 1,
    "scope": "custom"
  },
  "trace_id": "04ede0ab069fb1ba8be5156a24b1e081"
}
Return the catalog of voices available for use with the text-to-audio endpoint. Each entry includes the stable voice_id, display name, language, gender, an audio preview URL, and (when present) a video preview URL for picker UIs.

Authorization

Authorization
string
required
Bearer token. Bearer API_key.

Query Parameters

scope
string
Filter by voice origin. Options:
  • generic — built-in voices that ship with the platform
  • custom — voices created at runtime via Voice Clone or Voice Design
  • celebrity — curated celebrity references (when available to your account)
  • all — every voice the account can see (default)
language
string
Filter by ISO 639-1 language code, e.g. en, zh, es, fr.
curl --request GET \
  --url 'https://geoff.ai/api/v1/voice/list?scope=custom&language=en' \
  --header 'Authorization: Bearer <token>'
{
  "data": {
    "voices": [
      {
        "voice_id": "british_radio_host_1",
        "name": "British Radio Host",
        "description": "a friendly radio host",
        "gender": "female",
        "language": "en",
        "audio_url": "https://cdn.geoff.ai/voices/british_radio_host_1.wav",
        "audio_cid": "bafy...",
        "video_url": null,
        "video_cid": null,
        "tags": ["designed", "custom"],
        "is_default": false,
        "is_precompiled": false,
        "usage_count": 12
      }
    ],
    "count": 1,
    "scope": "custom"
  },
  "trace_id": "04ede0ab069fb1ba8be5156a24b1e081"
}

Using a voice_id

Pass any returned voice_id to the T2A endpoint to render arbitrary text in that voice. Voices saved via Voice Design (save_as parameter) appear here under scope=custom with the designed tag.