Create a cycle
number defaults to (max number in the team) + 1, which cannot collide; pinning an explicit number that is already taken is a 409, since (team_id, number) is unique. startsAt/endsAt accept YYYY-MM-DD. The team must belong to the caller's org (else 404). `name` is optional — an unnamed cycle is known by its number, and any number of unnamed cycles is fine — but a name that is set must be unique within the team, compared trimmed and case-insensitively, else 409.
View as MarkdownAuthorization
bearer In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/cycles" \ -H "Content-Type: application/json" \ -d '{ "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec" }'{ "cycle": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec", "number": 0, "name": "string", "startsAt": "2019-08-24", "endsAt": "2019-08-24" }}List cycles
Cycles across the org's teams, highest number first. Filter with team_id.
Update a cycle
Partial update. Omitted fields keep their stored value — in particular an omitted number does NOT renumber the cycle. Send an empty string for startsAt/endsAt to clear the date; an unparseable date is a 400, not a silent null. endsAt must fall on or after startsAt once the patch is merged with the stored row. A name another cycle in the same team already uses is a 409; "" clears the name and never collides. A cycle's team is immutable, so teamId is not accepted. Cycles in another org read as 404.