Voices

Migrate a voice to a replacement, everywhere it is used.

Re-points every use of fromVoiceId to toVoiceId: each cast canon person pinned to it (which is also a recurring show's pinned voice, and the voice every new episode, deck, trailer and showcase speaks with), the narrator pinned on a trailer or pitch deck, and the voice map of every read with no finished recording yet. projectId (and character) narrow it to one project (and one person, under any name the canon knows them by). A read with a finished recording keeps it — published audio stays as listeners heard it — and is listed in skipped: re-voice its characters (POST /artifacts/{artifactId}/revoice, priced) to finalize it again on the new voice. Free, and TWO CALLS: without confirmed it answers applied: false with what would change and writes nothing; with confirmed: true it re-points and records the migration (migrationId), which POST /voice-migrations/{migrationId}/undo reverses. The replacement must be on a provider that is neither retiring nor retired (409 voice_retired). Requires Idempotency-Key. Scope: story:write.

post/voice-migrations

Request

  • Base URL: https://docs.sleeperhit.studio/api/v1
  • URL: https://docs.sleeperhit.studio/api/v1/voice-migrations
  • Auth: HTTP bearer

Headers

Idempotency-Keystring required

Customer-generated stable identifier for safe retries of idempotent POST requests.

Request body

fromVoiceIdstring required

The voice being replaced: its provider voice id (or library id).

toVoiceIdstring required

The replacement: one of your library voices (GET /voices), or a catalog voice with toProvider.

toProvider'cartesia' | 'elevenlabs' | 'openai' | 'deepgram' | 'hume'

The replacement's provider, for a catalog voice. A library voice knows its own; otherwise the configured table-read provider.

toVoiceNamestring

The name the canon and reads show; the library voice's own name otherwise.

projectIdstring

Only this project's uses. Omitted: every use you have.

characterstring

Only this character of projectId, under any name the canon knows them by.

confirmedboolean

true migrates and records it. Omitted: answers with what would change and changes nothing.

Response

The plan, or the recorded migration.

appliedboolean required
migrationIdstring
createdAtstring date-time
undoneAtstring date-time nullable
notestring required

Changes

No recorded changes to this operation across all 2 revisions of this API.