Skip to content

Delete a cycle

DELETE/api/v2/workspaces/{slug}/projects/{project_id}/cycles/{pk}/

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:requiredstring

The 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

StatusCodeCause
400validation_errorA malformed path parameter, for example a pk that isn't a UUID.
401unauthorizedMissing or invalid credentials.
403forbiddenYour role or token scope can't delete cycles in this project.
404resource_not_foundNo such cycle, wrong project, or the record is outside your tenant.
409conflictThe cycle's current state blocks deletion.
429rate_limitedThrottled. Honor the Retry-After header before retrying.
Delete a cycle
bash
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"
Response204

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 cycle matches the given id in this project."
}