---
title: "List"
method: GET
path: "/conversations"
tags: ["conversations"]
---

# List

`GET /conversations`

Returns conversations with optional filtering.

## Query parameters

- `project` string
- `external_id` string
- `duration_min` integer
- `duration_max` integer
- `started_at_min` string
- `started_at_max` string
- `before` string
- `after` string
- `limit` integer
- `audio_container` 'wav.gz' | 'wav'

## Headers

- `Authorization` string, required

## Response `200`

Paginated list (`conversations`, `pagination`) when listing, or a single `conversation` when the `external_id` query parameter matches exactly one conversation.

- union
  - ListConversationsResponse
    - `conversations` Conversation[], required
      - `id` string, required — The conversation ID.
      - `agent` ConversationAgent, required — The agent associated with the conversation.
        - `id` string, required — The ID of the agent.
        - `name` string, required — The name of the agent.
        - `is_deleted` boolean, required — Whether the agent has been deleted.
      - `workspace` string, required — The organization/workspace name.
      - `project` ConversationProject, required — The project associated with the conversation.
        - `id` string, required — The ID of the project.
        - `name` string, required — The name of the project.
      - `external_id` string, nullable, required — External ID for conversation tracking.
      - `origin` 'web' | 'web-playground' | 'web-demo' | 'direct' | 'livekit-agents-py' | 'livekit-agents-js' | 'sdk-py' | 'sdk-js' | 'inbound' | 'telephony-inbound' | 'outbound' | 'telephony-outbound' | 'replay', required — The origin of the conversation.
      - `model` string, required — The STS model used.
      - `generate_welcome_message` boolean, required — Will be `true` if welcome message was automatically generated.
      - `is_welcome_message_interruptible` boolean, required — When `false`, the welcome message will not be interruptible by the user.
      - `welcome_message` string, nullable, required — Welcome message played at start. Will be `null` when `generate_welcome_message` is `true`.
      - `template_variables` object, required — Template variables used in the conversation.
      - `system_prompt` string, nullable — System prompt used in the conversation.
      - `input_format` string, required — Audio input format.
      - `output_format` string, required — Audio output format.
      - `background_noise_level` number, double, required — Background noise level used in the conversation.
      - `background_noise` 'office' | 'call-center' | 'coffee-shop', required — The background noise type used in the conversation.
      - `live_transcript` string, nullable, required — Live transcript of the conversation.
      - `post_call_transcript` string, nullable, required — Post-call processed transcript.
      - `duration_ms` number, double, required — Duration of the conversation in milliseconds.
      - `audio_url` string, uri, nullable, required — Presigned URL to the conversation audio file. Expires in 1 day.
      - `started_at` string, date-time, nullable, required — When the conversation started.
      - `ended_at` string, date-time, nullable, required — When the conversation ended.
      - `ended_by` 'user' | 'user_canceled' | 'user_validation_failed' | 'assistant' | 'assistant_silence_limit_reached' | 'configuration_endpoint_timed_out' | 'configuration_endpoint_error' | 'configuration_endpoint_invalid_response' | 'error', required — Who or what ended the conversation.
      - `boosted_keywords` string[], nullable, required — These words, or short phrases, are more accurately recognized by the model.
      - `pronunciation_dictionary` ConversationPronunciationDictionaryItems[], required — Array of `{ word, pronunciation }` entries. Words must be unique.
        - `word` string, required
        - `pronunciation` string, required
      - `min_words_to_interrupt` integer, required — Minimum number of words required to interrupt the assistant.
      - `default_language` 'ar' | 'az' | 'bg' | 'bn' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'es' | 'fa' | 'fi' | 'fil' | 'fr' | 'gu' | 'he' | 'hi' | 'hu' | 'id' | 'it' | 'ja' | 'ka' | 'km' | 'kn' | 'ko' | 'lt' | 'lv' | 'ml' | 'mr' | 'ms' | 'ne' | 'nl' | 'no' | 'pa' | 'pl' | 'pt' | 'ro' | 'ru' | 'si' | 'sk' | 'sq' | 'sv' | 'sw' | 'ta' | 'te' | 'th' | 'tr' | 'uk' | 'ur' | 'vi' | 'yue' | 'zh', required — ISO 639-1 language codes supported by the agent
      - `additional_languages` LanguageCode[], nullable, required — Array of additional ISO 639-1 language codes that the agent should be able to recognize and speak. Should not include `default_language`. When `multilingual_mode` is `"auto"`, a maximum of 2 additional languages is allowed.
      - `multilingual_mode` 'auto' | 'request' | 'initial', required — If `"auto"`, each user audio is automatically identified for the language to respond in. If `"request"`, user must request to change language (recommended). If `"initial"` the first turn user audio determines the language for the rest of the conversation.
      - `push_to_talk` boolean, required — Push to talk mode. User must send mute/unmute messages to turn on/off listening to audio. Defaults to false.
      - `languages` string[] — Array of ISO 639-1 language codes recognized by the model. This field is deprecated. Use `default_language` and `additional_languages` instead.
      - `generate_no_input_poke_text` boolean, nullable — Whether the no-input poke text was generated by AI.
      - `no_input_poke_sec` integer, nullable, required — Number of seconds of silence before a poke message is sent. `null` means the poke message is disabled.
      - `no_input_poke_text` string, nullable, required — The message to send after the specified silence. Relevant only if `no_input_poke_sec` is not `null`. Ignored when generate_no_input_poke_text is true.
      - `no_input_end_conversation_sec` integer, nullable, required — Seconds of silence before the conversation is ended.
      - `websocket_timeout_sec` number, double — The WebSocket idle timeout in seconds.
      - `vad_prebuffer_duration_ms` integer, nullable — Voice activity detection prebuffer duration in milliseconds. `null` when not applicable or unknown (e.g. push-to-talk, or legacy stored conversations).
      - `vad_min_speech_duration_ms` integer, nullable — Minimum speech duration for voice activity detection in milliseconds. `null` when not applicable or unknown.
      - `vad_min_silence_duration_ms` integer, nullable — Minimum silence duration for voice activity detection in milliseconds. `null` when not applicable or unknown.
      - `vad_threshold` number, double, nullable — Voice activity detection threshold. `null` when not applicable or unknown.
      - `task_results` object, required — Results from conversation evaluations and extractions.
      - `items` ConversationItem[], required — Array of conversation items (turns).
        - `id` string, required — The conversation item ID.
        - `item_idx` integer, required — Index of the item in the conversation.
        - `role` 'user' | 'assistant', required — Who spoke in this turn.
        - `live_transcript` string, nullable, required — Live transcript of this turn. `null` when the turn has been redacted.
        - `post_call_transcript` string, nullable, required — Post-call processed transcript.
        - `redacted_transcript` string, nullable — The redacted transcript of this turn. `null` when the turn is not redacted.
        - `duration_ms` number, double, required — Duration of this turn in milliseconds.
        - `started_at` string, date-time, required — When this turn started.
        - `voice_id` string — Voice ID used (assistant only).
        - `audio_speed` number, double — Audio speed used (assistant only).
        - `system_prompt` string — System prompt used for this assistant turn.
        - `tool_calls` ConversationItemToolCallsItems[] — Tool calls made by the assistant.
          - `id` string, required — The tool call ID.
          - `tool` ConversationItemToolCallsItemsTool, required
            - `id` string, required — The tool ID.
            - `name` string, required — The tool name.
          - `integration` string, nullable — The integration associated with the tool, if any.
          - `endpoint_method` string, nullable — HTTP method for webhook tool calls.
          - `endpoint_url` string, nullable — URL for webhook tool calls.
          - `endpoint_headers` object, nullable — Headers for webhook tool calls.
          - `endpoint_timeout_ms` number, double, nullable — Timeout in milliseconds for webhook tool calls.
          - `endpoint_called_at` string, date-time, nullable — When the webhook endpoint was called (null on error).
          - `query_params` object, nullable — Query parameters for webhook tool calls (null on error or when no params).
          - `response_status_code` number, double, nullable — HTTP response status code for webhook tool calls (null on error).
          - `tool_call_output_timeout_ms` number, double, nullable — Timeout in milliseconds for websocket tool calls.
          - `request_body` union, required — The request body sent to the tool. Can be any JSON-serializable value.
            - object
            - unknown[]
              - …
            - string
            - number, double
            - boolean
          - `response_body` object, nullable, required — The response body received from the tool.
          - `timed_out` boolean, nullable, required — Whether the tool call timed out.
          - `error_message` string, nullable, required — Error message if the tool call failed.
      - `call_info` ConversationCallInfo, required — Phone call metadata. `null` for non-phone call conversations.
        - `from_phone_number` string, required — Caller phone number in E.164 format.
        - `to_phone_number` string, required — Callee phone number in E.164 format.
        - `twilio_call_sid` string — Twilio Call SID. Only present for user SIP trunking calls.
      - `analysis` ConversationAnalysis, required
        - `id` string, required — The ID of the conversation analysis.
        - `latencies_ms` number[], required — Latencies between turns in milliseconds.
        - `interruptions_count` integer, required — Number of interruptions in the conversation.
      - `is_redacted` boolean — Whether PII and PHI have been redacted from the conversation.
      - `redacted_transcript` string, nullable — The redacted transcript of the conversation. `null` when the conversation is not redacted.
      - `metadata` object, nullable — Arbitrary metadata associated with the conversation.
      - `data_retention_policy` union — Controls how long transcripts and audio recordings are retained before deletion. When `zero_data_retention` is `true`, nothing is retained and `transcripts`/`audio_recordings` are omitted.
        - DataRetentionPolicy0 — Zero data retention mode. No transcripts or audio recordings are retained.
          - `zero_data_retention` boolean, required — When `true`, no transcripts or audio recordings are retained.
        - DataRetentionPolicy1 — Standard data retention with configurable deletion windows.
          - `zero_data_retention` boolean, required — Must be `false` for standard data retention.
          - `transcripts` DataRetentionPolicyOneOf1Transcripts, required
            - `delete_after_hours` integer, nullable, required — Number of hours after which transcripts are deleted. Null means transcripts are retained indefinitely.
          - `audio_recordings` DataRetentionPolicyOneOf1AudioRecordings, required
            - `delete_after_hours` integer, nullable, required — Number of hours after which audio recordings are deleted. Null means audio recordings are retained indefinitely.
      - `deletion_info` ConversationDeletionInfo — Information about when transcripts and audio recordings are or were scheduled to be deleted.
        - `transcripts_deleted_at` string, date-time, nullable, required — When the transcripts were deleted. `null` if not deleted.
        - `audio_recordings_deleted_at` string, date-time, nullable, required — When the audio recordings were deleted. `null` if not deleted.
      - `enable_assistant_backchannel` boolean — Whether the assistant produced backchannel responses during the conversation.
      - `assistant_backchannel_aggressiveness` number, double, nullable — How aggressively the assistant produced backchannel responses during the conversation.
    - `pagination` ConversationsListResponseConversationsPagination, required
      - `prev_cursor` string, nullable, required — Cursor to fetch the previous page of conversations (newer). Use this value in the `before` query parameter. `null` if there is no previous page.
      - `next_cursor` string, nullable, required — Cursor to fetch the next page of conversations (older). Use this value in the `after` query parameter. `null` if there is no next page.
  - GetConversationByExternalIdResponse
    - `conversation` Conversation, required
      - `id` string, required — The conversation ID.
      - `agent` ConversationAgent, required — The agent associated with the conversation.
        - `id` string, required — The ID of the agent.
        - `name` string, required — The name of the agent.
        - `is_deleted` boolean, required — Whether the agent has been deleted.
      - `workspace` string, required — The organization/workspace name.
      - `project` ConversationProject, required — The project associated with the conversation.
        - `id` string, required — The ID of the project.
        - `name` string, required — The name of the project.
      - `external_id` string, nullable, required — External ID for conversation tracking.
      - `origin` 'web' | 'web-playground' | 'web-demo' | 'direct' | 'livekit-agents-py' | 'livekit-agents-js' | 'sdk-py' | 'sdk-js' | 'inbound' | 'telephony-inbound' | 'outbound' | 'telephony-outbound' | 'replay', required — The origin of the conversation.
      - `model` string, required — The STS model used.
      - `generate_welcome_message` boolean, required — Will be `true` if welcome message was automatically generated.
      - `is_welcome_message_interruptible` boolean, required — When `false`, the welcome message will not be interruptible by the user.
      - `welcome_message` string, nullable, required — Welcome message played at start. Will be `null` when `generate_welcome_message` is `true`.
      - `template_variables` object, required — Template variables used in the conversation.
      - `system_prompt` string, nullable — System prompt used in the conversation.
      - `input_format` string, required — Audio input format.
      - `output_format` string, required — Audio output format.
      - `background_noise_level` number, double, required — Background noise level used in the conversation.
      - `background_noise` 'office' | 'call-center' | 'coffee-shop', required — The background noise type used in the conversation.
      - `live_transcript` string, nullable, required — Live transcript of the conversation.
      - `post_call_transcript` string, nullable, required — Post-call processed transcript.
      - `duration_ms` number, double, required — Duration of the conversation in milliseconds.
      - `audio_url` string, uri, nullable, required — Presigned URL to the conversation audio file. Expires in 1 day.
      - `started_at` string, date-time, nullable, required — When the conversation started.
      - `ended_at` string, date-time, nullable, required — When the conversation ended.
      - `ended_by` 'user' | 'user_canceled' | 'user_validation_failed' | 'assistant' | 'assistant_silence_limit_reached' | 'configuration_endpoint_timed_out' | 'configuration_endpoint_error' | 'configuration_endpoint_invalid_response' | 'error', required — Who or what ended the conversation.
      - `boosted_keywords` string[], nullable, required — These words, or short phrases, are more accurately recognized by the model.
      - `pronunciation_dictionary` ConversationPronunciationDictionaryItems[], required — Array of `{ word, pronunciation }` entries. Words must be unique.
        - `word` string, required
        - `pronunciation` string, required
      - `min_words_to_interrupt` integer, required — Minimum number of words required to interrupt the assistant.
      - `default_language` 'ar' | 'az' | 'bg' | 'bn' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'es' | 'fa' | 'fi' | 'fil' | 'fr' | 'gu' | 'he' | 'hi' | 'hu' | 'id' | 'it' | 'ja' | 'ka' | 'km' | 'kn' | 'ko' | 'lt' | 'lv' | 'ml' | 'mr' | 'ms' | 'ne' | 'nl' | 'no' | 'pa' | 'pl' | 'pt' | 'ro' | 'ru' | 'si' | 'sk' | 'sq' | 'sv' | 'sw' | 'ta' | 'te' | 'th' | 'tr' | 'uk' | 'ur' | 'vi' | 'yue' | 'zh', required — ISO 639-1 language codes supported by the agent
      - `additional_languages` LanguageCode[], nullable, required — Array of additional ISO 639-1 language codes that the agent should be able to recognize and speak. Should not include `default_language`. When `multilingual_mode` is `"auto"`, a maximum of 2 additional languages is allowed.
      - `multilingual_mode` 'auto' | 'request' | 'initial', required — If `"auto"`, each user audio is automatically identified for the language to respond in. If `"request"`, user must request to change language (recommended). If `"initial"` the first turn user audio determines the language for the rest of the conversation.
      - `push_to_talk` boolean, required — Push to talk mode. User must send mute/unmute messages to turn on/off listening to audio. Defaults to false.
      - `languages` string[] — Array of ISO 639-1 language codes recognized by the model. This field is deprecated. Use `default_language` and `additional_languages` instead.
      - `generate_no_input_poke_text` boolean, nullable — Whether the no-input poke text was generated by AI.
      - `no_input_poke_sec` integer, nullable, required — Number of seconds of silence before a poke message is sent. `null` means the poke message is disabled.
      - `no_input_poke_text` string, nullable, required — The message to send after the specified silence. Relevant only if `no_input_poke_sec` is not `null`. Ignored when generate_no_input_poke_text is true.
      - `no_input_end_conversation_sec` integer, nullable, required — Seconds of silence before the conversation is ended.
      - `websocket_timeout_sec` number, double — The WebSocket idle timeout in seconds.
      - `vad_prebuffer_duration_ms` integer, nullable — Voice activity detection prebuffer duration in milliseconds. `null` when not applicable or unknown (e.g. push-to-talk, or legacy stored conversations).
      - `vad_min_speech_duration_ms` integer, nullable — Minimum speech duration for voice activity detection in milliseconds. `null` when not applicable or unknown.
      - `vad_min_silence_duration_ms` integer, nullable — Minimum silence duration for voice activity detection in milliseconds. `null` when not applicable or unknown.
      - `vad_threshold` number, double, nullable — Voice activity detection threshold. `null` when not applicable or unknown.
      - `task_results` object, required — Results from conversation evaluations and extractions.
      - `items` ConversationItem[], required — Array of conversation items (turns).
        - `id` string, required — The conversation item ID.
        - `item_idx` integer, required — Index of the item in the conversation.
        - `role` 'user' | 'assistant', required — Who spoke in this turn.
        - `live_transcript` string, nullable, required — Live transcript of this turn. `null` when the turn has been redacted.
        - `post_call_transcript` string, nullable, required — Post-call processed transcript.
        - `redacted_transcript` string, nullable — The redacted transcript of this turn. `null` when the turn is not redacted.
        - `duration_ms` number, double, required — Duration of this turn in milliseconds.
        - `started_at` string, date-time, required — When this turn started.
        - `voice_id` string — Voice ID used (assistant only).
        - `audio_speed` number, double — Audio speed used (assistant only).
        - `system_prompt` string — System prompt used for this assistant turn.
        - `tool_calls` ConversationItemToolCallsItems[] — Tool calls made by the assistant.
          - `id` string, required — The tool call ID.
          - `tool` ConversationItemToolCallsItemsTool, required
            - `id` string, required — The tool ID.
            - `name` string, required — The tool name.
          - `integration` string, nullable — The integration associated with the tool, if any.
          - `endpoint_method` string, nullable — HTTP method for webhook tool calls.
          - `endpoint_url` string, nullable — URL for webhook tool calls.
          - `endpoint_headers` object, nullable — Headers for webhook tool calls.
          - `endpoint_timeout_ms` number, double, nullable — Timeout in milliseconds for webhook tool calls.
          - `endpoint_called_at` string, date-time, nullable — When the webhook endpoint was called (null on error).
          - `query_params` object, nullable — Query parameters for webhook tool calls (null on error or when no params).
          - `response_status_code` number, double, nullable — HTTP response status code for webhook tool calls (null on error).
          - `tool_call_output_timeout_ms` number, double, nullable — Timeout in milliseconds for websocket tool calls.
          - `request_body` union, required — The request body sent to the tool. Can be any JSON-serializable value.
            - object
            - unknown[]
              - …
            - string
            - number, double
            - boolean
          - `response_body` object, nullable, required — The response body received from the tool.
          - `timed_out` boolean, nullable, required — Whether the tool call timed out.
          - `error_message` string, nullable, required — Error message if the tool call failed.
      - `call_info` ConversationCallInfo, required — Phone call metadata. `null` for non-phone call conversations.
        - `from_phone_number` string, required — Caller phone number in E.164 format.
        - `to_phone_number` string, required — Callee phone number in E.164 format.
        - `twilio_call_sid` string — Twilio Call SID. Only present for user SIP trunking calls.
      - `analysis` ConversationAnalysis, required
        - `id` string, required — The ID of the conversation analysis.
        - `latencies_ms` number[], required — Latencies between turns in milliseconds.
        - `interruptions_count` integer, required — Number of interruptions in the conversation.
      - `is_redacted` boolean — Whether PII and PHI have been redacted from the conversation.
      - `redacted_transcript` string, nullable — The redacted transcript of the conversation. `null` when the conversation is not redacted.
      - `metadata` object, nullable — Arbitrary metadata associated with the conversation.
      - `data_retention_policy` union — Controls how long transcripts and audio recordings are retained before deletion. When `zero_data_retention` is `true`, nothing is retained and `transcripts`/`audio_recordings` are omitted.
        - DataRetentionPolicy0 — Zero data retention mode. No transcripts or audio recordings are retained.
          - `zero_data_retention` boolean, required — When `true`, no transcripts or audio recordings are retained.
        - DataRetentionPolicy1 — Standard data retention with configurable deletion windows.
          - `zero_data_retention` boolean, required — Must be `false` for standard data retention.
          - `transcripts` DataRetentionPolicyOneOf1Transcripts, required
            - `delete_after_hours` integer, nullable, required — Number of hours after which transcripts are deleted. Null means transcripts are retained indefinitely.
          - `audio_recordings` DataRetentionPolicyOneOf1AudioRecordings, required
            - `delete_after_hours` integer, nullable, required — Number of hours after which audio recordings are deleted. Null means audio recordings are retained indefinitely.
      - `deletion_info` ConversationDeletionInfo — Information about when transcripts and audio recordings are or were scheduled to be deleted.
        - `transcripts_deleted_at` string, date-time, nullable, required — When the transcripts were deleted. `null` if not deleted.
        - `audio_recordings_deleted_at` string, date-time, nullable, required — When the audio recordings were deleted. `null` if not deleted.
      - `enable_assistant_backchannel` boolean — Whether the assistant produced backchannel responses during the conversation.
      - `assistant_backchannel_aggressiveness` number, double, nullable — How aggressively the assistant produced backchannel responses during the conversation.

## Other responses

- `400` — Invalid parameters
- `401` — Unauthorized (authentication missing or invalid)
- `403` — Forbidden
- `404` — Project or conversation not found
- `500` — Internal server error

---

[API](https://skmtc.net/phonic/apis/api-reference.md) · [All operations](https://skmtc.net/phonic/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/phonic/api-reference/revisions/7f8c81a5a990/schema)
