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

# Update Avatar

> Update an existing avatar's configuration including name, provider, model, voice, and prompt.

You can update the following fields:
- `name`: Change the avatar's display name (must be unique per account)
- `providerId`, `model`, `voice`: Switch to different AI provider/model/voice
- `firstMessage`, `prompt`: Modify avatar behavior and initial greeting

Note: The avatar's source media (`url`) cannot be changed after creation.



## OpenAPI

````yaml POST /api/open/v1/avatar/update
openapi: 3.1.0
info:
  title: NavTalk API
  description: NavTalk API for AI avatar management, file uploads, and video generation
  version: 1.0.0
servers:
  - url: https://api.navtalk.ai
    description: NavTalk Production Environment Server
  - url: https://qaapi.navtalk.ai
    description: NavTalk QA Environment Server
  - url: https://devapi.navtalk.ai
    description: NavTalk Development Environment Server
security:
  - navtalkLicenseAuth: []
paths:
  /api/open/v1/avatar/update:
    post:
      tags:
        - Avatar
      summary: Update Avatar
      description: >-
        Update an existing avatar's configuration including name, provider,
        model, voice, and prompt.


        You can update the following fields:

        - `name`: Change the avatar's display name (must be unique per account)

        - `providerId`, `model`, `voice`: Switch to different AI
        provider/model/voice

        - `firstMessage`, `prompt`: Modify avatar behavior and initial greeting


        Note: The avatar's source media (`url`) cannot be changed after
        creation.
      operationId: updateAvatar
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AvatarUpdateRequest'
            example:
              id: fbc269dcd0a738cf8e5e0f465671303c
              name: my-updated-avatar
              providerId: b92a28fb2ea737457c7f13ba554759c0
              model: agent_3201khcbet2vf349gpmtfg83q0hy
              voice: CwhRBWXzGAHq8TQ4Fs17
              firstMessage: Hello! How may I assist you?
              prompt: You are a friendly customer service assistant.
      responses:
        '200':
          description: Avatar updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NavtalkMessageResponse'
              example:
                code: 200
                message: SUCCESS
                data: Avatar updated successfully
        '400':
          description: Validation failed or permission denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NavtalkErrorResponse'
              examples:
                notFound:
                  summary: Avatar not found
                  value:
                    code: 400
                    message: Avatar not found
                noPermission:
                  summary: No permission to update
                  value:
                    code: 400
                    message: No permission to update this avatar
                duplicateName:
                  summary: Duplicate name
                  value:
                    code: 400
                    message: The name already exists
                invalidProvider:
                  summary: Provider not found
                  value:
                    code: 400
                    message: Provider not found
                invalidModel:
                  summary: Model not supported
                  value:
                    code: 400
                    message: Model 'xxx' is not supported by this provider
                invalidVoice:
                  summary: Voice not supported
                  value:
                    code: 400
                    message: Voice 'xxx' is not supported by this provider
      security:
        - navtalkLicenseAuth: []
components:
  schemas:
    AvatarUpdateRequest:
      required:
        - id
        - name
        - providerId
        - model
        - voice
      type: object
      properties:
        id:
          type: string
          description: The avatar ID to update.
          example: fbc269dcd0a738cf8e5e0f465671303c
        name:
          type: string
          description: Display name for the avatar. Must be unique per account.
          example: my-updated-avatar
        providerId:
          type: string
          description: The provider ID to use (obtained from `/provider/list`).
          example: b92a28fb2ea737457c7f13ba554759c0
        model:
          type: string
          description: >-
            The model key to use (obtained from `/model/list`). For ElevenLabs
            agents, see [ElevenLabs Agents
            Quickstart](https://elevenlabs.io/docs/eleven-agents/quickstart).
            For Cartesia agents, see [Cartesia Voices Agents
            Quickstart](https://play.cartesia.ai/agents).
          example: agent_3201khcbet2vf349gpmtfg83q0hy
        voice:
          type: string
          description: The voice key to use (obtained from `/voice/list`).
          example: CwhRBWXzGAHq8TQ4Fs17
        firstMessage:
          type: string
          description: >-
            Optional opening message the avatar says at the start of a
            conversation.
          example: Hello! How may I assist you?
        prompt:
          type: string
          description: >-
            Optional system prompt that controls the avatar's behavior and
            personality.
          example: You are a friendly customer service assistant.
    NavtalkMessageResponse:
      type: object
      properties:
        code:
          type: integer
          example: 200
        message:
          type: string
          example: SUCCESS
        data:
          type: string
          example: Avatar deleted successfully
    NavtalkErrorResponse:
      type: object
      properties:
        code:
          type: integer
          example: 400
        message:
          type: string
          example: Invalid license key
  securitySchemes:
    navtalkLicenseAuth:
      type: apiKey
      in: header
      name: license
      description: NavTalk API license key (e.g. sk_navtalk_...)

````