> ## Documentation Index
> Fetch the complete documentation index at: https://anam.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# update pronunciation dictionary

> Updates a pronunciation dictionary's name, entries or both. `entries` replaces the whole list. The save is live: sessions that start afterwards use the new entries, and running sessions keep the entries they started with.

Without `expectedRevision`, the update applies to the current revision and the last write wins. With it, the update is rejected with 409 `REVISION_CONFLICT` if the dictionary has been saved since that revision.

Entries are validated as a whole: if any entry is invalid, nothing is saved and the response lists every error by one-based row.




## OpenAPI

````yaml https://api.anam.ai/swagger.json put /v1/pronunciation-dictionaries/{id}
openapi: 3.1.0
info:
  title: Anam AI API
  version: '1.0'
servers:
  - url: https://api.anam.ai
    description: Anam API
security:
  - BearerAuth: []
tags:
  - name: Sessions
  - name: Avatar Videos
  - name: Meetings
  - name: Personas
  - name: Avatars
  - name: Voices
  - name: Pronunciation Dictionaries
  - name: LLMs
  - name: Knowledge
  - name: Tools
  - name: Share Links
  - name: Engine
paths:
  /v1/pronunciation-dictionaries/{id}:
    put:
      tags:
        - Pronunciation Dictionaries
      summary: update pronunciation dictionary
      description: >
        Updates a pronunciation dictionary's name, entries or both. `entries`
        replaces the whole list. The save is live: sessions that start
        afterwards use the new entries, and running sessions keep the entries
        they started with.


        Without `expectedRevision`, the update applies to the current revision
        and the last write wins. With it, the update is rejected with 409
        `REVISION_CONFLICT` if the dictionary has been saved since that
        revision.


        Entries are validated as a whole: if any entry is invalid, nothing is
        saved and the response lists every error by one-based row.
      operationId: updatePronunciationDictionary
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
          description: Pronunciation dictionary ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              anyOf:
                - required:
                    - name
                - required:
                    - entries
              description: Provide `name`, `entries` or both.
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                  description: New display name
                  example: Brand names
                entries:
                  type: array
                  maxItems: 500
                  description: >-
                    The complete new list of entries. An empty array removes
                    every entry.
                  items:
                    $ref: '#/components/schemas/PronunciationEntry'
                expectedRevision:
                  type: integer
                  minimum: 1
                  description: The revision you last read. Optional.
                  example: 1
            examples:
              default:
                $ref: '#/components/examples/PronunciationDictionaryUpdate'
      responses:
        '200':
          description: Successfully updated pronunciation dictionary
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PronunciationDictionary'
              examples:
                default:
                  $ref: '#/components/examples/PronunciationDictionaryUpdatedResponse'
        '400':
          description: Bad request - The body is not valid JSON
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PronunciationDictionaryError'
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks write access to pronunciation dictionaries
        '404':
          description: >-
            Not Found - No pronunciation dictionary with this ID in your
            organization, or it was archived
        '409':
          description: >-
            Conflict - `REVISION_CONFLICT`, the dictionary was saved since
            `expectedRevision`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PronunciationDictionaryError'
              examples:
                default:
                  $ref: >-
                    #/components/examples/PronunciationDictionaryRevisionConflict
        '422':
          description: >-
            Unprocessable - The name or one or more entries are invalid, or
            neither was provided. Nothing was saved. Without `entries`, the
            saved entries are re-saved; if they fail rules added since they were
            saved, `code` is `DICTIONARY_OUTDATED` and `details` lists the rows
            to fix and send.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PronunciationDictionaryValidationError'
              examples:
                default:
                  $ref: '#/components/examples/PronunciationDictionaryValidationError'
        '429':
          description: >-
            Too many requests - Your organization made more than 60
            pronunciation dictionary writes (creates, imports, updates and
            archives) this minute. Rejected writes count too.
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds until the limit resets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PronunciationDictionaryError'
        '500':
          description: Server error
