POST https://app.alaaqat.com/api/contacts/properties
Creates a custom property for your contacts. Your API key needs the contact-property-create ability.
Read Properties for the available types and the format of the options of a single_select property.
{
"Accept": "application/json",
"Content-Type": "application/json"
}
{
type: string,
name: {
en?: string,
ar?: string
},
desc?: {
en?: string,
ar?: string
},
internal_name: string,
group_id: string,
enum?: [
{
en?: string,
ar?: string,
internal_name: string
}
],
is_unique_key?: boolean
}
| Field | Required | Validation | Description |
|---|---|---|---|
| type | Required | One of the property types | The kind of value the property holds. It cannot be changed later. |
| name | Required | An object with at least one language, each value text | The property name, in en, ar or both. |
| desc | Optional | An object of languages, each value text or null |
A description, in en, ar or both. |
| internal_name | Required | Letters, digits and underscores only. It cannot start with alaaqat, and no other contact property, built in or yours, may already use it. |
The key that holds the property's value on a contact. It cannot be changed later. |
| group_id | Required | The _id of a contact property group, built in or yours |
The group the property is listed under. |
| enum | Optional | An array of options, each with an internal_name that is unique within the array |
The options of a single_select property. Leave it out for other types. |
| is_unique_key | Optional | true or false |
Makes the property a unique key. See Unique keys below. |
Alaaqat fills in account_id and made_by itself. A request that sends either one is rejected.
A text property that works as a unique key:
{
"type": "string",
"name": {
"en": "Membership number",
"ar": "رقم العضوية"
},
"desc": {
"en": "The number printed on the loyalty card",
"ar": "الرقم المطبوع على بطاقة الولاء"
},
"internal_name": "membership_number",
"group_id": "6653c0d1e2f3a4b5c6d7e801",
"is_unique_key": true
}
A single_select property:
{
"type": "single_select",
"name": {
"en": "Preferred branch",
"ar": "الفرع المفضل"
},
"internal_name": "preferred_branch",
"group_id": "6653c0d1e2f3a4b5c6d7e801",
"enum": [
{
"en": "Downtown",
"ar": "وسط البلد",
"internal_name": "downtown"
},
{
"en": "Airport Road",
"ar": "طريق المطار",
"internal_name": "airport_road"
}
]
}
A unique key stops two contacts from holding the same value for the property:
422, and the error is reported on that field. See Create a Contact.422 while two or more contacts already share a value for the property. Resolve those duplicates first, then turn it on.For contacts, email, phone and whatsapp_number are unique keys by default. To allow duplicates in one of them, update the property with "is_unique_key": false.
201 Created, with the new property under data.
{
"data": {
"type": "string",
"name": {
"en": "Membership number",
"ar": "رقم العضوية"
},
"desc": {
"en": "The number printed on the loyalty card",
"ar": "الرقم المطبوع على بطاقة الولاء"
},
"internal_name": "membership_number",
"group_id": "6653c0d1e2f3a4b5c6d7e801",
"is_unique_key": true,
"account_id": 1024,
"made_by": 12,
"updated_at": "2026-10-20T09:15:00.000000Z",
"created_at": "2026-10-20T09:15:00.000000Z",
"_id": "6654d0e1f2a3b4c5d6e7f801",
"user": {
"id": 12,
"email": "sara.haddad@example.com",
"firstname": "Sara",
"lastname": "Haddad",
"image": null,
"locale": "en",
"created_at": "2026-03-02T08:00:00.000000Z",
"updated_at": "2026-10-01T07:30:00.000000Z",
"fullname": "Sara Haddad"
},
"group": {
"_id": "6653c0d1e2f3a4b5c6d7e801",
"internal_name": "contact_information",
"name": {
"en": "Contact Information",
"ar": "معلومات جهة الاتصال"
},
"desc": [],
"account_id": null,
"made_by": null,
"updated_at": "2026-01-10T00:00:00.000000Z",
"created_at": "2026-01-10T00:00:00.000000Z"
}
},
"message": "Entity was created successfully."
}
| Status | Meaning |
|---|---|
| 402 | Your plan's limit of custom properties is reached. See the plans on the pricing page. |
| 422 | A field failed validation. For example, the internal name is already used or contains other characters, the group does not exist, or is_unique_key is true while contacts already share a value. |