# Call Voice

## List carrier (BYOC) voice calls for a phone number

**get** `/v3/phone-numbers/{phoneNumber}/call-voice`

List the carrier voice calls received on one of your phone numbers,
newest first, with cursor pagination. Each record is the durable form of
the `call_voice.*` webhooks for that call; the `id` is the same id those
webhooks carry. Results are scoped to the authenticated partner — a number
that isn't yours (or simply has no calls) returns `200` with an empty
`call_voice` array, not an error.

### Path Parameters

- `phoneNumber: string`

### Query Parameters

- `cursor: optional string`

  Pagination cursor from a previous next_cursor response

- `limit: optional number`

  Maximum number of calls to return

### Returns

- `call_voice: array of CallVoiceRecord`

  Calls for the phone number, newest first.

  - `id: string`

    Stable call id, identical to the id in the call_voice.* webhooks.

  - `direction: "inbound"`

    - `"inbound"`

  - `from: string`

    External caller, E.164.

  - `status: "completed" or "busy" or "no_answer" or 2 more`

    Terminal call outcome. Null while the call is still in progress; set once it ends.

    - `"completed"`

    - `"busy"`

    - `"no_answer"`

    - `"failed"`

    - `"canceled"`

  - `to: string`

    Your line that was called, E.164.

  - `ended_at: optional string`

    When the call ended. Null while still in progress.

  - `started_at: optional string`

    When the call was answered. Null if it never connected.

- `next_cursor: optional string`

  Cursor for the next page of results. Null when there are no more.
  Pass this value as the `cursor` parameter in the next request.

### Example

```http
curl https://api.linqapp.com/api/partner/v3/phone-numbers/$PHONE_NUMBER/call-voice \
    -H "Authorization: Bearer $LINQ_API_V3_API_KEY"
```

#### Response

```json
{
  "call_voice": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "direction": "inbound",
      "from": "+12052532136",
      "status": "completed",
      "to": "+12052535597",
      "ended_at": "2026-03-05T12:05:00Z",
      "started_at": "2026-03-05T12:00:05Z"
    }
  ],
  "next_cursor": "next_cursor"
}
```

## Get a carrier (BYOC) voice call by ID

**get** `/v3/call-voice/{callVoiceId}`

Retrieve a single carrier voice call by its `id` — the same id delivered
in the `call_voice.*` webhooks and returned by the list endpoint. The call
must belong to the authenticated partner.

### Path Parameters

- `callVoiceId: string`

### Returns

- `CallVoiceRecord object { id, direction, from, 4 more }`

  A carrier (BYOC) inbound voice call. Mirrors the call_voice.* webhook payload.

  - `id: string`

    Stable call id, identical to the id in the call_voice.* webhooks.

  - `direction: "inbound"`

    - `"inbound"`

  - `from: string`

    External caller, E.164.

  - `status: "completed" or "busy" or "no_answer" or 2 more`

    Terminal call outcome. Null while the call is still in progress; set once it ends.

    - `"completed"`

    - `"busy"`

    - `"no_answer"`

    - `"failed"`

    - `"canceled"`

  - `to: string`

    Your line that was called, E.164.

  - `ended_at: optional string`

    When the call ended. Null while still in progress.

  - `started_at: optional string`

    When the call was answered. Null if it never connected.

### Example

```http
curl https://api.linqapp.com/api/partner/v3/call-voice/$CALL_VOICE_ID \
    -H "Authorization: Bearer $LINQ_API_V3_API_KEY"
```

#### Response

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "direction": "inbound",
  "from": "+12052532136",
  "status": "completed",
  "to": "+12052535597",
  "ended_at": "2026-03-05T12:05:00Z",
  "started_at": "2026-03-05T12:00:05Z"
}
```

## Domain Types

### Call Voice Record

- `CallVoiceRecord object { id, direction, from, 4 more }`

  A carrier (BYOC) inbound voice call. Mirrors the call_voice.* webhook payload.

  - `id: string`

    Stable call id, identical to the id in the call_voice.* webhooks.

  - `direction: "inbound"`

    - `"inbound"`

  - `from: string`

    External caller, E.164.

  - `status: "completed" or "busy" or "no_answer" or 2 more`

    Terminal call outcome. Null while the call is still in progress; set once it ends.

    - `"completed"`

    - `"busy"`

    - `"no_answer"`

    - `"failed"`

    - `"canceled"`

  - `to: string`

    Your line that was called, E.164.

  - `ended_at: optional string`

    When the call ended. Null while still in progress.

  - `started_at: optional string`

    When the call was answered. Null if it never connected.

### Call Voice List Response

- `CallVoiceListResponse object { call_voice, next_cursor }`

  - `call_voice: array of CallVoiceRecord`

    Calls for the phone number, newest first.

    - `id: string`

      Stable call id, identical to the id in the call_voice.* webhooks.

    - `direction: "inbound"`

      - `"inbound"`

    - `from: string`

      External caller, E.164.

    - `status: "completed" or "busy" or "no_answer" or 2 more`

      Terminal call outcome. Null while the call is still in progress; set once it ends.

      - `"completed"`

      - `"busy"`

      - `"no_answer"`

      - `"failed"`

      - `"canceled"`

    - `to: string`

      Your line that was called, E.164.

    - `ended_at: optional string`

      When the call ended. Null while still in progress.

    - `started_at: optional string`

      When the call was answered. Null if it never connected.

  - `next_cursor: optional string`

    Cursor for the next page of results. Null when there are no more.
    Pass this value as the `cursor` parameter in the next request.
