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

# Get Call

> Retrieve a single call with its full transcript and analysis.



## OpenAPI

````yaml https://api.usetuner.ai/public/openapi.json get /api/v1/workspaces/{workspace_id}/agents/{agent_id}/calls/{call_id}
openapi: 3.1.0
info:
  title: My Public API
  version: 1.0.0
servers:
  - url: https://api.usetuner.ai
security: []
tags:
  - name: calls
    x-group: Calls
  - name: workspaces
    x-group: Workspaces
  - name: agent-settings
    x-group: Agent Settings
  - name: agents
    x-group: Agents
  - name: simulation
    x-group: Simulation
  - name: providers
    x-group: Providers
paths:
  /api/v1/workspaces/{workspace_id}/agents/{agent_id}/calls/{call_id}:
    get:
      tags:
        - calls
        - calls
      summary: Get Call
      description: Retrieve a single call with its full transcript and analysis.
      operationId: >-
        get_call_details_api_v1_workspaces__workspace_id__agents__agent_id__calls__call_id__get
      parameters:
        - name: call_id
          in: path
          required: true
          schema:
            type: integer
            description: Tuner's internal numeric ID for the call.
            title: Call Id
          description: Tuner's internal numeric ID for the call.
        - name: agent_id
          in: path
          required: true
          schema:
            type: integer
            description: Tuner's internal numeric ID for the agent.
            title: Agent Id
          description: Tuner's internal numeric ID for the agent.
        - name: workspace_id
          in: path
          required: true
          schema:
            type: integer
            description: Workspace ID. Find this in Workspace > General Settings.
            title: Workspace Id
          description: Workspace ID. Find this in Workspace > General Settings.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallDetailsResponse'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                detail: Not authenticated
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: You do not have access to this workspace.
          content:
            application/json:
              example:
                detail: User does not have access to workspace 42
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Agent or call not found.
          content:
            application/json:
              example:
                detail: Call with ID 88 not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - Bearer: []
