Create a work item from a template
Project work item templates pre-fill new work items in one project. Create a work item from this template in one call.
The new work item takes the template's name, description_html, and priority, and starts in the state Plane gives any new work item in the project. No other template values are applied. The response is the new work item in the same shape as Create a work item, including description_html and custom_fields.
Path parameters
slug:requiredstringThe workspace slug. It appears in your Plane URLs. In https://app.plane.so/my-team/projects/, the slug is my-team.
project_id:requiredstringThe project the resource belongs to. Accepts the project UUID or its bare identifier, for example ENG.
pk:requiredstring (uuid)The id of the work item template to use.
Body parameters
name:optionalstringA name for the new work item. Omit it to use the template's name.
project_id:optionalstring (uuid)Accepted but not used. The work item is always created in the project in the path.
Response shaping
fields:optionalstringComma-separated list of fields to return. Fields you don't request are left out of the response instead of coming back as null. id is always included. Pass all to get every requestable field. An unknown field name returns 400. See Sparse fields.
Requestable here: archived_at, assignee_ids, completed_at, created_at, created_by_id, custom_fields, cycle_id, description_html, estimate_point_id, external_id, external_source, id, identifier, is_draft, label_ids, module_ids, name, parent_id, priority, project_id, sequence_id, sort_order, start_date, state_id, target_date, type_id, updated_at, updated_by_id.
expand:optionalstringComma-separated relations to embed: assignees, cycle, estimate_point, labels, modules, parent, state, type.
Expanded objects get their own key: ?expand=state keeps state_id and adds a state object next to it. ?fields= and ?expand= work independently. Naming a relation in ?fields= returns 400, and field filtering never removes an expanded object. See Expanding relations.
Scopes
templates.work_items:write
Errors
| Status | Code | Cause |
|---|---|---|
400 | invalid_request | The request body or a query parameter failed validation. |
401 | unauthorized | Missing or invalid credentials. |
402 | payment_required | The feature this endpoint belongs to isn't enabled on your plan or is switched off. |
403 | forbidden | Your role or token scope doesn't allow this. |
404 | not_found | No such template, it's outside your project or tenant, or the template has no work item content. |
406 | not_acceptable | The Accept header asks for a representation the API can't produce. |
409 | governance_migration_in_progress | A governance migration is running in this workspace, so writes are paused. Retry after it finishes. |
413 | payload_too_large | The request body is over the size limit. |
415 | unsupported_media_type | The Content-Type isn't one this endpoint accepts. |
429 | rate_limited | Throttled. Honor the Retry-After header before retrying. |
curl -X POST \
"https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/work-item-templates/9c1f0b3d-6d2e-4c9a-8b41-2f7e5a0d6c88/use/" \
-H "X-Api-Key: $PLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Checkout times out on slow networks"
}'import requests
response = requests.post(
"https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/work-item-templates/9c1f0b3d-6d2e-4c9a-8b41-2f7e5a0d6c88/use/",
headers={"X-Api-Key": "your-api-key"},
json={
"name": "Checkout times out on slow networks",
},
)
print(response.json())const response = await fetch(
"https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/work-item-templates/9c1f0b3d-6d2e-4c9a-8b41-2f7e5a0d6c88/use/",
{
method: "POST",
headers: {
"X-Api-Key": "your-api-key",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Checkout times out on slow networks",
}),
},
);
const data = await response.json();{
"id": "6d3f8a21-c47b-4e09-9b5d-2a1e7c4f8b36",
"name": "Checkout times out on slow networks",
"description_html": "<h3>Steps to reproduce</h3><ol><li></li></ol><h3>Expected</h3><p></p><h3>Actual</h3><p></p>",
"identifier": "PROJ-158",
"sequence_id": 158,
"priority": "medium",
"project_id": "4af68566-94a4-4eb3-94aa-50dc9427067b",
"state_id": "2c4d16f8-9b3e-4a52-8d71-1f0e6c9a5b48",
"type_id": null,
"assignee_ids": [],
"label_ids": [],
"cycle_id": null,
"module_ids": [],
"parent_id": null,
"estimate_point_id": null,
"start_date": null,
"target_date": null,
"is_draft": false,
"sort_order": 75535.0,
"completed_at": null,
"archived_at": null,
"external_id": null,
"external_source": null,
"created_at": "2026-01-22T13:05:48.640219Z",
"updated_at": "2026-01-22T13:05:48.640219Z",
"created_by_id": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
"updated_by_id": null,
"custom_fields": {}
}
