---
title: "Create a conversation"
method: POST
path: "/v1/projects/{project_id}/conversations"
tags: ["Conversation"]
---

# Create a conversation

`POST /v1/projects/{project_id}/conversations`

Creates a new empty conversation. In Conversation mode, it is generally not needed to create
a conversation explicitly since sending or receiving a message
automatically creates a new conversation if it does not already
exist between the given app and contact.
Creating empty conversation is useful if the metadata of the conversation
should be populated when the first message in the conversation is a contact message
or the first message in the conversation comes out-of-band and
needs to be injected with InjectMessage endpoint.

## Request body

- CreateConversationRequest — 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.

## Response `200`

A successful response.

- 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.

## 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)