components:
  schemas:
    PronunciationEntry:
      type: object
      additionalProperties: false
      required:
        - text
        - pronunciation
      description: >
        One word or phrase and how to say it. The persona speaks the
        pronunciation in place of the text; captions and transcripts keep the
        original text.


        Text and pronunciation must not be blank or contain `[` or `]`. Two
        entries can't have the same text (ignoring case and spacing) unless both
        set `caseSensitive` and differ only in case.
      properties:
        text:
          type: string
          maxLength: 100
          description: Word or phrase to replace, at most 100 Unicode characters.
          example: Anam
        kind:
          type: string
          enum:
            - sounds_like
            - ipa
          default: sounds_like
          description: >
            - `sounds_like`: `pronunciation` is a respelling, such as `annum`.
            Works with every voice.

            - `ipa`: `pronunciation` is Cartesia IPA markup, such as
            `<<ˈ|ɑ|n|ə|m>>`. Voices whose model reads IPA (Cartesia Sonic 3,
            ElevenLabs v3 and v4) speak it; other voices speak `soundsLike`, or
            leave the text unchanged without it.
          example: sounds_like
        pronunciation:
          type: string
          maxLength: 200
          description: >-
            How to say the text, at most 200 Unicode characters. A sounds-like
            respelling can't contain `<<` or `>>`.
          example: annum
        soundsLike:
          type: string
          maxLength: 200
          description: >-
            IPA entries only. Respelling spoken by voices whose model can't read
            IPA.
          example: annum
        caseSensitive:
          type: boolean
          default: false
          description: Match the text only with the same capitalization.
          example: false
    PronunciationDictionary:
      description: >
        A pronunciation dictionary and its entries. Saves are live: sessions
        that start after a save use the saved entries, and running sessions keep
        the entries they started with.
      allOf:
        - $ref: '#/components/schemas/PronunciationDictionarySummary'
        - type: object
          properties:
            entries:
              type: array
              items:
                $ref: '#/components/schemas/PronunciationEntry'
    PronunciationDictionaryError:
      type: object
      properties:
        error:
          type: string
          description: What went wrong
        code:
          type: string
          enum:
            - REVISION_CONFLICT
            - DICTIONARY_ATTACHED
            - RATE_LIMITED
          description: Why a 409 or 429 happened
        personaIds:
          type: array
          items:
            type: string
            format: uuid
          description: With `DICTIONARY_ATTACHED`, the personas that use the dictionary
    PronunciationDictionaryValidationError:
      type: object
      properties:
        error:
          type: string
          example: Invalid pronunciation dictionary
        code:
          type: string
          enum:
            - DICTIONARY_OUTDATED
          description: Set when the saved entries, not the request, fail the current rules
        details:
          type: array
          description: Every validation error
          items:
            type: object
            properties:
              row:
                type:
                  - integer
                  - 'null'
                minimum: 1
                description: One-based entry number, or null for an error outside an entry
              field:
                type:
                  - string
                  - 'null'
                description: Field with the error, or null for the whole entry or request
              message:
                type: string
                description: What to fix
    PronunciationDictionarySummary:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Pronunciation dictionary ID. Pass it as
            `voiceGenerationOptions.pronunciationDictionaryId` when creating a
            session token.
          example: 4f600129-13cf-4bfa-909a-2f4c31467f43
        name:
          type: string
          description: Display name
          example: Brand names
        revision:
          type: integer
          minimum: 1
          description: >-
            Starts at 1 and increases with every save. Send it as
            `expectedRevision` to reject a write if someone else saved first.
          example: 1
        createdAt:
          type: string
          format: date-time
          description: When the dictionary was created
        updatedAt:
          type: string
          format: date-time
          description: When the dictionary was last saved
  examples:
    PronunciationDictionaryUpdate:
      summary: >-
        Replace the entries, rejecting the write if the dictionary changed since
        revision 1
      value:
        expectedRevision: 1
        entries:
          - text: Anam
            pronunciation: annum
          - text: Lab
            pronunciation: lab
    PronunciationDictionaryUpdatedResponse:
      summary: The dictionary after an update
      value:
        id: 4f600129-13cf-4bfa-909a-2f4c31467f43
        name: Brand names
        revision: 2
        createdAt: '2026-10-11T09:00:00.000Z'
        updatedAt: '2026-10-11T09:30:00.000Z'
        entries:
          - text: Anam
            kind: sounds_like
            pronunciation: annum
            caseSensitive: false
          - text: Lab
            kind: sounds_like
            pronunciation: lab
            caseSensitive: false
    PronunciationDictionaryRevisionConflict:
      summary: The dictionary was saved since expectedRevision
      value:
        error: >-
          Pronunciation dictionary has changed since expectedRevision. Read it
          again, then retry.
        code: REVISION_CONFLICT
    PronunciationDictionaryValidationError:
      summary: Invalid entries; nothing was saved
      value:
        error: Invalid pronunciation dictionary
        details:
          - row: 2
            field: pronunciation
            message: Must not contain [ or ]
          - row: 3
            field: text
            message: >-
              Same word or phrase as row 1. Remove one, or turn on Match case
              for both if they differ only in case.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.