---
title: "Create Contacts"
method: POST
path: "/contact/create"
tags: ["Contacts"]
---

# Create Contacts

`POST /contact/create`

The Create Contact (Async) API allows you to create contacts in the system without waiting for each contact to be processed immediately. It supports adding multiple contacts, defining attributes, and assigning them to audience lists or groups. Since this API works asynchronously, it processes the data in the background after accepting the request. The response only confirms that the request has been received successfully, it does not indicate that contact creation is complete.

## Headers

- `api-key` string, required
- `Content-Type` string, required

## Request body

- object
  - `data` object, required — Define the main payload for creating contacts. This object must contain 'contact_type' and 'contacts', as these determine how the system processes each profile.
    - `contact_type` 'identified' | 'anonymous', required — Specifies the type of contacts to be created. This informs the system how to interpret each context record.
    - `contacts` object[], required — Lists of contacts to be created. Each object represents one contact and must include the identifiers and attributes needed to build the profile. Note: Must include at least one contact. Every contact object must contain the required identifiers based on the 'contact_type'. Each object can include attributes and audience assignments.
      - `identity` string — Unique identifier of the contact. Required if 'contact_type' is 'identified'.
      - `email` string, email — Email ID of the contact. This is a required field if 'contact_type' is 'anonymous' and 'mobile' is missing. Starts with a lowercase letter, number, or underscore, Allow +/_/. Domain must contain valid characters and at least one dot. TLD length: 2 to 25 characters. Fully lowercase expected(uppercase technically won't match)
      - `mobile` string — Mobile number of the contact. Only digits are allowed. No spaces, no symbols, and no country code prefix. This field is mandatory if 'contact_type' is 'anonymous' and 'email' is missing.
      - `attributes` object — Define the key-value pairs of contact attributes to be updated. The keys represent attribute names (system-defined or custom), and the values represent the updated data for those attributes. Add this object when you want to enrich the profile with system or custom attributes.
      - `audience_details` object[] — Assign contacts to specific audience lists or groups. You can add multiple objects to assign a contact to more than one audience. Each object must specify either audience_id or audience_name, and must include audience_type.
        - `audience_id` integer[] — Unique numeric identifiers for audiences(lists or groups) where the contact should be assigned. Mandatory if audience_name is not provided. If both 'audience_id' and 'audience_name' are provided, only 'audience_id' is considered and 'audience_name' is ignored. Minimum length: 1 Maximum length: 2147483647
        - `audience_name` string[] — Name of audience(lists and groups) to which the contact should be assigned. Mandatory if 'audience_id' is not provided. If both 'audience_id' and 'audience_name' are present, only 'audience_id' is considered. Minimum length: 1 Maximum length: 255 regex: ^[a-zA-Z0-9 _&-]+$
        - `audience_type` 'list' | 'ccg' — Specifies the type of audience to which the contact is being added. This field is mandatory and helps the system procee contact assignments correctly. Only "list" and "ccg" for now.
    - `audience_details` object[] — Assign contacts to specific audience lists or groups.
      - `audience_id` integer[] — Unique numeric identifiers for audiences(lists or groups) where the contact should be assigned.Mandatory if audience_name is not provided. If both 'audience_id' and 'audience_name' are provided, only 'audience_id' is considered and 'audience_name' is ignored. Minimum length: 1 Maximum length: 2147483647
      - `audience_name` string[] — Name of audience(lists and groups) to which the contact should be assigned. Mandatory if 'audience_id' is not provided. If both 'audience_id' and 'audience_name' are present, only 'audience_id' is considered. Minimum length: 1 Maximum length: 255 regex: ^[a-zA-Z0-9 _&-]+$
      - `audience_type` 'list' | 'ccg' — Specifies the type of audience to which the contact is being added. This field is mandatory and helps the system procee contact assignments correctly. Only "list" and "ccg" for now.

## Response `200`

Success Response: The request was successfully submited, and processing will happen asynchronously.

- object
  - `request_id` string, required — Unique request id of request.
  - `code` 200 | 400 | 401 | 500, required — Response status Code.
  - `status` 'success' | 'failed', required — Status of API request.
  - `description` string, required — API response description.

## Other responses

- `400` — Bad Request: The request contains invalid data, possibly due to missing required fields, non-existent audience_id or audience_name, or attributes hat do not match the allowed patterns.
- `401` — Unauthorized: The API key is invalid, missing, or incorrect. Ensure you provide a valid API key in the request header.
- `500` — Internal Server Error: An unexpected issue occured on the server. Possibly, Internal service failure or unexpected request payload structure.

---

[API](https://skmtc.net/netcorecloud/apis/contacts-api.md) · [All operations](https://skmtc.net/netcorecloud/apis/contacts-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/netcorecloud/contacts-api/versions/2878cfd0ee01/schema)
