---
title: "Retrieve a single Call"
method: GET
path: "/v2/calls/{id}"
tags: ["Calls"]
---

# Retrieve a single Call

`GET /v2/calls/{id}`

## Request

- Base URL: `https://api.workiz.com/crm/api`
- URL: `https://api.workiz.com/crm/api/v2/calls/{id}`
- Auth: none declared. Required headers: `Authorization`
- TypeScript: <https://skmtc.dev/workiz/apis/developer-api/docs/v2/calls/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

> **Beta:** Breaking changes may occur without notice.

Retrieves a single Call by its ID, including its AI insights, transcript, and caller locations.

## Path parameters

- `id` string, required

## Headers

- `Authorization` string, required

## Response `200`

The requested Call.

- ResponseOneCallV2Dto
  - `id` string: The ID of the call (prefix `CAL-`).
  - `direction` 'inbound' | 'outgoing': The direction of the call.
  - `from` string: The phone number the call was made from.
  - `to` string: The phone number the call was made to. For call masking calls, this is the number the call was connected to, not the masking number.
  - `callMaskingNumber` string, nullable: The call masking number the call was placed through. `null` when the call did not use call masking.
  - `duration` number: The duration of the call in seconds.
  - `status` 'answered' | 'missed' | 'voicemail' | 'active' | 'geniusAnswering': The status of the call: `active` while the call is in progress or on hold, `geniusAnswering` when Genius Answering handled it, `voicemail` when the caller left a voicemail, `answered` when a person answered and `missed` otherwise.
  - `hasRecording` boolean: Whether a recording is available for the call.
  - `flowName` string, nullable: The name of the call flow that handled the call. Calls placed through call masking show `Call Masking`.
  - `adGroupId` string, nullable: The ID of the ad group of the called number (prefix `AG-`).
  - `clientId` string, nullable: The ID of the client on the call (prefix `CL-`). `null` when the caller is unknown.
  - `clientName` string, nullable: The name of the client on the call, as recorded on the call.
  - `jobId` string, nullable: The ID of the job linked to the call (prefix `JOB-`).
  - `leadId` string, nullable: The ID of the lead linked to the call (prefix `LD-`).
  - `answeredByUserId` string, nullable: The ID of the user who answered the call (prefix `USR-`).
  - `answeredByUserName` string, nullable: The name of the user who answered the call, as recorded on the call.
  - `calledByUserId` string, nullable: The ID of the user who placed the call (prefix `USR-`).
  - `calledByUserName` string, nullable: The name of the user who placed the call, as recorded on the call.
  - `tags` string[]: A list of tag IDs on the call (prefix `TAG-`).
  - `insights` ResponseCallInsightsV2Dto
    - `sentiment` 'great' | 'positive' | 'neutral' | 'negative', nullable: The overall sentiment of the call.
    - `intent` 'booking' | 'callbackRequest' | 'existingBooking' | 'spam' | 'other', nullable: The detected intent of the caller.
    - `dispatcherScore` number, nullable: The dispatcher score of the call, from 1 to 100.
    - `objection` 'price' | 'serviceNotOffered' | 'outOfServiceArea' | 'noAvailability' | 'Dispatcher experience issue' | 'notReadyToBook' | 'Callback needed' | 'disconnected' | 'other', nullable: The objection raised by the caller.
    - `pricingDiscussed` boolean: Whether pricing was discussed on the call.
    - `booked` boolean: Whether the call resulted in a booking.
  - `updatedAt` string, nullable: The date and time the call was last updated, in the account timezone.
  - `createdAt` string: The date and time the call started, in the account timezone.

## Other responses

- `401`: Missing or invalid authentication token.
- `403`: The API key does not have permission to access this resource.
- `404`: Call not found, or the provided ID is not a valid call ID.
- `429`: Rate limit exceeded.

## Changes

- **2026-10-13** `d9eb069288ef`: 2 warning
  - removed the optional property `transcript` from the response with the `200` status
  - removed the optional property `voicemailTranscription` from the response with the `200` status
- **2026-10-06** `fd96151569a1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/workiz/apis/developer-api/changes/v2/calls/:id/get.md)

---

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