Delete a module
DELETE/api/v2/workspaces/{slug}/projects/{project_id}/modules/{pk}/
Delete a module. The work items that were grouped by it stay in the project — only the grouping goes away.
This is a soft delete: the module stops appearing in reads and its name is freed up for reuse in the project.
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:requiredstring (uuid)The project the module belongs to.
pk:requiredstring (uuid)The module to delete.
204, then 404
A successful delete returns 204 with an empty body — there is nothing to parse. A second DELETE on the same id returns 404 resource_not_found, so a retry after a dropped connection is safe to treat as success.
Scopes
projects.modules:write
Errors
| Status | Code | Cause |
|---|---|---|
401 | unauthorized | Missing or invalid credentials. |
403 | forbidden | Your role or token scope can't delete this module. |
404 | resource_not_found | No such module, workspace, or project, or it's outside your tenant. |
429 | rate_limited | Throttled. Wait for the interval in Retry-After and retry. |
Delete a module
bash
curl -X DELETE \
"https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/modules/7c1f3d90-2a64-4e58-9b0d-3fa1c7e28b45/" \
-H "X-Api-Key: $PLANE_API_KEY"python
import requests
response = requests.delete(
"https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b"
"/modules/7c1f3d90-2a64-4e58-9b0d-3fa1c7e28b45/",
headers={"X-Api-Key": "your-api-key"},
)
print(response.status_code) # 204javascript
const response = await fetch(
"https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/modules/7c1f3d90-2a64-4e58-9b0d-3fa1c7e28b45/",
{
method: "DELETE",
headers: { "X-Api-Key": "your-api-key" },
}
);
console.log(response.status); // 204Response204
No response body.
Response404
json
{
"type": "https://api.plane.so/errors/resource_not_found",
"title": "Not Found",
"status": 404,
"code": "resource_not_found",
"detail": "No Module matches the given query."
}
