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

# List a conversation's calls

> Lists the telephony or web calls that took part in one conversation, with their numbers, status, timestamps and hang-up details.



## OpenAPI

````yaml /api-reference/voice-openapi.json get /v1/projects/{projectId}/conversations/{id}/calls
openapi: 3.0.3
info:
  title: Clarity Voice API
  version: '1.0'
  description: Voice agents, outbound calls, conversations, campaigns, and evals.
servers:
  - url: https://voice-api.onclarity.com
security:
  - organizationApiKey: []
tags:
  - name: Projects
    description: >-
      The projects your organization owns. Every other resource lives in a
      project.
  - name: Agents
    description: Create, configure, version and publish voice agents.
  - name: Outbound calls
    description: Have a published agent phone a number now.
  - name: Conversations
    description: >-
      One record per call session, with its calls, recordings, transcripts and
      artifacts.
  - name: Calls
    description: The calls of a project, with their status, direction, timing and outcome.
  - name: Campaigns
    description: Outbound calling campaigns that phone a list of numbers on a schedule.
  - name: Eval suites
    description: >-
      Reusable sets of eval scenarios and test cases to measure an agent
      against.
  - name: Eval judges
    description: The LLM judges that score eval calls against your test cases.
  - name: Eval scenarios
    description: The simulated-caller scenarios of your eval suites.
  - name: Eval test cases
    description: The checks a judge applies to each eval call.
  - name: Eval submissions
    description: Run an eval suite against an agent and read the verdicts.
paths:
  /v1/projects/{projectId}/conversations/{id}/calls:
    parameters:
      - $ref: '#/components/parameters/ProjectIdPath'
      - $ref: '#/components/parameters/ConversationId'
    get:
      tags:
        - Conversations
      summary: List a conversation's calls
      description: >-
        Lists the telephony or web calls that took part in one conversation,
        with their numbers, status, timestamps and hang-up details.
      operationId: listConversationCalls
      responses:
        '200':
          description: The conversation's calls.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallsListResponse'
              example:
                calls:
                  - id: 1b6453892473a467d07372d45eb05abc
                    project_id: 3c59dc04-8a4b-4f7e-9b1a-6c2a0e5d1f22
                    platform_id: RM_kQ3vZx7pLm2T
                    platform_name: livekit
                    conversation_id: 8f14e45f-ceea-467f-a0e6-3f1c2b9d7a10
                    participant_identity: sip_+966500000000
                    originator:
                      type: pstn
                      phone_number: '+966500000000'
                    receiver:
                      type: pstn
                      phone_number: '+966110000000'
                    did: '+966110000000'
                    remote_number: '+966500000000'
                    status: completed
                    direction: incoming
                    type: pstn
                    duration: 184
                    hangup_reason: caller_hangup
                    hangup_sip_code: null
                    created_at: '2026-10-20T09:15:00.000Z'
                    answered_at: '2026-10-20T09:15:01.000Z'
                    ended_at: '2026-10-20T09:18:05.000Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: >-
            The conversation, or the project, does not exist or is not
            accessible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Conversation not found
