---
title: "Create Custom Property"
method: POST
path: "/properties/create"
tags: ["custom properties"]
---

# Create Custom Property

`POST /properties/create`

This endpoint creates a custom property in your workspace

For `dropdown` and `picklist` kinds, provide the initial option list in `options` - these kinds cannot be created without at least one option

_The property name must be unique within its type. The same name can exist once as a chat property and once as a ticket property_

_`mandatory` is supported only for ticket properties. Passing `mandatory: true` for a chat property returns a validation error_

_The `dependent_dropdown` kind cannot be created via the API_

## Request body

- object
  - `name` string, required — - The name of the property - Must be unique within its type (chat/ticket)
  - `type` 'chat' | 'ticket', required — - The type the property belongs to
  - `kind` 'text' | 'date' | 'file' | 'dropdown' | 'picklist', required — - The value kind of the property - `dropdown` is single-select, `picklist` is multi-select
  - `section` string — - The name of the section to place the property under - Created automatically if it does not exist
  - `mandatory` boolean — - Whether the property is mandatory - Supported only for ticket properties; rejected for chat properties - Defaults to false
  - `options` string[] — - The initial option labels - Required (at least one non-empty label) for dropdown and picklist kinds - Not allowed for other kinds

## Response `200`

200 OK

- object
  - `success` boolean
  - `message` string
  - `data` object
    - `property_id` string — The unique identifier of the property
    - `property_name` string — The name of the property
    - `type` 'chat' | 'ticket' — The type the property belongs to
    - `kind` string — The value kind of the property - text, date, file, dropdown or picklist
    - `mandatory` boolean — Whether the property is mandatory. Applicable to ticket properties only
    - `section_id` string, nullable — The id of the section the property belongs to, or null if it is not in a section
    - `section_name` string, nullable — The name of the section the property belongs to, or null if it is not in a section
    - `options` object[] — The current option list. Present only for dropdown and picklist kinds
      - `id` string
      - `label` string
    - `created_at` string — When the property was created

## Other responses

- `409` — Name already exists for this type
- `422` — A dropdown/picklist has no options

---

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