---
title: "update voice"
method: PUT
path: "/v1/voices/{id}"
tags: ["Voices"]
---

# update voice

`PUT /v1/voices/{id}`

Update a voice by ID (display name and provider model ID can be updated)

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `displayName` string, required — New display name for the voice
  - `providerModelId` string — New provider model ID for the voice (e.g. sonic-3.5 for Cartesia, eleven_flash_v2_5 for ElevenLabs)
  - `gender` 'MALE' | 'FEMALE' | 'NEUTRAL' | 'null', nullable — Voice gender
  - `country` string, nullable — ISO 3166-1 alpha-2 country code
  - `description` string, nullable — Voice description

## Response `200`

Successfully updated voice

- Voice — A voice preset a persona can use for text-to-speech.
  - `id` string, uuid — Unique identifier for the voice.
  - `displayName` string — Human-readable name shown in the Lab.
  - `provider` 'CARTESIA' | 'ELEVENLABS' | 'OPENAI_ADVANCED_VOICE' | 'FISH_AUDIO' — Upstream TTS provider for this voice.
  - `providerVoiceId` string, nullable — The upstream provider's identifier for the voice.
  - `providerModelId` string, nullable — The upstream provider's model identifier used to generate speech.
  - `sampleUrl` string, uri, nullable — URL of a short audio preview of the voice.
  - `previewSampleUrl` string, uri, nullable — Alias for `sampleUrl`, kept for backwards compatibility.
  - `gender` 'MALE' | 'FEMALE' | 'NEUTRAL' | 'null', nullable — Perceived gender of the voice, if categorised.
  - `country` string, nullable — ISO 3166-1 alpha-2 country code representing the voice's accent.
  - `description` string, nullable — Free-form description of the voice's character.
  - `displayTags` string[] — Tags used to categorise the voice in the Lab UI.
  - `isZdr` boolean — Whether this voice meets the Zero Data Retention requirements.
  - `createdByOrganizationId` string, nullable — ID of the organization that created the voice, or `null` for stock voices. IDs may be either UUIDs or nanoid-style strings depending on when the organization was created.
  - `createdAt` string, date-time — Timestamp when the voice was created.
  - `updatedAt` string, date-time — Timestamp when the voice was last updated.

## Other responses

- `400` — Bad request - Invalid voice data
- `401` — Unauthorized - Invalid or missing API key
- `403` — Forbidden - API key lacks the required permission
- `404` — Not Found - Voice not found
- `500` — Server error

---

[API](https://skmtc.net/anam/apis/anam-ai-api.md) · [All operations](https://skmtc.net/anam/apis/anam-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/anam/anam-ai-api/revisions/67afd1c5db59/schema)
