---
title: "List Phone Calls"
method: GET
path: "/v2/phone-calls"
tags: ["v2", "phone-calls"]
---

# List Phone Calls

`GET /v2/phone-calls`

## Request

- Base URL: `https://api.mentium.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.mentium.io/v2/phone-calls`
- Auth: HTTP bearer

List all phone calls with optional filters.

Query Parameters:
    - direction: Filter by direction (INBOUND/OUTBOUND)
    - filters_json: JSON array of dynamic filters
        Example: [{"field": "resource", "operator": "EQUALS",
        "resource_type": "Load", "identifier_field": "external_reference_id",
        "value": "123"}]
        Supported fields: resource (exact EQUALS/IN linking-tag filter),
        load_id (Load compatibility alias),
        tag (free-tag filter on tag definition ids - EQUALS/IN; IN
        matches calls carrying ALL listed definitions),
        carrier_id, status, initiated_at, agent_id / ai_agent_id,
        ai_agent_revision_id, elevenlabs_agent_id, has_feedback
        Supported operators: EQUALS, CONTAINS, NOT_EQUALS, etc.
Results are paginated and ordered by initiated_at (most recent first).
Recording URLs are returned as presigned URLs valid for 1 hour.

## Query parameters

- `direction` 'INBOUND' | 'OUTBOUND'
- `filters_json` string, nullable: JSON array of filters: [{"field": "resource", "operator": "EQUALS", "resource_type": "Load", "identifier_field": "external_reference_id", "value": "123"}]. Resource filters match linking-tag assignments. load_id remains a compatibility alias for that Load filter. The tag filter takes free (classification) tag definition ids: [{"field": "tag", "operator": "IN", "values": ["<uuid>", ...]}] returns only calls carrying every listed definition.
- `q` string, nullable: Search the carrier name and id, the load id (the call's or its offer's), the MC and DOT (the offer's or the call's carrier-mc / carrier-dot tag, exact) and, with 3+ digits, the phone numbers
- `outcome` string, nullable: The Calls table's outcome pill: booked | accepted | negotiating | declined | transferred | no_answer | failed | stale | live | in_progress | completed. ai_handling matches no call.
- `page` integer: Page number
- `size` integer: Page size

## Headers

- `mentium-workspace-id` string, nullable

## Response `200`

Successful Response

- PagePhoneCallResponse
  - `items` PhoneCallResponse[], required
    - `id` string, required
    - `organization_id` string, required
    - `workspace_id` string, required
    - `direction` 'INBOUND' | 'OUTBOUND', required
    - `status` 'INITIATED' | 'RINGING' | 'ACTIVE' | 'COMPLETED' | 'FAILED' | 'NO_ANSWER' | 'BUSY', required
    - `from_number` string, required
    - `to_number` string, required
    - `external_reference_carrier_id` string, nullable
    - `external_reference_carrier_name` string, nullable
    - `external_reference_load_id` string, nullable
    - `ai_agent_id` string, nullable
    - `ai_agent_name` string, nullable
    - `ai_agent_revision_id` string, nullable
    - `ai_agent_revision_number` integer, nullable
    - `elevenlabs_agent_id` string, nullable
    - `conversation_id` string, nullable
    - `twilio_call_sid` string, nullable
    - `carrier_offer_id` string, nullable
    - `carrier_offer` CarrierOfferEmbedded
      - `id` string, required
      - `load_offer_id` string, required
      - `status` string, required
      - `opening_carrier_rate_amount` number, nullable
      - `latest_carrier_rate_amount` number, nullable
      - `current_carrier_rate_amount` number, nullable
      - `booked_at` string, date-time, nullable
      - `currency` string, nullable
      - `load_external_reference_id` string, nullable
      - `load_origin` string, nullable
      - `load_destination` string, nullable
      - `carrier_mc_number` string, nullable
      - `carrier_dot_number` string, nullable
    - `initiated_at` string, date-time, required
    - `answered_at` string, date-time, nullable
    - `ended_at` string, date-time, nullable
    - `duration_seconds` integer, nullable
    - `outcome` 'BOOKED' | 'NEGOTIATING' | 'REJECTED' | 'ERROR' | 'TRANSFERRED'
    - `negotiated_rate` string, nullable
    - `negotiated_rate_currency` string, nullable
    - `notes` string, nullable
    - `recording_url` string, nullable
    - `transfer_leg_sid` string, nullable
    - `transfer_leg_status` string, nullable
    - `transfer_leg_duration_seconds` integer, nullable
    - `transfer_connected_at` string, date-time, nullable
    - `post_transfer_transcript` object[], nullable
    - `post_transfer_transcription_terminal_result` string, nullable
    - `post_transfer_recording_url` string, nullable
    - `notes_spanning_transfer` string, nullable
    - `transfer_result` string, nullable
    - `transfer_detail` string, nullable
    - `transfer_notify_email` string, nullable
    - `transfer_notify_name` string, nullable
    - `transfer_notify_phone` string, nullable
    - `transfer_source` string, nullable
    - `transcript` object[], nullable
    - `metadata` object, nullable
    - `events` PhoneCallEventResponse[]
      - `id` string, required
      - `phone_call_id` string, required
      - `event_type` 'TOOL_CALL' | 'STATUS_CHANGE' | 'CONVERSATION_STARTED' | 'CONVERSATION_ENDED' | 'TRANSFER_NUMBER_ASSIGNED' | 'TRANSFER_LEG_OBSERVED' | 'RECORDING_ARMED' | 'RECORDING_RECEIVED' | 'RECORDING_STORED', required
      - `timestamp` string, date-time, required
      - `data` object, required
    - `estimated_cost_usd` string, nullable
    - `feedback_count` integer
    - `latest_feedback_text` string, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `total` integer, required
  - `page` integer, required
  - `size` integer, required
  - `pages` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/mentium/apis/mentium-api.md) - [All operations](https://skmtc.dev/mentium/apis/mentium-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mentium/apis/mentium-api/revisions/b4ed8e59432e?raw)
