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

# Update Voice

> Partially updates an existing Voice. Every field except `id` is optional and only the fields actually present in the request are written — an omitted field keeps its stored value, so updating the background group never clears the tone group and vice versa. Pass an empty string to clear a text field explicitly. Changes take effect immediately — the next comment or direct-message generation uses the updated values.



## OpenAPI

````yaml https://api.goextrovert.com/client/v2/docs-json patch /client/v2/voices/{id}
openapi: 3.0.0
info:
  title: Extrovert Client API
  description: >-
    Public API for Extrovert platform integration. Use your API key for
    authentication.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.goextrovert.com/
    description: API Server
security: []
tags: []
paths:
  /client/v2/voices/{id}:
    patch:
      tags:
        - Voices
      summary: Update Voice
      description: >-
        Partially updates an existing Voice. Every field except `id` is optional
        and only the fields actually present in the request are written — an
        omitted field keeps its stored value, so updating the background group
        never clears the tone group and vice versa. Pass an empty string to
        clear a text field explicitly. Changes take effect immediately — the
        next comment or direct-message generation uses the updated values.
      operationId: VoiceClientApiController_update
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRequestDto3'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto3'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientApiErrorResponseDto'
      security:
        - api-key: []
components:
  schemas:
    UpdateRequestDto3:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID of the Voice to update.
        name:
          type: string
          description: New Voice name. Omit to keep the current one.
          minLength: 1
        backgroundAboutUser:
          type: string
          description: >-
            Free-form plain text about the user themselves — role, background,
            perspective. Used as background when generating comments and direct
            messages, and when analyzing incoming posts. Omit to keep the
            current value; pass an empty string to clear it.
        backgroundAboutCompany:
          type: string
          description: >-
            Free-form plain text about the user's company, product, market, and
            target audience. Used as background when generating comments and
            direct messages, and when analyzing incoming posts. Omit to keep the
            current value; pass an empty string to clear it.
        instructionsForComments:
          type: string
          description: >-
            Free-form plain text with tone instructions for comment generation
            (tone, structure, do/don't). Used only when generating comments, not
            direct messages. Omit to keep the current value; pass an empty
            string to clear it.
        instructionsForDm:
          type: string
          description: >-
            Free-form plain text with tone instructions for direct-message
            generation (tone, structure, do/don't). Used only when generating
            direct messages, not comments. Omit to keep the current value; pass
            an empty string to clear it.
        isLearningModeEnabled:
          type: boolean
          description: >-
            Whether the Voice is in learning mode. When `true`, the backend
            auto-saves as Comment Examples only those comments the user both
            approved AND edited before approval (unchanged auto-approved
            comments are NOT saved). Only comments are learned — direct messages
            are never auto-saved. The Voice's Comment Examples are capped at 20
            entries; auto-saved and manual entries share the same 20-slot cap.
            When `false`, no auto-learning happens and existing Comment Examples
            keep being used as-is. Omit to keep the current value.
      required:
        - id
    UpdateResponseDto3:
      type: object
      properties:
        status:
          type: string
          description: Response status
          enum:
            - success
        data:
          description: No response payload
          nullable: true
          enum:
            - null
          example: null
          type: object
        message:
          type: string
          description: Success message
          example: Operation completed successfully
      required:
        - status
        - data
        - message
    ClientApiErrorResponseDto:
      type: object
      properties:
        status:
          type: string
          description: Response status
          example: error
          enum:
            - error
        data:
          type: object
          description: Response data
          example: null
          nullable: true
        message:
          type: string
          description: Error message
          example: An error occurred while processing the request
      required:
        - status
        - data
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: X-API-Key
      description: API Key for authentication

````