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

# Eavesdrop

> Listen to a live call and send supervisor commands. Connect with the JWT from `POST /v1/calls/{callId}/eavesdrop-token` via `Authorization: Bearer {token}` or `?token={token}`. The call id is embedded in the token.



## AsyncAPI

````yaml asyncapi.json eavesdrop
id: eavesdrop
title: Eavesdrop
description: >-
  Listen to a live call and send supervisor commands. Connect with the JWT from
  `POST /v1/calls/{callId}/eavesdrop-token` via `Authorization: Bearer {token}`
  or `?token={token}`. The call id is embedded in the token.
servers:
  - id: production
    protocol: wss
    host: api.vatel.ai
    bindings: []
    variables: []
address: /v1/eavesdrop
parameters: []
bindings: []
operations:
  - &ref_1
    id: eavesdropSendToServer
    title: 'Eavesdrop: send to server'
    description: Supervisor commands for `/v1/eavesdrop`
    type: receive
    messages:
      - &ref_3
        id: EavesdropEndCall
        contentType: application/json
        payload:
          - name: Eavesdrop end call
            description: Supervisor command to end the monitored call.
            type: object
            properties:
              - name: type
                type: string
                description: end_call
                required: true
              - name: data
                type: object
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
          properties:
            type:
              type: string
              const: end_call
              x-parser-schema-id: <anonymous-schema-90>
            data:
              type: object
              x-parser-schema-id: <anonymous-schema-91>
          x-parser-schema-id: <anonymous-schema-89>
        title: Eavesdrop end call
        description: Supervisor command to end the monitored call.
        example: No examples found
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: EavesdropEndCall
      - &ref_4
        id: EavesdropTransferCall
        contentType: application/json
        payload:
          - name: Eavesdrop transfer call
            description: Supervisor command to transfer the monitored call.
            type: object
            properties:
              - name: type
                type: string
                description: transfer
                required: true
              - name: data
                type: object
                required: true
                properties:
                  - name: number
                    type: string
                    description: Destination phone number or SIP URI.
                    required: true
                  - name: transfer_type
                    type: string
                    description: Transfer strategy. Defaults to refer when omitted.
                    enumValues:
                      - bridge
                      - refer
                      - conference
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              const: transfer
              x-parser-schema-id: <anonymous-schema-93>
            data:
              type: object
              required:
                - number
              properties:
                number:
                  type: string
                  description: Destination phone number or SIP URI.
                  x-parser-schema-id: <anonymous-schema-95>
                transfer_type:
                  type: string
                  enum:
                    - bridge
                    - refer
                    - conference
                  description: Transfer strategy. Defaults to refer when omitted.
                  x-parser-schema-id: <anonymous-schema-96>
              x-parser-schema-id: <anonymous-schema-94>
          x-parser-schema-id: <anonymous-schema-92>
        title: Eavesdrop transfer call
        description: Supervisor command to transfer the monitored call.
        example: |-
          {
            "type": "<string>",
            "data": {
              "number": "<string>",
              "transfer_type": "<string>"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: EavesdropTransferCall
    bindings: []
    extensions: &ref_0
      - id: x-parser-unique-object-id
        value: eavesdrop
  - &ref_2
    id: eavesdropReceiveFromServer
    title: 'Eavesdrop: receive from server'
    description: Live call stream for `/v1/eavesdrop`
    type: send
    messages:
      - &ref_5
        id: EavesdropServerMessage
        contentType: application/json
        payload:
          - name: Eavesdrop server message
            description: >-
              Discriminated by type; payload in data. One of: user_audio,
              agent_audio, input_audio_transcript, response_text, transcript.
            type: object
            properties:
              - name: type
                type: string
                enumValues:
                  - user_audio
                  - agent_audio
                  - input_audio_transcript
                  - response_text
                  - transcript
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - user_audio
                - agent_audio
                - input_audio_transcript
                - response_text
                - transcript
              x-parser-schema-id: <anonymous-schema-60>
            data:
              x-parser-schema-id: <anonymous-schema-61>
          x-parser-schema-id: <anonymous-schema-59>
        title: Eavesdrop server message
        description: >-
          Discriminated by type; payload in data. One of: user_audio,
          agent_audio, input_audio_transcript, response_text, transcript.
        example: |-
          {
            "type": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: EavesdropServerMessage
      - &ref_6
        id: EavesdropUserAudio
        contentType: application/json
        payload:
          - name: Eavesdrop user audio
            description: User-side audio chunk.
            type: object
            properties:
              - name: type
                type: string
                description: user_audio
                required: true
              - name: data
                type: object
                required: true
                properties:
                  - name: audio
                    type: string
                    description: Base64-encoded PCM16 mono 24 kHz audio.
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              const: user_audio
              x-parser-schema-id: <anonymous-schema-63>
            data:
              type: object
              required:
                - audio
              properties:
                audio:
                  type: string
                  description: Base64-encoded PCM16 mono 24 kHz audio.
                  x-parser-schema-id: <anonymous-schema-65>
              x-parser-schema-id: <anonymous-schema-64>
          x-parser-schema-id: <anonymous-schema-62>
        title: Eavesdrop user audio
        description: User-side audio chunk.
        example: |-
          {
            "type": "<string>",
            "data": {
              "audio": "<string>"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: EavesdropUserAudio
      - &ref_7
        id: EavesdropAgentAudio
        contentType: application/json
        payload:
          - name: Eavesdrop agent audio
            description: Agent-side audio chunk.
            type: object
            properties:
              - name: type
                type: string
                description: agent_audio
                required: true
              - name: data
                type: object
                required: true
                properties:
                  - name: audio
                    type: string
                    description: Base64-encoded PCM16 mono 24 kHz audio.
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              const: agent_audio
              x-parser-schema-id: <anonymous-schema-67>
            data:
              type: object
              required:
                - audio
              properties:
                audio:
                  type: string
                  description: Base64-encoded PCM16 mono 24 kHz audio.
                  x-parser-schema-id: <anonymous-schema-69>
              x-parser-schema-id: <anonymous-schema-68>
          x-parser-schema-id: <anonymous-schema-66>
        title: Eavesdrop agent audio
        description: Agent-side audio chunk.
        example: |-
          {
            "type": "<string>",
            "data": {
              "audio": "<string>"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: EavesdropAgentAudio
      - &ref_8
        id: EavesdropInputAudioTranscript
        contentType: application/json
        payload:
          - name: Eavesdrop input audio transcript
            description: Interim or final user speech transcript.
            type: object
            properties:
              - name: type
                type: string
                description: input_audio_transcript
                required: true
              - name: data
                type: object
                required: true
                properties:
                  - name: transcript
                    type: string
                    required: true
                  - name: turn_id
                    type: string
                    required: false
                  - name: is_final
                    type: boolean
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              const: input_audio_transcript
              x-parser-schema-id: <anonymous-schema-71>
            data:
              type: object
              required:
                - transcript
                - is_final
              properties:
                transcript:
                  type: string
                  x-parser-schema-id: <anonymous-schema-73>
                turn_id:
                  type: string
                  x-parser-schema-id: <anonymous-schema-74>
                is_final:
                  type: boolean
                  x-parser-schema-id: <anonymous-schema-75>
              x-parser-schema-id: <anonymous-schema-72>
          x-parser-schema-id: <anonymous-schema-70>
        title: Eavesdrop input audio transcript
        description: Interim or final user speech transcript.
        example: |-
          {
            "type": "<string>",
            "data": {
              "transcript": "<string>",
              "turn_id": "<string>",
              "is_final": true
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: EavesdropInputAudioTranscript
      - &ref_9
        id: EavesdropResponseText
        contentType: application/json
        payload:
          - name: Eavesdrop response text
            description: Interim or final agent text.
            type: object
            properties:
              - name: type
                type: string
                description: response_text
                required: true
              - name: data
                type: object
                required: true
                properties:
                  - name: text
                    type: string
                    required: true
                  - name: turn_id
                    type: string
                    required: false
                  - name: is_final
                    type: boolean
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              const: response_text
              x-parser-schema-id: <anonymous-schema-77>
            data:
              type: object
              required:
                - text
                - is_final
              properties:
                text:
                  type: string
                  x-parser-schema-id: <anonymous-schema-79>
                turn_id:
                  type: string
                  x-parser-schema-id: <anonymous-schema-80>
                is_final:
                  type: boolean
                  x-parser-schema-id: <anonymous-schema-81>
              x-parser-schema-id: <anonymous-schema-78>
          x-parser-schema-id: <anonymous-schema-76>
        title: Eavesdrop response text
        description: Interim or final agent text.
        example: |-
          {
            "type": "<string>",
            "data": {
              "text": "<string>",
              "turn_id": "<string>",
              "is_final": true
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: EavesdropResponseText
      - &ref_10
        id: EavesdropTranscriptSnapshot
        contentType: application/json
        payload:
          - name: Eavesdrop transcript snapshot
            description: >-
              Initial committed transcript history after the eavesdrop room is
              ready.
            type: object
            properties:
              - name: type
                type: string
                description: transcript
                required: true
              - name: data
                type: object
                required: true
                properties:
                  - name: entries
                    type: array
                    required: true
                    properties:
                      - name: role
                        type: string
                        enumValues:
                          - user
                          - agent
                        required: true
                      - name: text
                        type: string
                        required: true
                      - name: turn_id
                        type: string
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - data
          properties:
            type:
              type: string
              const: transcript
              x-parser-schema-id: <anonymous-schema-83>
            data:
              type: object
              required:
                - entries
              properties:
                entries:
                  type: array
                  items:
                    type: object
                    required:
                      - role
                      - text
                    properties:
                      role:
                        type: string
                        enum:
                          - user
                          - agent
                        x-parser-schema-id: <anonymous-schema-86>
                      text:
                        type: string
                        x-parser-schema-id: <anonymous-schema-87>
                      turn_id:
                        type: string
                        x-parser-schema-id: <anonymous-schema-88>
                    x-parser-schema-id: EavesdropTranscriptEntry
                  x-parser-schema-id: <anonymous-schema-85>
              x-parser-schema-id: <anonymous-schema-84>
          x-parser-schema-id: <anonymous-schema-82>
        title: Eavesdrop transcript snapshot
        description: >-
          Initial committed transcript history after the eavesdrop room is
          ready.
        example: No examples found
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: EavesdropTranscriptSnapshot
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_1
receiveOperations:
  - *ref_2
sendMessages:
  - *ref_3
  - *ref_4
receiveMessages:
  - *ref_5
  - *ref_6
  - *ref_7
  - *ref_8
  - *ref_9
  - *ref_10
extensions:
  - id: x-parser-unique-object-id
    value: eavesdrop
securitySchemes: []

````