Update a custom property
curl --request PATCH \
--url https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"display_name": "<string>",
"description": "<string>",
"property_type": "<string>",
"relation_type": "<string>",
"default_value": [
"<string>"
],
"validation_rules": {},
"is_required": true,
"is_active": true,
"is_multi": true
}
'import requests
url = "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/"
payload = {
"display_name": "<string>",
"description": "<string>",
"property_type": "<string>",
"relation_type": "<string>",
"default_value": ["<string>"],
"validation_rules": {},
"is_required": True,
"is_active": True,
"is_multi": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
display_name: '<string>',
description: '<string>',
property_type: '<string>',
relation_type: '<string>',
default_value: ['<string>'],
validation_rules: {},
is_required: true,
is_active: true,
is_multi: true
})
};
fetch('https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'display_name' => '<string>',
'description' => '<string>',
'property_type' => '<string>',
'relation_type' => '<string>',
'default_value' => [
'<string>'
],
'validation_rules' => [
],
'is_required' => true,
'is_active' => true,
'is_multi' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/"
payload := strings.NewReader("{\n \"display_name\": \"<string>\",\n \"description\": \"<string>\",\n \"property_type\": \"<string>\",\n \"relation_type\": \"<string>\",\n \"default_value\": [\n \"<string>\"\n ],\n \"validation_rules\": {},\n \"is_required\": true,\n \"is_active\": true,\n \"is_multi\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"display_name\": \"<string>\",\n \"description\": \"<string>\",\n \"property_type\": \"<string>\",\n \"relation_type\": \"<string>\",\n \"default_value\": [\n \"<string>\"\n ],\n \"validation_rules\": {},\n \"is_required\": true,\n \"is_active\": true,\n \"is_multi\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"display_name\": \"<string>\",\n \"description\": \"<string>\",\n \"property_type\": \"<string>\",\n \"relation_type\": \"<string>\",\n \"default_value\": [\n \"<string>\"\n ],\n \"validation_rules\": {},\n \"is_required\": true,\n \"is_active\": true,\n \"is_multi\": true\n}"
response = http.request(request)
puts response.read_bodyCustom Properties
Update a custom property
Updates an existing custom property by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
PATCH
/
api
/
v1
/
workspaces
/
{workspace_slug}
/
projects
/
{project_id}
/
work-item-types
/
{type_id}
/
work-item-properties
/
{property_id}
/
Update a custom property
curl --request PATCH \
--url https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"display_name": "<string>",
"description": "<string>",
"property_type": "<string>",
"relation_type": "<string>",
"default_value": [
"<string>"
],
"validation_rules": {},
"is_required": true,
"is_active": true,
"is_multi": true
}
'import requests
url = "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/"
payload = {
"display_name": "<string>",
"description": "<string>",
"property_type": "<string>",
"relation_type": "<string>",
"default_value": ["<string>"],
"validation_rules": {},
"is_required": True,
"is_active": True,
"is_multi": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
display_name: '<string>',
description: '<string>',
property_type: '<string>',
relation_type: '<string>',
default_value: ['<string>'],
validation_rules: {},
is_required: true,
is_active: true,
is_multi: true
})
};
fetch('https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'display_name' => '<string>',
'description' => '<string>',
'property_type' => '<string>',
'relation_type' => '<string>',
'default_value' => [
'<string>'
],
'validation_rules' => [
],
'is_required' => true,
'is_active' => true,
'is_multi' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/"
payload := strings.NewReader("{\n \"display_name\": \"<string>\",\n \"description\": \"<string>\",\n \"property_type\": \"<string>\",\n \"relation_type\": \"<string>\",\n \"default_value\": [\n \"<string>\"\n ],\n \"validation_rules\": {},\n \"is_required\": true,\n \"is_active\": true,\n \"is_multi\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"display_name\": \"<string>\",\n \"description\": \"<string>\",\n \"property_type\": \"<string>\",\n \"relation_type\": \"<string>\",\n \"default_value\": [\n \"<string>\"\n ],\n \"validation_rules\": {},\n \"is_required\": true,\n \"is_active\": true,\n \"is_multi\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/{project_id}/work-item-types/{type_id}/work-item-properties/{property_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"display_name\": \"<string>\",\n \"description\": \"<string>\",\n \"property_type\": \"<string>\",\n \"relation_type\": \"<string>\",\n \"default_value\": [\n \"<string>\"\n ],\n \"validation_rules\": {},\n \"is_required\": true,\n \"is_active\": true,\n \"is_multi\": true\n}"
response = http.request(request)
puts response.read_bodyPath parameters
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.string
required
The unique identifier of the project.
string
required
The unique identifier for the work item type.
string
required
The unique identifier for the custom property.
Body parameters
string
required
Display name shown in the UI.
string
Description of the custom property.
string
Type of the property. Possible values:
TEXT, DATETIME, DECIMAL, BOOLEAN, OPTION, RELATION.string
Relation type if the property links to other entities. Possible values:
null, USER.string[]
Default value(s) for the property.
object
Validation rules applied to property values.
boolean
Whether this property is required when creating work items.
boolean
Whether this property is currently active.
boolean
Whether this property allows multiple values.
⌘I

