Get work item type schema ​
GET/api/v1/workspaces/{slug}/projects/{project_id}/work-item-types/schema/
Returns the complete schema for a work item type including all standard fields and custom properties with their available options inline.
This endpoint enables LLMs and MCP integrations to understand what fields are available when creating/updating work items.
Standard fields are always included:
- name, description_html, priority, state_id, assignee_ids, label_ids, start_date, target_date, parent_id
Custom fields are included when:
- ISSUE_TYPES feature is enabled AND
- A type_id is provided or a default type exists for the project
Options behavior:
- state_id options are always included
- priority options are always included
- assignee_ids and label_ids options require
?include=members,labels - estimate_point_id options are included when project has estimates configured
Path Parameters ​
project_id:requiredstringProject ID
slug:requiredstringWorkspace slug
Query Parameters ​
include:optionalstringComma-separated list of additional options to include: members, labels
type_id:optionalstringWork item type ID. If not provided, returns schema for default type (when types enabled) or standard fields only.
Scopes ​
projects.work_item_types:read
Get work item type schema
bash
curl -X GET \
"https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/schema/?include=members&type_id=550e8400-e29b-41d4-a716-446655440000" \
-H "X-API-Key: $PLANE_API_KEY"python
import requests
response = requests.get(
"https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/schema/?include=members&type_id=550e8400-e29b-41d4-a716-446655440000",
headers={"X-API-Key": "your-api-key"}
)
print(response.json())javascript
const response = await fetch(
"https://api.plane.so/api/v1/workspaces/my-workspace/projects/550e8400-e29b-41d4-a716-446655440000/work-item-types/schema/?include=members&type_id=550e8400-e29b-41d4-a716-446655440000",
{
method: "GET",
headers: {
"X-API-Key": "your-api-key",
},
}
);
const data = await response.json();Response200
json
{
"type_id": "550e8400-e29b-41d4-a716-446655440000",
"type_name": "Bug",
"type_description": "Example description",
"type_logo_props": {},
"fields": {
"name": {
"type": "string",
"required": true,
"max_length": 255
},
"priority": {
"type": "option",
"required": false,
"options": [
{
"value": "urgent",
"label": "Urgent"
},
{
"value": "high",
"label": "High"
}
]
},
"state_id": {
"type": "uuid",
"required": false,
"options": [
{
"id": "...",
"name": "Example Name",
"group": "backlog"
}
]
}
},
"custom_fields": {
"custom_field_severity": {
"id": "...",
"type": "OPTION",
"name": "Example Name",
"display_name": "Example Name",
"required": true,
"is_multi": false,
"options": [
{
"id": "...",
"name": "Example Name"
}
]
}
}
}
