Tavus Pronunciation Dictionaries API
The Pronunciation Dictionaries API from Tavus — 2 operation(s) for pronunciation dictionaries.
The Pronunciation Dictionaries API from Tavus — 2 operation(s) for pronunciation dictionaries.
openapi: 3.0.3
info:
title: Tavus Developer API Collection Conversations Pronunciation Dictionaries API
version: 1.0.0
contact: {}
servers:
- url: https://tavusapi.com
security:
- apiKey: []
tags:
- name: Pronunciation Dictionaries
paths:
/v2/pronunciation-dictionaries:
post:
tags:
- Pronunciation Dictionaries
summary: Create Pronunciation Dictionary
description: 'Create a [pronunciation dictionary](/sections/conversational-video-interface/persona/pronunciation-dictionaries) with custom rules for controlling how words are spoken. Rules are automatically synced to both Cartesia and ElevenLabs so they work regardless of which TTS engine your persona uses.
'
operationId: createPronunciationDictionary
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the pronunciation dictionary. Max 255 characters.
example: Brand Terms
rules:
type: array
description: List of pronunciation rules. Duplicate `text` values are not allowed. You can omit rules at creation and add them later via [Update Pronunciation Dictionary](/api-reference/pronunciation-dictionaries/update-pronunciation-dictionary).
items:
type: object
properties:
text:
type: string
description: The word or phrase to match. Max 200 characters.
example: Tavus
pronunciation:
type: string
description: How the text should be pronounced. For `alias` type, this is the replacement text. For `ipa` type, this is an IPA string (raw or pipe-delimited). Max 500 characters.
example: TAH-vus
type:
type: string
description: Rule type. One of `alias` or `ipa`.
enum:
- alias
- ipa
example: alias
case_sensitive:
type: boolean
description: Whether matching is case-sensitive.
default: false
example: false
word_boundaries:
type: boolean
description: Whether to match only whole words.
default: true
example: true
required:
- text
- pronunciation
- type
example:
- text: Tavus
pronunciation: TAH-vus
type: alias
required:
- name
responses:
'201':
description: Pronunciation dictionary created successfully
content:
application/json:
schema:
type: object
properties:
pronunciation_dictionary_id:
type: string
description: Unique identifier for the pronunciation dictionary.
example: pd_abc123def456gh
name:
type: string
description: Name of the pronunciation dictionary.
example: Brand Terms
rules:
type: array
description: List of pronunciation rules.
items:
type: object
properties:
text:
type: string
example: Tavus
pronunciation:
type: string
example: TAH-vus
type:
type: string
enum:
- alias
- ipa
example: alias
case_sensitive:
type: boolean
example: false
word_boundaries:
type: boolean
example: true
rules_count:
type: integer
description: Number of rules in the dictionary.
example: 1
created_at:
type: string
description: ISO 8601 timestamp of when the dictionary was created.
example: '2025-01-15T10:30:00Z'
updated_at:
type: string
description: ISO 8601 timestamp of when the dictionary was last updated.
example: '2025-01-15T10:30:00Z'
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: The error message
example: 'Invalid request: name is required'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Invalid access token
security:
- apiKey: []
get:
tags:
- Pronunciation Dictionaries
summary: List Pronunciation Dictionaries
description: 'List all pronunciation dictionaries for the authenticated user with pagination.
'
operationId: listPronunciationDictionaries
parameters:
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
default: 10
description: 'Number of results per page. Range: 1-100.'
example: 10
- in: query
name: page
schema:
type: integer
default: 0
description: Zero-based page number.
example: 0
- in: query
name: sort
schema:
type: string
enum:
- asc
- desc
default: desc
description: Sort order by creation date.
example: desc
responses:
'200':
description: List of pronunciation dictionaries
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: Dictionaries for the current page; use `total_count`, `page`, and `limit` with the query parameters for pagination.
items:
type: object
properties:
pronunciation_dictionary_id:
type: string
description: Unique identifier for the pronunciation dictionary.
example: pd_abc123def456gh
name:
type: string
description: Name of the pronunciation dictionary.
example: Brand Terms
rules_count:
type: integer
description: Number of rules in the dictionary. List responses omit the full `rules` array; use [Get Pronunciation Dictionary](/api-reference/pronunciation-dictionaries/get-pronunciation-dictionary) to retrieve rules.
example: 3
created_at:
type: string
description: ISO 8601 timestamp of when the dictionary was created.
example: '2025-01-15T10:30:00Z'
updated_at:
type: string
description: ISO 8601 timestamp of when the dictionary was last updated.
example: '2025-01-15T10:30:00Z'
total_count:
type: integer
description: Total number of pronunciation dictionaries for the user
example: 2
page:
type: integer
description: Current page number
example: 0
limit:
type: integer
description: Number of dictionaries per page
example: 10
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Invalid access token
security:
- apiKey: []
/v2/pronunciation-dictionaries/{dictionary_id}:
get:
tags:
- Pronunciation Dictionaries
summary: Get Pronunciation Dictionary
description: 'Retrieve a pronunciation dictionary by its ID, including all rules.
'
operationId: getPronunciationDictionary
parameters:
- in: path
name: dictionary_id
required: true
schema:
type: string
description: The unique identifier of the pronunciation dictionary.
example: pd_abc123def456gh
responses:
'200':
description: Pronunciation dictionary details
content:
application/json:
schema:
type: object
properties:
pronunciation_dictionary_id:
type: string
description: Unique identifier for the pronunciation dictionary.
example: pd_abc123def456gh
name:
type: string
description: Name of the pronunciation dictionary.
example: Brand Terms
rules:
type: array
description: List of pronunciation rules.
items:
type: object
properties:
text:
type: string
example: Tavus
pronunciation:
type: string
example: TAH-vus
type:
type: string
enum:
- alias
- ipa
example: alias
case_sensitive:
type: boolean
example: false
word_boundaries:
type: boolean
example: true
rules_count:
type: integer
description: Number of rules in the dictionary.
example: 1
created_at:
type: string
description: ISO 8601 timestamp of when the dictionary was created.
example: '2025-01-15T10:30:00Z'
updated_at:
type: string
description: ISO 8601 timestamp of when the dictionary was last updated.
example: '2025-01-15T10:30:00Z'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Invalid access token
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Pronunciation dictionary not found
security:
- apiKey: []
patch:
tags:
- Pronunciation Dictionaries
summary: Update Pronunciation Dictionary
description: 'Update a pronunciation dictionary''s name or rules using [JSON Patch](https://jsonpatch.com/) format (RFC 6902). Supported mutable fields are `name` and `rules`.
'
operationId: patchPronunciationDictionary
parameters:
- in: path
name: dictionary_id
required: true
schema:
type: string
description: The unique identifier of the pronunciation dictionary.
example: pd_abc123def456gh
requestBody:
description: "Read-only fields like `pronunciation_dictionary_id`, `created_at`, and `updated_at` are silently ignored. If all operations target read-only fields or result in no changes, the endpoint returns `304`.\n\nWhen rules are updated, all personas referencing this dictionary are automatically updated with the new provider-specific pronunciation data.\n\n**Note:** Updating rules replaces the entire rules array. There is no way to add or remove individual rules — provide the complete updated list.\n\nFor example:\n\n```json\n[\n { \"op\": \"replace\", \"path\": \"/name\", \"value\": \"Updated Brand Terms\" },\n { \"op\": \"replace\", \"path\": \"/rules\", \"value\": [\n { \"text\": \"Tavus\", \"pronunciation\": \"TAH-vus\", \"type\": \"alias\" }\n ]}\n]\n```\n"
content:
application/json:
schema:
type: array
items:
type: object
properties:
op:
type: string
description: 'The operation to perform. Must be one of: add, remove, replace, copy, move, test'
enum:
- add
- remove
- replace
- copy
- move
- test
example: replace
path:
type: string
description: 'A JSON Pointer string that references a location within the target document where the operation is performed. Supported paths: `/name`, `/rules`.'
example: /name
value:
description: The value to be used within the operation. Required unless using `remove`.
required:
- op
- path
examples:
Update name:
value:
- op: replace
path: /name
value: Updated Brand Terms
Update rules:
value:
- op: replace
path: /rules
value:
- text: Tavus
pronunciation: TAH-vus
type: alias
- text: CVI
pronunciation: conversational video interface
type: alias
Update both:
value:
- op: replace
path: /name
value: Updated Brand Terms
- op: replace
path: /rules
value:
- text: Tavus
pronunciation: TAH-vus
type: alias
responses:
'200':
description: Pronunciation dictionary updated successfully
content:
application/json:
schema:
type: object
properties:
pronunciation_dictionary_id:
type: string
description: Unique identifier for the pronunciation dictionary.
example: pd_abc123def456gh
name:
type: string
description: Name of the pronunciation dictionary.
example: Updated Brand Terms
rules:
type: array
description: List of pronunciation rules.
items:
type: object
properties:
text:
type: string
example: Tavus
pronunciation:
type: string
example: TAH-vus
type:
type: string
enum:
- alias
- ipa
example: alias
case_sensitive:
type: boolean
example: false
word_boundaries:
type: boolean
example: true
rules_count:
type: integer
description: Number of rules in the dictionary.
example: 1
created_at:
type: string
description: ISO 8601 timestamp of when the dictionary was created.
example: '2025-01-15T10:30:00Z'
updated_at:
type: string
description: ISO 8601 timestamp of when the dictionary was last updated.
example: '2025-01-15T12:00:00Z'
'304':
description: No changes were made to the pronunciation dictionary
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: The error message
example: 'Invalid request: duplicate text values in rules'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Invalid access token
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Pronunciation dictionary not found
'422':
description: Invalid JSON patch format
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Invalid JSON patch format
security:
- apiKey: []
delete:
tags:
- Pronunciation Dictionaries
summary: Delete Pronunciation Dictionary
description: 'Permanently delete a pronunciation dictionary and remove it from all linked personas.
'
operationId: deletePronunciationDictionary
parameters:
- in: path
name: dictionary_id
required: true
schema:
type: string
description: 'The unique identifier of the pronunciation dictionary to delete.
**Warning:** This action is permanent. The dictionary is deleted from both Cartesia and ElevenLabs, and all personas referencing it will have their `pronunciation_dictionary_id` set to `null` and provider-specific pronunciation settings removed from `voice_settings`.
'
example: pd_abc123def456gh
responses:
'204':
description: NO CONTENT - Pronunciation dictionary deleted successfully
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Invalid access token
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Pronunciation dictionary not found
security:
- apiKey: []
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: x-api-key