---
title: "List recent conversations"
method: GET
path: "/v1/projects/{project_id}/conversations:recent"
tags: ["Conversation"]
---

# List recent conversations

`GET /v1/projects/{project_id}/conversations:recent`

This operation lists conversations and their most recent message, ordered by when the most
recent message was sent for that conversation.

## Path parameters

- `project_id` string, required

## Query parameters

- `app_id` string, required
- `only_active` boolean
- `page_size` integer
- `page_token` string
- `order` 'ASC' | 'DESC'

## Response `200`

A successful response.

- ListRecentConversationsResponse
  - `conversations` ConversationRecentMessage[] — List of recent conversations
    - `conversation` Conversation — A collection of messages exchanged between a contact and an app. Conversations are normally created on the fly by Conversation API once a message is sent and there is no active conversation already. There can be only one active conversation at any given time between a particular contact and an app.
      - `active` boolean — Flag for whether this conversation is active.
      - `active_channel` 'SMS' | 'RCS' | 'WHATSAPP' | 'MMS' | 'KAKAOTALK' | 'KAKAOTALKCHAT' | 'VIBERBM' | 'LINE' | 'INSTAGRAM' | 'MESSENGER' | 'WECHAT' | 'TELEGRAM' | 'APPLEBC' — The identifier of the channel you want to include. Must be one of the enum values.
      - `app_id` string — The ID of the participating app.
      - `contact_id` string — The ID of the participating contact.
      - `metadata` string — Arbitrary data set by the Conversation API clients. Up to 1024 characters long. NOTE: This field has been deprecated due to changes in the system architecture or functionality. It is no longer actively maintained and may be removed in future versions. Please avoid relying on this field in new code.
      - `metadata_json` object — Arbitrary data set by the Conversation API clients and/or provided in the `conversation_metadata` field of a SendMessageRequest. A valid JSON object.
      - `correlation_id` string — Arbitrary correlation ID related to the MT message set by the Conversation API user.
      - `id` string — The ID of the conversation.
      - `last_received` string, date-time — The timestamp of the latest message in the conversation. The timestamp will be Thursday January 01, 1970 00:00:00 UTC if the conversation contains no messages.
    - `last_message` union
      - object — A message on a particular channel.
        - `app_message` union
          - object — Field containing a Card Message
            - `card_message` CardMessage — Message containing text, media and choices.
              - …
            - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
            - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
            - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
            - `agent` Agent — Represents an agent that is involved in a conversation.
              - …
          - object — Message containing a list of cards often rendered horizontally on supported channels.
            - `carousel_message` object
              - …
            - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
            - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
            - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
            - `agent` Agent — Represents an agent that is involved in a conversation.
              - …
          - object — Message containing choices/actions.
            - `choice_message` object — Additional properties for the message.
              - …
            - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
            - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
            - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
            - `agent` Agent — Represents an agent that is involved in a conversation.
              - …
          - object — Message containing geographic location.
            - `location_message` object
              - …
            - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
            - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
            - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
            - `agent` Agent — Represents an agent that is involved in a conversation.
              - …
          - object — A message containing a media component, such as an image, document, or video.
            - `media_message` MediaProperties
              - …
            - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
            - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
            - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
            - `agent` Agent — Represents an agent that is involved in a conversation.
              - …
          - object — Message referring to predefined template
            - `template_message` object
              - …
            - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
            - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
            - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
            - `agent` Agent — Represents an agent that is involved in a conversation.
              - …
          - object — A message containing only text.
            - `text_message` object
              - …
            - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
            - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
            - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
            - `agent` Agent — Represents an agent that is involved in a conversation.
              - …
          - object — A message containing a list of options to choose from. All items must be of the same type.
            - `list_message` object
              - …
            - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
            - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
            - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
            - `agent` Agent — Represents an agent that is involved in a conversation.
              - …
          - object — Message containing contact information.
            - `contact_info_message` object
              - …
            - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
            - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
            - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
            - `agent` Agent — Represents an agent that is involved in a conversation.
              - …
        - `accept_time` string, date-time — The time Conversation API processed the message.
        - `channel_identity` ChannelIdentity — A unique identity of message recipient on a particular channel. For example, the channel identity on SMS, WHATSAPP or VIBERBM is a MSISDN phone number.
          - `app_id` string — Required if using a channel that uses app-scoped channel identities. Currently, FB Messenger, Instagram, LINE, and WeChat use app-scoped channel identities, which means contacts will have different channel identities on different Conversation API apps. These can be thought of as virtual identities that are app-specific and, therefore, the app_id must be included in the API call.
          - `channel` 'SMS' | 'RCS' | 'WHATSAPP' | 'MMS' | 'KAKAOTALK' | 'KAKAOTALKCHAT' | 'VIBERBM' | 'LINE' | 'INSTAGRAM' | 'MESSENGER' | 'WECHAT' | 'TELEGRAM' | 'APPLEBC', required — The identifier of the channel you want to include. Must be one of the enum values.
          - `identity` string, required — The channel identity. This will differ from channel to channel. For example, a phone number for SMS, WhatsApp, and Viber Business.
        - `contact_id` string — The ID of the contact.
        - `conversation_id` string — The ID of the conversation.
        - `direction` 'TO_APP' | 'TO_CONTACT' — The direction of the message flow, indicating whether the message was sent to or from the Conversation API app.
        - `id` string — The ID of the message.
        - `metadata` string — Optional. Metadata associated with the contact. Up to 1024 characters long.
        - `injected` boolean — Flag for whether this message was injected.
        - `sender_id` string — For Contact Messages (MO messages), the sender ID represents the recipient to which the message was sent. This may be a phone number (in the case of SMS and MMS) or a unique ID (in the case of WhatsApp). This is field is not supported on all channels, nor is it supported for MT messages.
        - `processing_mode` 'CONVERSATION' | 'DISPATCH' — Whether or not Conversation API should store contacts and conversations for the app. For more information, see [Processing Modes](https://developers.sinch.com/docs/conversation/processing-modes/).
      - object — A message on a particular channel.
        - `contact_message` union
          - object — If the contact message was a response to a previous App message then this field contains information about that.
            - `channel_specific_message` object
              - …
            - `reply_to` object
              - …
          - object — If the contact message was a response to a previous App message then this field contains information about that.
            - `choice_response_message` object
              - …
            - `reply_to` object
              - …
          - object — If the contact message was a response to a previous App message then this field contains information about that.
            - `fallback_message` object
              - …
            - `reply_to` object
              - …
          - object — If the contact message was a response to a previous App message then this field contains information about that.
            - `location_message` object
              - …
            - `reply_to` object
              - …
          - object — If the contact message was a response to a previous App message then this field contains information about that.
            - `media_card_message` object
              - …
            - `reply_to` object
              - …
          - object — If the contact message was a response to a previous App message then this field contains information about that.
            - `media_message` MediaProperties
              - …
            - `reply_to` object
              - …
          - object — If the contact message was a response to a previous App message then this field contains information about that.
            - `product_response_message` object
              - …
            - `reply_to` object
              - …
          - object — If the contact message was a response to a previous App message then this field contains information about that.
            - `text_message` object
              - …
            - `reply_to` object
              - …
        - `accept_time` string, date-time — The time Conversation API processed the message.
        - `channel_identity` ChannelIdentity — A unique identity of message recipient on a particular channel. For example, the channel identity on SMS, WHATSAPP or VIBERBM is a MSISDN phone number.
          - `app_id` string — Required if using a channel that uses app-scoped channel identities. Currently, FB Messenger, Instagram, LINE, and WeChat use app-scoped channel identities, which means contacts will have different channel identities on different Conversation API apps. These can be thought of as virtual identities that are app-specific and, therefore, the app_id must be included in the API call.
          - `channel` 'SMS' | 'RCS' | 'WHATSAPP' | 'MMS' | 'KAKAOTALK' | 'KAKAOTALKCHAT' | 'VIBERBM' | 'LINE' | 'INSTAGRAM' | 'MESSENGER' | 'WECHAT' | 'TELEGRAM' | 'APPLEBC', required — The identifier of the channel you want to include. Must be one of the enum values.
          - `identity` string, required — The channel identity. This will differ from channel to channel. For example, a phone number for SMS, WhatsApp, and Viber Business.
        - `contact_id` string — The ID of the contact.
        - `conversation_id` string — The ID of the conversation.
        - `direction` 'TO_APP' | 'TO_CONTACT' — The direction of the message flow, indicating whether the message was sent to or from the Conversation API app.
        - `id` string — The ID of the message.
        - `metadata` string — Optional. Metadata associated with the contact. Up to 1024 characters long.
        - `injected` boolean — Flag for whether this message was injected.
        - `sender_id` string — For Contact Messages (MO messages), the sender ID represents the recipient to which the message was sent. This may be a phone number (in the case of SMS and MMS) or a unique ID (in the case of WhatsApp). This is field is not supported on all channels, nor is it supported for MT messages.
        - `processing_mode` 'CONVERSATION' | 'DISPATCH' — Whether or not Conversation API should store contacts and conversations for the app. For more information, see [Processing Modes](https://developers.sinch.com/docs/conversation/processing-modes/).
  - `next_page_token` string — Token that should be included in the next request to fetch the next page.
  - `total_size` integer

## Other responses

- `400` — Malformed request. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
- `401` — Incorrect credentials. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
- `403` — Correct credentials but you don't have access to the requested resource. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
- `500` — Correct credentials but you don't have access to the requested resource. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
- `501` — Something went wrong on our end, try again with exponential back-off. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.

---

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