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

# Post Agent Hold Audio

> Sets the custom hold audio played on loop to callers waiting in the agent's concurrency wait queue. Replaces any previously uploaded clip.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/convai/agents/{agent_id}/hold-audio
openapi: 3.1.0
info:
  title: Threetone API
  description: >-
    APIs for the Threetone Agents Platform and shared workspace resources.
    Authenticate programmatic requests with an API key in the x-api-key header.
  version: '1.0'
servers:
  - url: https://api.threetone.in
    description: Production
security: []
paths:
  /v1/convai/agents/{agent_id}/hold-audio:
    post:
      tags:
        - Agents Platform
      summary: Post Agent Hold Audio
      description: >-
        Sets the custom hold audio played on loop to callers waiting in the
        agent's concurrency wait queue. Replaces any previously uploaded clip.
      operationId: post_agent_hold_audio_route
      parameters:
        - name: agent_id
          in: path
          required: true
          schema:
            type: string
            description: The id of an agent. This is returned on agent creation.
            examples:
              - agent_3701k3ttaq12ewp8b7qv5rfyszkz
            embed: true
            title: Agent Id
          description: The id of an agent. This is returned on agent creation.
        - name: x-api-key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Your API key for programmatic access. Send it in the x-api-key
              header; you can create and manage keys from the Developers page.
            title: X-Api-Key
          description: >-
            Your API key for programmatic access. Send it in the x-api-key
            header; you can create and manage keys from the Developers page.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_post_agent_hold_audio_route'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAgentHoldAudioResponseModel'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/HTTPValidationError'
                  - $ref: '#/components/schemas/APIErrorResponse'
                title: Response 422 Post Agent Hold Audio Route
        default:
          description: >-
            API error. Depending on the operation: 400 invalid request, 401
            authentication required, 402 insufficient credits, 403 permission
            denied, 404 resource not found, 409 conflict, 429 rate limit, 500
            internal failure, 502 upstream failure, 503 service unavailable, or
            504 upstream timeout. A failed response does not establish whether a
            state-changing operation completed; do not retry such operations
            without checking their outcome.
          headers:
            X-Request-Id:
              description: Request identifier, when available.
              schema:
                type: string
            Retry-After:
              description: >-
                When supplied, the delay in seconds or HTTP date before a
                subsequent request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
components:
  schemas:
    Body_post_agent_hold_audio_route:
      properties:
        hold_audio_file:
          type: string
          format: binary
          title: Hold Audio File
          description: MP3 or WAV audio file to play while callers wait in the queue.
      type: object
      required:
        - hold_audio_file
      title: Body_post_agent_hold_audio_route
    PostAgentHoldAudioResponseModel:
      properties:
        agent_id:
          type: string
          title: Agent Id
        hold_audio:
          $ref: '#/components/schemas/AgentHoldAudioConfig'
      type: object
      required:
        - agent_id
        - hold_audio
      title: PostAgentHoldAudioResponseModel
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    APIErrorResponse:
      properties:
        detail:
          $ref: '#/components/schemas/APIErrorDetail'
      type: object
      required:
        - detail
      title: APIErrorResponse
    AgentHoldAudioConfig:
      properties:
        audio_path:
          type: string
          title: Audio Path
          description: Storage path of the uploaded clip
        audio_url:
          type: string
          title: Audio Url
          description: Public CDN URL of the uploaded clip
        original_filename:
          type: string
          title: Original Filename
          description: Filename of the uploaded clip as provided by the user
        duration_secs:
          type: number
          title: Duration Secs
          description: Duration of the uploaded clip in seconds
        size_bytes:
          type: integer
          title: Size Bytes
          description: Size of the uploaded clip in bytes
      type: object
      required:
        - audio_path
        - audio_url
        - original_filename
        - duration_secs
        - size_bytes
      title: AgentHoldAudioConfig
      description: >-
        Custom hold audio played on loop to callers waiting in the agent's
        queue.


        Set by uploading a file through the agent hold-audio endpoint. Values
        sent in

        agent create or update requests are ignored.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    APIErrorDetail:
      properties:
        status:
          type: string
          title: Status
          description: >-
            Stable application error identifier, separate from the HTTP status
            code.
        message:
          type: string
          title: Message
          description: Customer-facing explanation of the error.
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Request Id
          description: Request identifier for support and troubleshooting, when available.
      additionalProperties: true
      type: object
      required:
        - status
        - message
      title: APIErrorDetail
      description: Public error fields; domains may supply additional customer-safe detail.

````

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