components:
  schemas:
    CallDetailsResponse:
      properties:
        id:
          type: integer
          title: Id
          description: Call database ID
        call_intent:
          anyOf:
            - type: string
            - type: 'null'
          title: Call Intent
          description: Call intent
        call_outcome:
          anyOf:
            - $ref: '#/components/schemas/CallOutcome'
            - type: 'null'
          description: Call outcome with value and type
        date:
          type: string
          title: Date
          description: Call start date in ISO 8601 format
        duration_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Duration Ms
          description: Call duration in milliseconds
        call_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Call Status
          description: Call status
        disconnection_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Disconnection Reason
          description: Disconnection reason
        cost:
          type: number
          title: Cost
          description: >-
            Call cost in cents (canonical unit). Frontend converts to dollars
            for display.
          default: 0
        latency:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Latency
          description: >-
            Raw persisted latency payload from DB with top-level keys (for
            example: e2e/llm/stt/tts/eou). Any metadata key is excluded.
        voice_metrics:
          anyOf:
            - $ref: '#/components/schemas/VoiceMetricsSummary'
            - type: 'null'
          description: Aggregated voice metrics derived from call latency + transcript
        customer_number:
          type: string
          title: Customer Number
          description: Customer phone number
          default: ''
        caller_phone_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Caller Phone Number
          description: Caller phone number (for phone_call type)
        call_id:
          type: string
          title: Call Id
          description: Provider call ID
        recording_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Recording Url
          description: URL to call recording
        extracted_fields:
          additionalProperties:
            type: string
          type: object
          title: Extracted Fields
          description: Extracted data fields from LLM
        evaluations:
          additionalProperties: true
          type: object
          title: Evaluations
          description: Call evaluations (placeholder)
        transcript_with_tool_calls:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Transcript With Tool Calls
          description: >-
            Raw transcript segments as stored, including agent/user messages,
            node transitions, and tool calls.
        end_goal:
          anyOf:
            - type: string
            - type: 'null'
          title: End Goal
          description: >-
            Simulation scenario end goal. Populated only when this call is a
            simulation call.
        persona:
          anyOf:
            - type: string
            - type: 'null'
          title: Persona
          description: >-
            Simulation scenario persona. Populated only when this call is a
            simulation call.
        prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Prompt
          description: >-
            Simulation scenario prompt. Populated only when this call is a
            simulation call.
        scenario_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Scenario Type
          description: >-
            Simulation scenario type, mapped for display: 'Routine call' for
            functional, 'Pressure call' for adversarial. Populated only when
            this call is a simulation call.
        pii_redaction_status:
          anyOf:
            - type: string
              enum:
                - redacted
                - partial_failure
                - failed
            - type: 'null'
          title: Pii Redaction Status
          description: >-
            PII redaction outcome. Null when redaction was not attempted
            (disabled workspace, simulation call, or pre-feature call);
            otherwise one of 'redacted', 'partial_failure', or 'failed'.
        retention_erased_scope:
          anyOf:
            - type: string
              enum:
                - transcript_recording
                - caller_data
            - type: 'null'
          title: Retention Erased Scope
          description: >-
            Retention erasure scope applied to this call. Null when the call was
            never erased. The 'full' scope never appears here -- it deletes the
            call row entirely, so those calls 404 instead.
        retention_erased_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Retention Erased At
          description: >-
            When retention erasure ran for this call, ISO 8601. Null when never
            erased.
        metadata:
          anyOf:
            - $ref: '#/components/schemas/CallMetadataResponse'
            - type: 'null'
          description: >-
            Call-level metadata: AI models, AI usage, and remaining
            customer-supplied keys. Null when the call has none.
      type: object
      required:
        - id
        - date
        - call_id
      title: CallDetailsResponse
      description: Detailed call information response.
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable description of what went wrong.
      type: object
      required:
        - detail
      title: ErrorResponse
      description: Error body returned when a request fails.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CallOutcome:
      properties:
        value:
          type: string
          title: Value
          description: Call outcome value/label
        type:
          anyOf:
            - type: string
            - type: 'null'
          title: Type
          description: Call outcome type (e.g., 'success', 'failure')
      type: object
      required:
        - value
      title: CallOutcome
      description: Call outcome with value and type.
    VoiceMetricsSummary:
      properties:
        p50_latency:
          anyOf:
            - type: number
            - type: 'null'
          title: P50 Latency
          description: P50 e2e latency in milliseconds
        p75_latency:
          anyOf:
            - type: number
            - type: 'null'
          title: P75 Latency
          description: P75 e2e latency in milliseconds
        p90_latency:
          anyOf:
            - type: number
            - type: 'null'
          title: P90 Latency
          description: P90 e2e latency in milliseconds
        p95_latency:
          anyOf:
            - type: number
            - type: 'null'
          title: P95 Latency
          description: P95 e2e latency in milliseconds
        p99_latency:
          anyOf:
            - type: number
            - type: 'null'
          title: P99 Latency
          description: P99 e2e latency in milliseconds
        longest_agent_monologue_ms:
          anyOf:
            - type: number
            - type: 'null'
          title: Longest Agent Monologue Ms
          description: Longest continuous agent monologue duration in milliseconds
      type: object
      title: VoiceMetricsSummary
      description: Aggregated voice metrics surfaced on call details.
    CallMetadataResponse:
      properties:
        ai_models:
          anyOf:
            - $ref: '#/components/schemas/CallAiModelsResponse'
            - type: 'null'
          description: AI model identifiers used during the call; None when all are missing
        ai_usage:
          anyOf:
            - $ref: '#/components/schemas/CallAiUsageResponse'
            - type: 'null'
          description: AI usage/cost metrics for the call; None when all are missing
        extra:
          additionalProperties: true
          type: object
          title: Extra
          description: >-
            Remaining customer-supplied metadata keys from
            general_meta_data_raw, excluding the keys already surfaced elsewhere
            (ai_models, usage_token, simulation_correlation_id).
      type: object
      title: CallMetadataResponse
      description: >-
        Call-level metadata: AI models, AI usage, and remaining
        customer-supplied keys.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    CallAiModelsResponse:
      properties:
        stt:
          anyOf:
            - type: string
            - type: 'null'
          title: Stt
          description: Speech-to-text (ASR) model identifier used during the call
        llm:
          anyOf:
            - type: string
            - type: 'null'
          title: Llm
          description: LLM model identifier used during the call
        tts:
          anyOf:
            - type: string
            - type: 'null'
          title: Tts
          description: Text-to-speech model identifier used during the call
        extra:
          additionalProperties: true
          type: object
          title: Extra
          description: >-
            Any other key in the customer-supplied ai_models object we don't
            recognize by name.
      type: object
      title: CallAiModelsResponse
      description: AI model identifiers surfaced on the call detail 'AI Models' section.
    CallAiUsageResponse:
      properties:
        input_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Input Tokens
          description: LLM input (prompt) token count
        output_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Output Tokens
          description: LLM output (completion) token count
        llm_cost:
          anyOf:
            - type: number
            - type: 'null'
          title: Llm Cost
          description: >-
            LLM cost in cents (canonical unit, matching
            CallDetailsResponse.cost).
        voice_cost:
          anyOf:
            - type: number
            - type: 'null'
          title: Voice Cost
          description: >-
            Combined STT + TTS cost in cents (canonical unit). Covers both
            directions of speech; None only when neither component cost is
            available.
        stt_duration_seconds:
          anyOf:
            - type: number
            - type: 'null'
          title: Stt Duration Seconds
          description: >-
            Speech-to-text audio duration processed, in seconds. Sent by
            non-Vapi providers (custom API, LiveKit, Dograh, Pipecat, some
            Retell-labeled integrations) that do not populate
            llm_cost/voice_cost.
        llm_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Llm Tokens
          description: >-
            Total LLM token count for the call. Sent by non-Vapi providers as a
            single total rather than the input_tokens/output_tokens split Vapi
            provides.
        tts_characters:
          anyOf:
            - type: integer
            - type: 'null'
          title: Tts Characters
          description: >-
            Number of characters synthesized by text-to-speech during the call.
            Sent by non-Vapi providers in place of a per-direction voice cost
            breakdown.
        extra:
          additionalProperties: true
          type: object
          title: Extra
          description: >-
            Any other key in the customer-supplied usage_token object we don't
            recognize by name.
      type: object
      title: CallAiUsageResponse
      description: AI usage/cost metrics surfaced on the call detail 'AI Usage' section.
  securitySchemes:
    Bearer:
      type: http
      description: >-
        Use Tuner API key (tr_api_...) or user session token. Find your API key
        in Workspace Settings > API Keys.
      scheme: bearer

````