Delete a cycle
Remove a cycle from a project. The delete is a soft delete — the cycle stops appearing in reads and its name is freed for reuse.
A successful call returns 204 with an empty body. There is nothing to parse, so branch on the status code.
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 cycle belongs to.
pk:requiredstring (uuid)The cycle to delete.
Deleting the cycle does not delete its work items
Work items that were in the cycle survive the delete — they simply lose their cycle assignment. Move them to another cycle first if the assignment matters, using the v1 cycle work-item endpoints.
Deleting a cycle that is already deleted returns 404, so the call is safe to retry: treat both 204 and 404 as "gone".
Scopes
projects.cycles:write
Errors
| Status | Code | Cause |
|---|---|---|
400 | validation_error | A malformed path parameter, for example a pk that isn't a UUID. |
401 | unauthorized | Missing or invalid credentials. |
403 | forbidden | Your role or token scope can't delete cycles in this project. |
404 | resource_not_found | No such cycle, wrong project, or the record is outside your tenant. |
409 | conflict | The cycle's current state blocks deletion. |
429 | rate_limited | Throttled. Honor the Retry-After header before retrying. |
curl -X DELETE \
"https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/cycles/7c1f9a4e-3b6d-4a52-8f0c-2d9e6b18c3a7/" \
-H "X-Api-Key: $PLANE_API_KEY"import requests
response = requests.delete(
"https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/cycles/7c1f9a4e-3b6d-4a52-8f0c-2d9e6b18c3a7/",
headers={"X-Api-Key": "your-api-key"},
)
print(response.status_code) # 204const response = await fetch(
"https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/cycles/7c1f9a4e-3b6d-4a52-8f0c-2d9e6b18c3a7/",
{
method: "DELETE",
headers: { "X-Api-Key": "your-api-key" },
}
);
console.log(response.status); // 204No response body.
{
"type": "https://api.plane.so/errors/resource_not_found",
"title": "Not Found",
"status": 404,
"code": "resource_not_found",
"detail": "No cycle matches the given id in this project."
}
