---
title: "Get a specific call by ID"
method: GET
path: "/calls/{callId}"
tags: ["calls"]
---

# Get a specific call by ID

`GET /calls/{callId}`

Retrieve detailed data about a specific terminated call by its ID. The response `list` array contains all log entries (CDR records) generated by this call — in case of call forwarding, transfer, or IVR routing, multiple entries will appear with distinct `from_number`/`to_number` or `scenario_name`/`scenario_id`.

**Permission:** `Calls Read` required.

**Monitoring:** This route can retrieve **any team call** regardless of the Monitoring flag. The Monitoring setting has no effect on call retrieval — the underlying stats service does not filter by user.

## Path parameters

- `callId` string, required

## Response `200`

Successful operation

- CallsListId
  - `list_count` integer — The size of the array <em>list</em>, corresponds to the number of logs retrieved
  - `list` Call[] — Array containing the different logs generated by the call (for example in case of transfer)
    - `cdr_id` integer
    - `call_id` string
    - `channel_id` string
    - `type` string
    - `direction` 'in' | 'out'
    - `is_answered` boolean
    - `last_state` 'CANCELLED' | 'ANSWERED' | 'MISSED' | 'FAILED' | 'QUEUE_TIMEOUT' | 'BLIND_TRANSFERED' | 'VOICEMAIL' | 'PERMANENT_TRANSFERED' | 'NOANSWER_TRANSFERED' | 'FAX_RECEIVED' | 'FAX_FAILED' | 'FAX_OUT_SENT' | 'INCORRECT_PINCODE' | 'FAX_OUT_NOT_SENT' | 'ANNOUNCE' — The enum regroups some samples
    - `start_time` string
    - `answered_time` string — Can be null if call_type is `MISSED` in the query parameters
    - `end_time` string
    - `incall_duration` integer — Can be null if call_type is `MISSED` in the query parameters
    - `total_duration` integer
    - `contact_number` string
    - `queue_duration` number
    - `ringing_duration` number
    - `hold_duration` number
    - `aftercall_duration` number
    - `ivr_duration` number
    - `hangup_by` string
    - `from_number` string
    - `to_number` string
    - `note` string
    - `star` string
    - `tags` Tag[]
      - `tag_id` integer — The identifier of the tag
      - `name` string — The name of the tag
      - `color` 'ff6b6b' | 'F06292' | 'BA68C8' | '9575CD' | '7986CB' | '64B5F6' | '4FC3F7' | '4DD0E1' | '4DB6AC' | '81C784' | 'AED581' | 'DCE775' | 'FFD54F' | 'FFB74D' | 'FF8A65' | 'A1887F' | 'E0E0E0' | '90A4AE'
      - `description` string — The description of the tag
      - `creation_date` string, date-time
    - `voicemail` string
    - `record` string
    - `fax` string
    - `user` CallUserLight
      - `user_id` integer — The user identifier
      - `team_id` integer — The team identifier of the user
      - `initial` string — The initials of the user
      - `color` string
      - `firstname` string — The firstname of the user
      - `lastname` string — The lastname of the user
      - `company` string — The company of the user
      - `email` string — The email of the user
      - `picture` string — The picture of the user
      - `concat_name` string
    - `conference` Conference
      - `conference_id` integer — The conference identifier
      - `name` string — The name of the conference
      - `numbers` Number[] — The numbers of the conference
        - `number` integer — Phone number in E.164 format without the `+` prefix (e.g., `33612345678`).
        - `label` string — The label of the number
        - `type` string — The type of the number
        - `user_id` integer — The user identifier
        - `ivr_id` integer — The unique identifier of the IVR. Use `GET /ivrs` to discover available IVR IDs.
        - `conference_id` integer — The conference identifier
        - `is_sms` boolean
        - `is_sms_write` boolean
        - `is_callable` boolean
        - `format` FormatNumber
          - `raw` integer
          - `country_code` string
          - `country` string
          - `e164` string
          - `international` string
          - `international_alt` string
          - `national` string
          - `national_alt` string
          - `rfc3966` string
          - `is_short_code` boolean
    - `ivr` IvrLight
      - `ivr_id` integer — The identifier if the ivr
      - `name` string — The name of the ivr
      - `color` 'ff6b6b' | 'F06292' | 'BA68C8' | '9575CD' | '7986CB' | '64B5F6' | '4FC3F7' | '4DD0E1' | '4DB6AC' | '81C784' | 'AED581' | 'DCE775' | 'FFD54F' | 'FFB74D' | 'FF8A65' | 'A1887F' | 'E0E0E0' | '90A4AE'
    - `contact` Contact
      - `contact_id` integer
      - `is_shared` boolean
      - `im_owner` string
      - `social_service` string, nullable
      - `social_service_id` string
      - `social_profile_url` string, nullable
      - `social_data` string, nullable
      - `firstname` string
      - `lastname` string
      - `company` string
      - `concat_name` string
      - `color` string
      - `initial` string
      - `profile_picture` string, nullable
      - `creation_date` string, date-time
      - `numbers` integer[], nullable
    - `amd` boolean — Show OR exclude calls answered by a 'machine'
    - `is_archived` integer — 0 is for false, 1 is for true. There are other possible values but the concerned calls should not be accessible via this api
    - `scenario_name` string — name of the IVR scenario reached during an inbound call
    - `scenario_id` string — id of the IVR scenario reached during an inbound call
    - `digits_entered` string[]
    - `missed` string
    - `notes` object
    - `locations` string
    - `groups` integer[]

## Other responses

- `204` — No call data found
- `400` — Invalid call ID format
- `401` — Unauthorized — invalid API key or missing `Calls Read` permission
- `404` — Call not found
- `500` — Internal server error

---

[API](https://skmtc.net/ringover/apis/ringover-public-api.md) · [All operations](https://skmtc.net/ringover/apis/ringover-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ringover/ringover-public-api/revisions/9da73dd2f99e/schema)
