> Revox API docs for developers and AI agents. Index: https://www.getrevox.com/docs/api/llms.txt · Everything in one file: https://www.getrevox.com/docs/api/llms-full.txt · OpenAPI 3.1: https://www.getrevox.com/openapi.json · MCP server: https://www.getrevox.com/api/mcp-servers/generic/mcp
> Base URL https://www.getrevox.com/api · Auth: `Authorization: Bearer $REVOX_API_KEY`

# Set how the voice says a word

`PUT https://www.getrevox.com/api/assistants/{id}/pronunciations`

Stores the version of a word the user chose by ear. On calls with the assistant's current voice, that text is sent to the voice in place of the word; the transcript keeps the word.

## Before you call

- Send a version the user chose after listening to it ([`POST /assistants/{id}/pronunciations/suggest`](https://www.getrevox.com/docs/api/assistants/suggest-versions-of-a-word-to-choose-by-ear.md)): nothing checks the text, the voice reads it as is.
- Setting a word that already exists replaces it. It applies to calls with the assistant's current voice only.
- A word is one block: a term that holds another one, or is part of one ("Content" and "Content Square"), is refused with 400. Remove the other first.

## Request

```bash
curl -X PUT "https://www.getrevox.com/api/assistants/3f6c2a1e-8b4d-4c7a-9e2f-5d1b7a9c0e34/pronunciations" \
  -H "Authorization: Bearer $REVOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "term": "Swile",
    "sounds_like": "swaïle, une seule syllabe, à l'\''anglaise",
    "text": "Swaïle",
    "versions": ["Swile", "Swaïle", "Souaïle"]
  }'
```

## Path parameters

- `id` (string, required): ID of the assistant, as returned by [`GET /assistants`](https://www.getrevox.com/docs/api/assistants/get-assistants.md).

## Body

JSON.

- `term` (string, required): The word or name as it is written in the prompt and as the assistant writes it, e.g. "Swile" or "Thibault Lhuillier". Matched whole-word and case-sensitively. 1 to 100 characters. Example: `"Swile"`.
- `sounds_like` (string, required): How it must sound, as you would explain it to a colleague: a respelling in the call's language and any note on silent letters or English reading. 1 to 300 characters. Example: `"swaïle, une seule syllabe, à l'anglaise"`.
- `text` (string, required): The version chosen, sent to the voice in place of the word on calls. The word itself means no replacement. 1 to 500 characters.
- `versions` (array of string, optional, default []): Every version that was offered, kept to choose again later without a new recording. At most 10 items, each item 1 to 500 characters.

## Response 200

```json
{
  "pronunciation": {
    "id": "d4c3b2a1-9e8f-4a7b-8c6d-5e4f3a2b1c0d",
    "assistant_id": "3f6c2a1e-8b4d-4c7a-9e2f-5d1b7a9c0e34",
    "term": "Swile",
    "sounds_like": "swaïle, une seule syllabe, à l'anglaise",
    "replacement": "replacement",
    "versions": ["version"],
    "voice": {
      "provider": "cartesia",
      "id": "8e1f2a3b-4c5d-4e6f-9a0b-1c2d3e4f5a6b"
    },
    "voice_changed": false,
    "created_at": "2026-11-05T09:00:00Z",
    "updated_at": "2026-11-05T09:00:00Z"
  }
}
```

- `pronunciation` (object)
  - `pronunciation.id` (string)
  - `pronunciation.assistant_id` (string)
  - `pronunciation.term` (string): The word or name as it is written in the prompt and as the assistant writes it, e.g. "Swile" or "Thibault Lhuillier". Matched whole-word and case-sensitively. 1 to 100 characters. Example: `"Swile"`.
  - `pronunciation.sounds_like` (string): How it must sound, as you would explain it to a colleague: a respelling in the call's language and any note on silent letters or English reading. 1 to 300 characters. Example: `"swaïle, une seule syllabe, à l'anglaise"`.
  - `pronunciation.replacement` (string | null): The text sent to the voice in place of `term` on calls. Null when the word as written was chosen.
  - `pronunciation.versions` (array of string): Every version that was offered when this one was chosen.
  - `pronunciation.voice` (object): The voice it was chosen on. The replacement applies only to calls with this voice: after a voice change, choose again.
    - `pronunciation.voice.provider` ("cartesia" | "elevenlabs" | "gradium"): The provider of the voice.
    - `pronunciation.voice.id` (string)
  - `pronunciation.voice_changed` (boolean): True when the assistant's voice is no longer the one it was chosen on, so it does not apply to calls until chosen again.
  - `pronunciation.created_at` (string): ISO 8601 timestamp.
  - `pronunciation.updated_at` (string): ISO 8601 timestamp.

## Errors

- `400` Invalid request: a field or parameter failed validation: `{"message":"Request validation failed","bodyErrors":{"issues":[{"path":["term"],"message":"Invalid input: expected string, received undefined","code":"invalid_type"}]}}`
- `404` Not found in your organization: `{"error":"Not found"}`
- Every status is explained under Errors in https://www.getrevox.com/docs/api.md#errors.