---
title: "Get Calls"
method: GET
path: "/dashboard/calls"
tags: ["Dashboard"]
---

# Get Calls

`GET /dashboard/calls`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/dashboard/calls`
- Auth: none declared

Get paginated, sorted, and filtered calls for the customer. By default, test calls are excluded.

## Query parameters

- `page` integer: Page number
- `page_size` integer: Number of items per page
- `sort_column` string: Column to sort by
- `sort_direction` string: Sort direction
- `search` string, nullable: Search by phone number or caller name
- `direction` string, nullable: Filter by call direction
- `caller_client_status` string, nullable: Filter by caller client status
- `has_error` boolean, nullable: Filter by error status
- `outcome` string, nullable: Filter by call outcome
- `vxt_transfer` string, nullable: Filter by VXT transfer outcome: answered, voicemail, no_answer, bounced, transferred (any outcome), not_transferred
- `dialtone_screening` string, nullable: Filter by dialtone screening outcome: accepted, declined, no_answer, none
- `sa_case_number` string, nullable: Filter to calls whose matched SmartAdvocate case number contains this text
- `case_match` string, nullable: Filter by case match status: matched, no_match, pending_approval, rejected, or none (case matching never recorded a result)
- `substantive` boolean, nullable: Filter by whether the call had a substantive conversation. false also matches calls with no assessment (undetermined or no case-match record)
- `negotiation` boolean, nullable: Filter by whether the call contained settlement-negotiation conversation (Negotiations tab). false also matches calls the question was never asked on. Admin-only, requires negotiation_calls_enabled
- `negotiation_outcome` string, nullable: Filter to negotiation calls whose settlement ended in this state (Negotiations tab Outcome column). Admin-only, requires negotiation_calls_enabled
- `negotiator_name` string, nullable: Filter to calls whose firm-side negotiator name contains this text (from the answered post-transfer PBX leg)
- `assigned_team` string, uuid, nullable: Filter to calls whose matched case is assigned to this TransferDestination ("team"), as resolved by the customer's SmartAdvocate case-status routing rules
- `start_datetime` string, date-time, nullable: Filter calls with start_time >= this UTC datetime (inclusive)
- `end_datetime` string, date-time, nullable: Filter calls with start_time < this UTC datetime (exclusive)
- `intake` boolean, nullable: Filter by intake recording: true = only imported intake recordings (Intakes page), false = exclude them (Calls page), null = no filter
- `transfer_destination` string, uuid, nullable: Filter to calls transferred to this TransferDestination
- `line` string, uuid, nullable: Filter to calls on this firm line (CustomerPhoneNumber id): the number dialed inbound, or placed from outbound. Bounce-backs count on their original call's line
- `include_claimed_originals` boolean: Deprecated and ignored. Stitched conversations always hide their original call rows
- `include_test_calls` boolean: Include test calls in results

## Response `200`

Successful Response

- PaginatedCallsResponse: Paginated calls response schema
  - `calls` RecentCall[], required
    - `call_id` string, uuid, required
    - `phone_number` string, nullable, required
    - `caller_name` string, nullable, required
    - `caller_identity` string, nullable
    - `caller_display_name` string, nullable
    - `is_negotiation` boolean, nullable
    - `negotiation_reasoning` string, nullable
    - `negotiation_outcome` string, nullable
    - `negotiator_name` string, nullable
    - `negotiator_extension` string, nullable
    - `negotiator_talk_seconds` integer, nullable
    - `duration_seconds` integer, nullable, required
    - `direction` string, required
    - `channel` string
    - `status` string, required
    - `caller_client_status` string, nullable, required
    - `is_test` boolean, required
    - `transferred` boolean
    - `transfer_attempted` boolean
    - `transfer_outcome` string, nullable
    - `staff_leg_pending` boolean
    - `staff_leg_live` boolean
    - `vxt_transferred` boolean, nullable
    - `vxt_voicemail` boolean, nullable
    - `vxt_transfer_no_answer` boolean, nullable
    - `start_time` string, date-time, nullable, required
    - `has_error` boolean, required
    - `error_description` string, nullable, required
    - `hung_up_before_connect` boolean, nullable
    - `errors` CallError[], nullable
      - `severity` string, required: Error severity: 'warning' or 'error'
      - `text` string, required: Error message text
    - `case_id` string, uuid, nullable, required
    - `case_title` string, nullable, required
    - `external_source` string, nullable
    - `quality_score` string, nullable
    - `quality_reason` string, nullable
    - `goal_accomplished` boolean, nullable
    - `goal_reason` string, nullable
    - `caller_hung_up` boolean, nullable
    - `cnam_caller_name` string, nullable
    - `cnam_caller_type` string, nullable
    - `screening_status` string, nullable
    - `screening_phone_number` string, nullable
    - `screening_caller_name` string, nullable
    - `screening_call_reason` string, nullable
    - `screening_decline_reason` string, nullable
    - `case_note_posted` boolean, nullable
    - `case_match_case_name` string, nullable
    - `has_substantive_conversation` boolean, nullable
    - `case_matching_pipeline_status` string, nullable
    - `case_match_status` string, nullable
    - `sa_case_number` string, nullable
    - `sa_case_url` string, nullable
    - `lead_exists` boolean, nullable
    - `transfer_destination_name` string, nullable
    - `assigned_team_id` string, uuid, nullable
    - `assigned_team_name` string, nullable
    - `line_number` string, nullable
    - `line_label` string, nullable
    - `outcome` string, nullable
    - `intake_client_name` string, nullable
    - `docusign_envelope_status` string, nullable
    - `intake_docusign_status` string, nullable
    - `intake_docusign_error` string, nullable
  - `total` integer, required
  - `page` integer, required
  - `page_size` integer, required
  - `total_pages` integer, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-02** `9a143094cc38`: 1 warning
  - removed the optional property `calls/items/docusign_sender_view_url` from the response with the `200` status
- **2026-10-15** `cccd8c55d2fd`: 3 info
  - added the new optional `query` request parameter `line`
  - added the optional property `calls/items/line_label` to the response with the `200` status
  - added the optional property `calls/items/line_number` to the response with the `200` status
- **2026-09-22** `abd382facaad`: 4 info
  - added the new optional `query` request parameter `negotiation_outcome`
  - added the new optional `query` request parameter `negotiator_name`
  - added the optional property `calls/items/negotiation_outcome` to the response with the `200` status
  - added the optional property `calls/items/negotiator_talk_seconds` to the response with the `200` status
- **2026-09-22** `65ad3b27b647`: 5 info
  - added the new optional `query` request parameter `negotiation`
  - added the optional property `calls/items/is_negotiation` to the response with the `200` status
  - added the optional property `calls/items/negotiation_reasoning` to the response with the `200` status
  - added the optional property `calls/items/negotiator_extension` to the response with the `200` status
  - …1 more
- **2026-09-16** `b9fb57688def`: 1 info
  - added the optional property `calls/items/transfer_attempted` to the response with the `200` status

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/dashboard/calls/get.md)

---

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