---
title: "Get a voice"
method: GET
path: "/v1/voices/{voice_id}"
tags: ["Voices"]
---

# Get a voice

`GET /v1/voices/{voice_id}`

## Request

- Base URL: `https://api.jellypod.com`
- URL: `https://api.jellypod.com/v1/voices/{voice_id}`
- Auth: HTTP bearer

## Path parameters

- `voice_id` string, required: Voice ID (positive integer).

## Response `200`

Voice

- object
  - `data` VoiceRow, required: A TTS voice available to your organization.
    - `accent` string, nullable, required
    - `description` string, nullable, required
    - `gender` 'male' | 'female' | 'other', required
    - `id` integer, required: Positive integer voice id. Pass this value (as a number, not a string) to `voice_id` on `POST /v1/hosts`.
    - `language` string, nullable, required: Language code the voice is filed under: the two-letter ISO 639-1 code where one exists, or the three-letter code where it does not (e.g. "en", "ja", "fil"). New codes appear as the catalog grows, so treat this as an open set rather than a fixed list.
    - `model` string, nullable, required: Provider-prefixed model string used to synthesize this voice (e.g. "elevenlabs/eleven_v3"). Null when the voice has no model configured.
    - `voice_type` 'professional' | 'clone' | 'design', required

## Other responses

- `400`: Validation failed or malformed request.
- `401`: Missing or invalid API key.
- `403`: Authenticated, but this API key does not have access to this resource.
- `404`: Resource not found.
- `429`: Rate limit exceeded. Response includes `Retry-After`, `RateLimit`, and `RateLimit-Policy` headers (IETF draft).
- `500`: Internal server error.

---

[API](https://skmtc.dev/jellypod/apis/jellypod-api.md) · [All operations](https://skmtc.dev/jellypod/apis/jellypod-api/llms.txt) · [OpenAPI document](https://skmtc.dev/jellypod/apis/jellypod-api/revisions/ba945de68cf7?raw)
