---
title: "Design, clone, or speak a voice: {action: design, voicePrompt} | {action: clone, sampleMediaKey, consent: true} | {action: speak, text} (billed like POST /api/speech)."
method: POST
path: "/api/characters/{id}/voice"
---

# Design, clone, or speak a voice: {action: design, voicePrompt} | {action: clone, sampleMediaKey, consent: true} | {action: speak, text} (billed like POST /api/speech).

`POST /api/characters/{id}/voice`

## Request

- Base URL: `https://shapelessai.com`
- URL: `https://shapelessai.com/api/characters/{id}/voice`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://shapelessai.com/api/auth/mcp/authorize`, token URL `https://shapelessai.com/api/auth/mcp/token`, scopes: `write`)

## Path parameters

- `id` string, required

## Response `200`

OK

## Other responses

- `401`: No credential, or not valid.
- `403`: The key is missing the "write" scope.
- `429`: Over the key's rate limit (600 requests an hour).

---

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