> ## Documentation Index
> Fetch the complete documentation index at: https://developers.plane.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a custom property

> Creates a new custom property for a work item type.

## Path parameters

<ParamField path="workspace_slug" type="string" required>
  The workspace\_slug represents the unique workspace identifier for a workspace in Plane. It can be found in the URL. For example, in the URL `https://app.plane.so/my-team/projects/`, the workspace slug is `my-team`.
</ParamField>

<ParamField path="project_id" type="string" required>
  The unique identifier of the project.
</ParamField>

<ParamField path="type_id" type="string" required>The unique identifier for the work item type.</ParamField>

## Body parameters

<ParamField body="display_name" type="string" required>Display name shown in the UI.</ParamField>
<ParamField body="description" type="string">Description of the custom property.</ParamField>

<ParamField body="property_type" type="string" placeholder="TEXT | DATETIME | DECIMAL | BOOLEAN | OPTION | RELATION">
  Type of the property. Possible values: `TEXT`, `DATETIME`, `DECIMAL`, `BOOLEAN`, `OPTION`, `RELATION`.
</ParamField>

<ParamField body="relation_type" type="string" placeholder="null | USER">
  Relation type if the property links to other entities. Possible values: `null`, `USER`.
</ParamField>

<ParamField body="default_value" type="string[]">
  Default value(s) for the property.
</ParamField>

<ParamField body="validation_rules" type="object">Validation rules applied to property values.</ParamField>
<ParamField body="is_required" type="boolean">Whether this property is required when creating work items.</ParamField>
<ParamField body="is_active" type="boolean">Whether this property is currently active.</ParamField>
<ParamField body="is_multi" type="boolean">Whether this property allows multiple values.</ParamField>

<ParamField body="options" type="object[]">
  Array of option objects for OPTION type properties. This field can be used while creating a property with type OPTION to set options on the custom property during creation itself. Each option object can contain:

  * `name` (string): Name of the option
  * `description` (string): Description of the option
  * `is_active` (boolean): Whether the option is active
  * `sort_order` (number): Sort order for the option
  * `parent` (string): Parent option ID for hierarchical options
  * `is_default` (boolean): Whether this is the default option
  * `logo_props` (object): Logo properties for the option

  To add or update options on an OPTION property after creation, you can use the APIs from [`issue-types/options/add-dropdown-options`](/api-reference/issue-types/options/add-dropdown-options).
</ParamField>
