Skip to content

Create a custom property ​

POST/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/

Create an issue property.

Path parameters ​

project_id:requiredstring

The unique identifier of the project.

workspace_slug:requiredstring

The workspace slug. It appears in your Plane URLs. In https://app.plane.so/my-team/projects/, the slug is my-team.

type_id:requiredstring

The unique identifier of the work item type.

Body parameters ​

relation_type:optionalstring

What a relation property links to:

  • ISSUE - Issue
  • USER - User
options:optionalarray

Options to create when property_type is OPTION. Each option needs a name and can include description, is_default, external_id, and external_source.

display_name:requiredstring

The property's display name.

description:optionalstring

The property's description.

property_type:requiredstring

The type of value the property holds:

  • TEXT - Text
  • DATETIME - Datetime
  • DECIMAL - Decimal
  • BOOLEAN - Boolean
  • OPTION - Option
  • RELATION - Relation
  • URL - URL
  • EMAIL - Email
  • FILE - File
  • FORMULA - Formula
is_required:optionalboolean

Whether the property requires a value.

default_value:optionalarray

The property's default value.

settings:optionalobject

Settings for the property.

is_active:optionalboolean

Whether the property is active.

is_multi:optionalboolean

Whether the property accepts multiple values.

validation_rules:optionalobject

Validation rules for the property's values.

external_source:optionalstring

The system external_id came from, for example github or jira.

external_id:optionalstring

Your system's identifier for this record, for sync and import correlation.

formula_config:optionalstring

Formula configuration, for FORMULA properties.

Scopes ​

projects.work_item_properties:write

Create a custom property
bash
curl -X POST \
  "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-uuid/work-item-types/type-uuid/work-item-properties/" \
  -H "X-API-Key: $PLANE_API_KEY" \
  # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Example Name",
  "description": "Example description",
  "property_type": "OPTION",
  "external_id": "550e8400-e29b-41d4-a716-446655440000",
  "external_source": "github"
}'
Response201
json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-01T00:00:00Z",
  "name": "Example Name",
  "display_name": "Example Name",
  "description": "Example description",
  "property_type": "TEXT",
  "deleted_at": "2024-01-01T00:00:00Z",
  "relation_type": "ISSUE",
  "logo_props": "example-value",
  "sort_order": 1,
  "is_required": true
}