# List calls with transcripts

Retrieve calls by a list of conversation ids and include transcripts when available.
A maximum of 20 `conversation_ids` can be provided. If none are provided or more than 20 are provided, a 400 error is returned.

Endpoint: POST /calls/search
Version: Preview
Security: bearerAuth

## Header parameters:

  - `Intercom-Version` (string)

## Request fields (application/json):

  - `conversation_ids` (array, required)
    A list of conversation ids to fetch calls for. Maximum 20.

## Response 200 fields (application/json):

  - `type` (string)
    Example: list

  - `data` (array)

  - `data.type` (string)
    String representing the object's type. Always has the value `call`.
    Example: call

  - `data.id` (string)
    The id of the call.
    Example: 123

  - `data.conversation_id` (string)
    The id of the conversation associated with the call, if any.
    Example: 456

  - `data.admin_id` (string)
    The id of the admin associated with the call, if any.
    Example: 789

  - `data.contact_id` (string)
    The id of the contact associated with the call, if any.
    Example: 6762f0dd1bb69f9f2193bb83

  - `data.state` (string)
    The current state of the call.
    Example: completed

  - `data.initiated_at` (any)

  - `data.recording_url` (string)
    API URL to download or redirect to the call recording if available.
    Example: https://api.intercom.io/calls/123/recording

  - `data.transcription_url` (string)
    API URL to the call transcript if available.
    Example: https://api.intercom.io/calls/123/transcript

  - `data.call_type` (string)
    The type of call.
    Example: phone

  - `data.direction` (string)
    The direction of the call.
    Example: outbound

  - `data.ended_reason` (string)
    The reason for the call end, if applicable.
    Example: completed

  - `data.phone` (string)
    The phone number involved in the call, in E.164 format.
    Example: +15551234567

  - `data.fin_recording_url` (string)
    API URL to the AI Agent (Fin) call recording if available.

  - `data.fin_transcription_url` (string)
    API URL to the AI Agent (Fin) call transcript if available.

  - `data.duration` (integer)
    Total call duration in seconds from the caller's perspective. For inbound calls, measured from initiated to ended. For outbound calls, measured from answered to ended.
    Example: 900

  - `data.talk_time` (integer)
    Total time in seconds the agent and customer were connected.
    Example: 300

  - `data.queue_time` (integer)
    Total time in seconds the caller waited in queue before connecting, when assigned to a team.
    Example: 45

  - `data.hold_time` (integer)
    Total time in seconds the caller was placed on hold during the call.
    Example: 60

  - `data.transcript` (array)
    The call transcript if available, otherwise an empty array.

  - `data.transcript.start_time` (any)
    The start time of the turn, as a seconds offset from the start of the call. A string on calls transcribed by Amazon Transcribe, a number on Fin Voice calls.
    Example: 0.0

  - `data.transcript.end_time` (any)
    The end time of the turn, as a seconds offset from the start of the call. A string on calls transcribed by Amazon Transcribe, a number on Fin Voice calls.
    Example: 3.00

  - `data.transcript.speaker_label` (string)
    The diarization label for the speaker.
    Example: Teammate 1

  - `data.transcript.speaker` (string)
    The diarization label for the speaker. Same value as `speaker_label`.
    Example: Teammate 1

  - `data.transcript.content` (string)
    The transcribed text spoken during this turn.
    Example: Hello, thanks for calling. How can I help today?

  - `data.transcript.speaker_type` (string)
    The type of the speaker - either `admin` for a teammate or `user` for a contact. Absent on Fin Voice call transcripts and on calls transcribed before speaker attribution shipped, where only `speaker_label` identifies the speaker.
    Example: admin

  - `data.transcript.speaker_id` (string)
    The id of the teammate or contact who is the speaker. `-1` when the teammate who spoke has since been deleted, in which case `speaker_name` is `Deleted teammate`.
    Example: 789

  - `data.transcript.speaker_name` (string)
    The resolved display name of the speaker. A contact who has been merged into another resolves to the name on the surviving record. Omitted when the speaker cannot be resolved or has no name, for example a contact whose record was scrambled by a GDPR deletion request. Clients should fall back to `speaker_label` when this is absent.
    Example: Jane Doe

  - `data.transcript.article_sources` (array)
    Sources Fin cited during this turn. Only present on Fin Voice call transcripts.
    Example: [{"title":"Password Reset Guide","entity_type":120,"entity_id":"8185560"}]

  - `data.transcript.article_sources.title` (string)
    The title of the cited source.
    Example: Password Reset Guide

  - `data.transcript.article_sources.entity_type` (integer)
    The type of the cited entity.
    Example: 120

  - `data.transcript.article_sources.entity_id` (string)
    The id of the cited entity.
    Example: 8185560

  - `data.transcript.triggered_guidance` (array)
    Guidance rules that Fin matched during this turn. Only present on Fin Voice call transcripts.
    Example: [{"match_type":"clarification","rule_id":"3","rule_text":"If the customer asks about pricing, ask which plan they're interested in before answering"}]

  - `data.transcript.triggered_guidance.match_type` (string)
    How the rule was matched.
    Example: clarification

  - `data.transcript.triggered_guidance.rule_id` (string)
    The id of the matched guidance rule.
    Example: 3

  - `data.transcript.triggered_guidance.rule_text` (string)
    The text of the matched guidance rule.
    Example: If the customer asks about pricing, ask which plan they're interested in before answering

  - `data.transcript_status` (string)
    The status of the transcript if available.

## Response 400 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

## Response 401 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