components:
  parameters:
    ProjectIdPath:
      name: projectId
      in: path
      required: true
      schema:
        type: string
      description: Project id
    ConversationId:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: Conversation id
  schemas:
    CallsListResponse:
      type: object
      required:
        - calls
      properties:
        calls:
          type: array
          items:
            $ref: '#/components/schemas/Call'
    Error:
      type: object
      required:
        - error
      additionalProperties: true
      properties:
        error:
          type: string
          description: Error message
        code:
          type: string
          description: >-
            A stable machine-readable reason, present on the refusals a client
            may branch on. Among them: `PUBLISH_CAPABILITY_REQUIRED` (403, the
            credential may not change what is live), `AGENT_NOT_PUBLISHED` (409,
            the agent has no published version yet),
            `AGENT_TYPE_NOT_DISPATCHABLE` (422, a Voice Assist agent named where
            an agent must place or take a call; the body carries `agent_type`
            and `agent_id`), `NOT_APPLICABLE_TO_AGENT_TYPE` (422, a voice-only
            setting written on a Voice Assist agent), `AGENT_TYPE_BOUNDARY`
            (409), `AGENT_TYPE_NOT_SUPPORTED` (400), `VOICE_ASSISTANT_REQUIRED`
            (403, the organization is not licensed for Voice Assist),
            `ORGANIZATION_UNAVAILABLE` (503) and `REGION_PROFILE_CONFLICT`
            (503).
    Call:
      type: object
      required:
        - id
        - project_id
      properties:
        id:
          type: string
        project_id:
          type: string
        platform_id:
          type: string
          nullable: true
        platform_name:
          type: string
          nullable: true
        conversation_id:
          type: string
          nullable: true
          description: >-
            The conversation this call belongs to; null for a scheduled call
            that has not started.
        participant_identity:
          type: string
          nullable: true
          description: The call's participant identity in the media room.
        originator:
          anyOf:
            - $ref: '#/components/schemas/CallParty'
            - additionalProperties: true
              type: object
          nullable: true
        receiver:
          anyOf:
            - $ref: '#/components/schemas/CallParty'
            - additionalProperties: true
              type: object
          nullable: true
        did:
          type: string
          nullable: true
          description: Our side phone (DID) when PSTN
        remote_number:
          type: string
          nullable: true
          description: Far end phone when PSTN
        status:
          type: string
          enum:
            - scheduled
            - accepted
            - ringing
            - ongoing
            - completed
            - busy
            - no-answer
            - failed
            - cancelled
          nullable: true
        reason:
          additionalProperties: true
          nullable: true
          type: object
        direction:
          type: string
          enum:
            - incoming
            - outgoing
          nullable: true
        type:
          type: string
          enum:
            - pstn
            - webrtc
            - sip
            - whatsapp
          nullable: true
          description: Call type / channel
        duration:
          type: integer
          format: int64
          nullable: true
        context:
          additionalProperties: true
          nullable: true
          type: object
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          nullable: true
        ringing_at:
          type: string
          format: date-time
          nullable: true
        answered_at:
          type: string
          format: date-time
          nullable: true
        ended_at:
          type: string
          format: date-time
          nullable: true
        signalling_metrics:
          additionalProperties: true
          nullable: true
          type: object
        media_metrics:
          additionalProperties: true
          nullable: true
          type: object
        media_insights:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Caller-side network statistics (round-trip time, jitter, loss)
            reported by the web widget. Null for phone calls.
        hangup_reason:
          type: string
          nullable: true
        hangup_sip_code:
          type: string
          nullable: true
        scheduled_for:
          type: string
          format: date-time
          nullable: true
        amd_result:
          additionalProperties: true
          nullable: true
          type: object
        tags:
          type: array
          nullable: true
          items:
            type: string
        room_name:
          type: string
          nullable: true
          description: >-
            Name of the media room backing this call. Distinct from
            `platform_id` (the room's id).
        agent_id:
          type: string
          nullable: true
          description: The agent that handled the call's conversation.
        region_profile:
          type: string
          nullable: true
          description: >-
            The regional deployment profile that served the call; null for the
            default.
        eval_submission_id:
          type: string
          nullable: true
          description: The evaluation run this call belongs to, for evaluation calls.
        eval_scenario_id:
          type: string
          nullable: true
          description: The evaluation scenario this call played, for evaluation calls.
        eval_run_index:
          type: integer
          nullable: true
        eval_temp_sheet_ids:
          additionalProperties: true
          nullable: true
          type: object
        warnings:
          type: array
          description: >-
            In-call warnings raised on the call's conversation (list endpoint
            only).
          items:
            $ref: '#/components/schemas/CallWarningSummary'
        live_monitor:
          type: object
          nullable: true
          description: Only present on `GET .../calls?status=ongoing`.
          properties:
            can_monitor:
              type: boolean
              description: >-
                Whether the call currently has a resolvable LiveKit room to join
                (`room_name` is set).
            can_barge_in:
              type: boolean
              description: >-
                Barge-in is available for this call's agent type (false for a
                Voice Assist call).
            can_steer:
              type: boolean
              description: >-
                Steering is available for this call's agent type (false for a
                Voice Assist call).
            can_hang_up:
              type: boolean
              description: >-
                Hanging up is available for this call's agent type (false for a
                Voice Assist call, which the operator ends).
            active_barge_in:
              type: boolean
              description: >-
                Whether another admin already holds an active barge-in on this
                call.
        assist:
          nullable: true
          description: >-
            Only present on `GET .../calls?status=ongoing`; null unless the
            call's agent is a Voice Assist agent.
          allOf:
            - $ref: '#/components/schemas/AssistLiveCallInfo'
    CallParty:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - pstn
            - sip
            - webrtc
            - whatsapp
          description: Party type / channel
        phone_number:
          type: string
          nullable: true
          description: E.164 or national number (PSTN)
        sip_uri:
          type: string
          nullable: true
          description: SIP URI (SIP)
        user_id:
          type: string
          nullable: true
          description: User/session identifier (WebRTC)
    CallWarningSummary:
      type: object
      description: An in-call warning raised on a conversation, without its evidence.
      required:
        - id
        - category
        - severity
        - source
        - reason
        - occurrence_count
        - first_raised_at
        - last_updated_at
      properties:
        id:
          type: string
        category:
          type: string
          description: >-
            `tool_failure`, `caller_not_understood`, `abuse_attempt`,
            `provider_unavailable`, `negative_sentiment` or `escalation_risk`.
        severity:
          type: string
          enum:
            - warning
            - critical
        source:
          type: string
          enum:
            - deterministic
            - judgment
          description: >-
            `deterministic` (a rule fired) or `judgment` (a model judged the
            conversation).
        reason:
          type: string
          description: >-
            Why the warning was raised. A placeholder while personal-data
            redaction is still pending (`reason_withheld`).
        reason_withheld:
          type: boolean
        occurrence_count:
          type: integer
        first_raised_at:
          type: string
        last_updated_at:
          type: string
        raised_at_offset_ms:
          type: integer
          nullable: true
          description: >-
            Milliseconds from the start of the call, to find the moment in the
            recording.
    AssistLiveCallInfo:
      type: object
      description: >-
        The `assist` block of an ongoing-list row: the queue item's data plus
        the operator's claim, for a call whose agent is of type `assist`.
        Composed per request; nothing is stored.
      required:
        - operator_user_id
        - claimed_at
        - joined_at
        - waiting_since
        - language
        - origin
        - caller
        - kb_collection_id
      properties:
        operator_user_id:
          type: string
          nullable: true
          description: >-
            The operator holding the call (the unended claim); null while
            waiting for one.
        claimed_at:
          type: string
          format: date-time
          nullable: true
        joined_at:
          type: string
          format: date-time
          nullable: true
          description: Null between the claim and the operator's arrival in the room.
        waiting_since:
          type: string
          format: date-time
          description: >-
            The conversation's start (the call's own start when the conversation
            is not active).
        language:
          type: string
          description: >-
            The queue's display label; both languages primary first for a pair
            ("Arabic · English"); "" when unknown.
        origin:
          type: string
          description: >-
            try_it | demo | production ("" when the conversation is not active;
            a future origin still parses).
        caller:
          $ref: '#/components/schemas/AssistCallerSummary'
        kb_collection_id:
          type: string
          nullable: true
    AssistCallerSummary:
      type: object
      description: >-
        The caller summary: who is calling, as the one contact lookup resolved
        it. Never the entered phone or email.
      required:
        - identity_entered
        - outcome
        - customer_id
        - display_name
        - avatar_url
        - secondary_match
      properties:
        identity_entered:
          type: boolean
        outcome:
          type: string
          enum:
            - not_attempted
            - matched
            - unmatched
            - failed
        customer_id:
          type: integer
          nullable: true
        display_name:
          type: string
          nullable: true
        avatar_url:
          type: string
          nullable: true
        secondary_match:
          type: boolean
  responses:
    Unauthorized:
      description: No credential was sent, or the API key is invalid or revoked.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Invalid or revoked token
    Forbidden:
      description: >-
        The credential carries no access to this project, or the operation needs
        administrative rights
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    organizationApiKey:
      type: http
      scheme: bearer
      description: >-
        Your organization API key (it starts with `anek_org_`). The same key
        works on the Voice API and the Support API. See
        [Authentication](/authentication).

````

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