---
title: "Rename one of your library voices."
method: PATCH
path: "/voices/{voiceId}"
tags: ["Voices"]
---

# Rename one of your library voices.

`PATCH /voices/{voiceId}`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/voices/{voiceId}`
- Auth: HTTP bearer

Renames a voice in your library. The cast canon people pinned to it carry the new name (`canonRenamed` counts them); a read's own cast label stays as it is. Free. Scope: `story:write`.

## Request body

- StudioVoiceRenameRequest
  - `name` string, required

## Response `200`

The renamed voice.

- StudioVoiceRenameResponse
  - `voice` object, required: The voice as GET /voices lists it.
  - `canonRenamed` integer, required: Cast canon people pinned to this voice, now carrying the new name.

## Other responses

- `400`: Request payload failed validation. The error message names the offending field.
- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `404`: No voice with that id in your library, or another writer's cloned or designed voice, which is never yours to preview, cast, pin or migrate onto (`voice_not_found`). GET /voices lists the ones you own; a catalog voice can be previewed and assigned but not renamed or deleted.
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.

---

[API](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api.md) · [All operations](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/revisions/64c1102ccb2f?raw)
