Delete a property context
Remove a context from a property. A successful delete returns 204 with an empty body.
Deleting a context also removes its coverage. Every work item that resolved to this context falls through to the next most specific context. If none matches, the property stops appearing on those work items. Read What a delete takes with it before calling this on a context that is in use.
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.
property_id:requiredstring (uuid)The workspace-level property the context belongs to. A project-level property id is not addressable here and returns 404 not_found.
pk:requiredstring (uuid)The id of the context to delete.
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, so a missing key means you didn't ask for it and null means the value is null. id is always included, whether or not you name it.
Pass all to get every requestable field. An unknown field name returns 400 with the list of valid names and the closest match, so a typo is caught instead of being silently ignored.
Requestable here: applies_to_all_projects, applies_to_all_work_item_types, created_at, default_value, external_id, external_source, id, is_default, is_multi, is_required, issue_type_ids, name, options, project_ids, settings, sort_order, updated_at, updated_by_id.
See Sparse fields.
Scopes
workspaces.work_item_properties:write
Errors
| Status | Code | Cause |
|---|---|---|
400 | invalid_request | A path segment is not a valid UUID. |
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 can't change workspace property settings. |
404 | not_found | No such context, property, or workspace, or it's outside your tenant. |
406 | not_acceptable | The Accept header asks for a representation the API can't produce. |
409 | conflict | This workspace manages work item types per project, so workspace-level property writes are refused. |
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. |
Workspace mode only
Deleting a context requires the workspace to manage work item types at the workspace level. In project mode the request returns 409 work_item_types_managed_at_project, because the same capability is on the project surface. Reads are unaffected. See Work item type modes.
curl -X DELETE \
"https://api.plane.so/api/v2/workspaces/my-team/work-item-properties/d1f7a3c9-5b62-4e08-9a41-7c3e2f8b6d05/contexts/6e2b90d4-1c73-4f58-a09e-3d8b5c14e7f2/" \
-H "X-Api-Key: $PLANE_API_KEY"import requests
response = requests.delete(
"https://api.plane.so/api/v2/workspaces/my-team/work-item-properties/d1f7a3c9-5b62-4e08-9a41-7c3e2f8b6d05/contexts/6e2b90d4-1c73-4f58-a09e-3d8b5c14e7f2/",
headers={"X-Api-Key": "your-api-key"},
)
print(response.status_code)const response = await fetch(
"https://api.plane.so/api/v2/workspaces/my-team/work-item-properties/d1f7a3c9-5b62-4e08-9a41-7c3e2f8b6d05/contexts/6e2b90d4-1c73-4f58-a09e-3d8b5c14e7f2/",
{
method: "DELETE",
headers: {
"X-Api-Key": "your-api-key",
},
},
);
console.log(response.status);No response body.
{
"type": "conflict",
"code": "work_item_types_managed_at_project",
"detail": "Work item types are managed at the project level for this workspace."
}What a delete takes with it
The delete removes more than the context row:
- The context's options are deleted. Options belong to a context, not to the property, so deleting the context deletes the choices it offered and clears any value recorded against one of those options.
- Values are removed where no context applies anymore. For each project and work item type combination that this context covered, Plane re-resolves the property. If a less specific context still matches, work items there switch to its rules. If nothing matches, the property no longer applies in that combination and the values recorded there are removed.
There is no restore operation. Treat the 204 as final.
Deleting the all-projects context
The context Plane seeds with a property covers all projects and all work item types, which makes it the fallback for every work item that no other context covers. Deleting it doesn't delete the property, but the property becomes invisible everywhere your narrower contexts don't reach.
Only one context per property may set applies_to_all_projects, so deleting this context frees the slot when you want a different context to be the catch-all. To avoid a gap, create the replacement first, then move the flag with Update a context.
A safer teardown
When a context is in active use, retire it in this order:
- List the property's contexts and work out which context each covered project and work item type will fall back to.
- If the fallback is the wrong rule, update it or create the replacement context before deleting anything.
- Delete the context you are retiring.
In the other order, there's a window where the property is unreachable in those projects, and Plane removes the values recorded there instead of keeping them.

