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

# Get conversation audio

> Retrieve a presigned URL for downloading conversation audio.




## OpenAPI

````yaml get /conversations/{conversation_id}/audio
openapi: 3.0.3
info:
  title: Coval Conversations API
  version: 1.0.0
  description: |

    Submit and manage conversation evaluations.
  contact:
    name: Coval API Support
    email: support@coval.dev
    url: https://docs.coval.ai
  license:
    name: Proprietary
    url: https://coval.dev/terms
servers:
  - url: https://api.coval.dev/v1
    description: Production API
security:
  - ApiKeyAuth: []
tags:
  - name: Conversations
    description: Submit and manage real-world conversation monitoring evaluations
  - name: Audio
    description: Upload audio for evaluation and access conversation audio files
paths:
  /conversations/{conversation_id}/audio:
    get:
      tags:
        - Audio
      summary: Get conversation audio
      description: |
        Retrieve a presigned URL for downloading conversation audio.
      operationId: getConversationAudio
      parameters:
        - name: conversation_id
          in: path
          description: Unique conversation identifier
          required: true
          schema:
            type: string
            minLength: 22
            maxLength: 26
          example: gk3jK9mPq2xRt5vW8yZaBc
      responses:
        '200':
          description: Presigned audio URL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetConversationAudioResponse'
              examples:
                success:
                  summary: Presigned URL returned
                  value:
                    audio_url: >-
                      https://coval-audio-prod.s3.us-east-2.amazonaws.com/audio/2025/11/03/gk3jK9mPq2xRt5vW8yZaBc.wav?X-Amz-Signature=...
                    peaks_url: >-
                      https://coval-audio-prod.s3.us-east-2.amazonaws.com/audio/2025/11/03/gk3jK9mPq2xRt5vW8yZaBc.peaks.json?X-Amz-Signature=...
                    conversation_id: gk3jK9mPq2xRt5vW8yZaBc
                    url_expires_in_seconds: 3600
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '404':
          description: Conversation not found or has no audio
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                notFound:
                  summary: Conversation not found
                  value:
                    error:
                      code: NOT_FOUND
                      message: Conversation not found
                      details: []
                noAudio:
                  summary: No audio file available
                  value:
                    error:
                      code: NOT_FOUND
                      message: Conversation has no audio file available
                      details:
                        - field: audio
                          description: >-
                            No audio was provided when this conversation was
                            submitted
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    GetConversationAudioResponse:
      type: object
      required:
        - audio_url
        - conversation_id
        - url_expires_in_seconds
      properties:
        audio_url:
          type: string
          format: uri
          description: |
            Presigned S3 URL for downloading audio file.

            URL is valid for duration specified in url_expires_in_seconds.
            No authentication required to access this URL.
          example: >-
            https://coval-audio-prod.s3.us-east-2.amazonaws.com/audio/2025/11/03/gk3jK9mPq2xRt5vW8yZaBc.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256&...
        peaks_url:
          type: string
          format: uri
          nullable: true
          description: >
            Presigned S3 URL for precomputed waveform peaks JSON (valid for 1
            hour).

            Contains an array of up to 800 [min, max] amplitude pairs for
            waveform visualization.

            Null for older recordings without precomputed peaks. May return 404
            if peaks

            were not generated for this recording.
          example: >-
            https://coval-audio-prod.s3.us-east-2.amazonaws.com/audio/2025/11/03/gk3jK9mPq2xRt5vW8yZaBc.peaks.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&...
        conversation_id:
          type: string
          description: Conversation identifier
          example: gk3jK9mPq2xRt5vW8yZaBc
        url_expires_in_seconds:
          type: integer
          description: Number of seconds until presigned URL expires
          example: 3600
      description: |
        Response containing presigned URL for audio download.
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Error code
              enum:
                - INVALID_ARGUMENT
                - UNAUTHENTICATED
                - NOT_FOUND
                - ALREADY_EXISTS
                - PAYLOAD_TOO_LARGE
                - INTERNAL_ERROR
              example: INVALID_ARGUMENT
            message:
              type: string
              description: Human-readable error message
              example: Missing required input data
            details:
              type: array
              items:
                $ref: '#/components/schemas/ErrorDetail'
              description: Additional error details
              default: []
    ErrorDetail:
      type: object
      properties:
        field:
          type: string
          description: Field that caused the error
          example: transcript
        description:
          type: string
          description: Detailed description of the error
          example: At least one of transcript, audio, or audio_url must be provided
  responses:
    Unauthenticated:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: UNAUTHENTICATED
              message: Invalid or missing API key
              details: []
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: INTERNAL_ERROR
              message: An internal error occurred while processing the request
              details: []
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: |
        API key for authentication.

````