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

# Create or update a deployed voice configuration

> Create or update a deployed voice configuration. Set a voice ID and traffic probability (0.0-1.0) for voice A/B testing. Pass an existing `id` to update it, or omit it to create a new one.



## OpenAPI

````yaml api-reference/agents/openapi.json PUT /v1/agents/{agentId}/deployed-voices
openapi: 3.1.0
info:
  title: PolyAI Agents API
  version: 1.0.11
  description: Manage PolyAI agents, telephony, deployments, and real-time configs.
servers:
  - url: https://api.us.poly.ai
    description: US region
  - url: https://api.eu.poly.ai
    description: EU region
  - url: https://api.uk.poly.ai
    description: UK region
  - url: https://api.studio.poly.ai
    description: Studio region
security:
  - polyApiKey: []
paths:
  /v1/agents/{agentId}/deployed-voices:
    parameters:
      - name: agentId
        in: path
        required: true
        schema:
          type: string
    put:
      tags:
        - Voices
      summary: Create or update a deployed voice configuration
      description: >-
        Create or update a deployed voice configuration. Set a voice ID and
        traffic probability (0.0-1.0) for voice A/B testing. Pass an existing
        `id` to update it, or omit it to create a new one.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertDeployedVoiceRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployedVoiceResponse'
        '400':
          description: Validation error
        '401':
          description: Unauthorized – missing or invalid API key
        '403':
          description: Forbidden – insufficient permissions
components:
  schemas:
    UpsertDeployedVoiceRequest:
      type: object
      title: UpsertDeployedVoiceRequest
      description: >-
        A voice and traffic weight to deploy on the project; provide an id to
        update an existing deployed voice instead of creating a new one.
      properties:
        voiceId:
          type: string
          description: Voice ID to deploy
        probability:
          type: number
          description: Traffic weight (0.0–1.0)
        id:
          type:
            - string
            - 'null'
          description: Deployed voice ID. Omit to create, provide to update
      required:
        - voiceId
        - probability
    DeployedVoiceResponse:
      type: object
      title: DeployedVoiceResponse
      description: A single deployed voice configuration.
      properties:
        id:
          type: string
          description: Deployed voice ID
        genaiProjectId:
          type: string
          description: Project ID
        voiceId:
          type: string
          description: Voice ID
        probability:
          type: number
          description: Traffic weight
        name:
          type:
            - string
            - 'null'
          description: The voice's configured name, as set via 'Add voice'
        provider:
          type:
            - string
            - 'null'
          description: TTS provider for this voice
        providerVoiceId:
          type:
            - string
            - 'null'
          description: Provider-specific voice ID
        config:
          type:
            - object
            - 'null'
          description: Provider-specific tuning config for this voice
      required:
        - id
        - genaiProjectId
        - voiceId
        - probability
  securitySchemes:
    polyApiKey:
      type: apiKey
      in: header
      name: X-API-KEY

````