# Create contacts

Creates a batch of up to 1000 contacts as specified by the list of contacts.
The contacts are created asynchronously. A `CONTACT_CREATE` event will be generated for every successfully created contact.

Endpoint: POST /v1/projects/{project_id}/contacts
Version: 1.0
Security: BearerAuth

## Security:

  - `BearerAuth` (unknown)
    http bearer

## Path parameters:

  - `project_id` (string, required)
    The unique ID of the project. You can find this on the [Sinch Dashboard](https://dashboard.sinch.com/convapi/apps).

## Request fields (application/json):

  - `contacts` (array, required)
    List of contacts to be created in Conversation API.

  - `contacts.channel_identities` (array, required)
    List of channel identities. Array must contain at least one item.

  - `contacts.channel_identities.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.

  - `contacts.channel_identities.channel` (string, required)
    The identifier of the channel you want to include. Must be one of the enum values.
    Enum: "SMS", "RCS", "WHATSAPP", "MMS", "KAKAOTALK", "KAKAOTALKCHAT", "VIBERBM", "LINE", "INSTAGRAM", "MESSENGER", "WECHAT", "TELEGRAM", "APPLEBC"

  - `contacts.channel_identities.identity` (string, required)
    The channel identity. This will differ from channel to channel. For example, a phone number for SMS, WhatsApp, and Viber Business.

  - `contacts.channel_priority` (array)
    List of channels defining the channel priority for the contact. The channel at the top of the list will be tried first. Note that this priority order can be overridden by the `channel_priority_order` set in a send message request, the order of `channel_identities` set in a send message request, or the channel that is already in use if a conversation already exists for this contact.

  - `contacts.display_name` (string)
    The display name. A default 'Unknown' will be assigned if left empty.

  - `contacts.email` (string)
    Email of the contact.

  - `contacts.external_id` (string)
    Contact identifier in an external system.

  - `contacts.language` (string, required)
    Enum: "AF", "SQ", "AR", "AZ", "BN", "BG", "CA", "ZH", "ZH_CN", "ZH_HK", "ZH_TW", "HR", "CS", "DA", "NL", "EN", "EN_GB", "EN_US", "ET", "FIL", "FI", "FR", "DE", "EL", "GU", "HA", "HE", "HI", "HU", "ID", "GA", "IT", "JA", "KN", "KK", "KO", "LO", "LV", "LT", "MK", "MS", "ML", "MR", "NB", "FA", "PL", "PT", "PT_BR", "PT_PT", "PA", "RO", "RU", "SR", "SK", "SL", "ES", "ES_AR", "ES_ES", "ES_MX", "SW", "SV", "TA", "TE", "TH", "TR", "UK", "UR", "UZ", "VI", "ZU"

  - `contacts.metadata` (string)
    Metadata associated with the contact. Up to 1024 characters long.

## Request examples:

  - `Create multiple contacts` (unknown)

## Response 200:

  - `200` (unknown)
    OK

## Response 401:

  - `401` (unknown)
    Invalid credentials

## Response 403:

  - `403` (unknown)
    Permission denied. The specified project may not be allowed to use the batch endpoint.

## Response 403 fields (application/json):

  - `code` (integer)

  - `message` (string)

  - `status` (string)

  - `details` (array)

## Response 500:

  - `500` (unknown)
    Internal error

## Response 500 fields (application/json):

  - `code` (integer)

  - `message` (string)

  - `status` (string)

  - `details` (array)

## Response 403 examples:

  - `Permission denied` (unknown)

## Response 500 examples:

  - `Internal error` (unknown)

