Create a new todo (checklist item) for a component item
Creates a new todo checklist item within a project component item. Todos are actionable checklist items that help track progress and ensure nothing is missed.
What are Todos? Todos are checklist items used to track actionable tasks within component items. They are perfect for:
- Recurring processes (tests, approvals, installation steps)
- Quality control checkpoints
- Project preparation steps
- Final checks before go-live
- Kickoff checklists
- Review and approval workflows
Todo Features: Each todo can be:
- Checked off individually to track completion
- Commented on to add notes or context
- Tracked with completion status (isDone), who completed it (doneBy), and when (doneUpdatedAt)
Where Todos Can Be Attached: Todos can be attached to Work Packages or Todo List items. When attached to a Todo List, they become sub-items in a checklist. When attached to a Work Package, they serve as actionable steps within that work package.
Content Format: The description field accepts HTML or Markdown format and is automatically converted to IDoc format for storage. When retrieved, it is converted back to HTML for easy consumption.
Automatic Processing: After creating a todo, the system automatically:
- Calculates sort order as max(sort) + 1 for todos in the same item, positioning it at the end
- Recalculates all conditions that depend on todo completion status
- Updates timeframes if conditions changed
- Marks the project configuration as changed
Use Case: Create todos to break down work packages into actionable steps, create quality checklists, or define approval workflows. Todos can also be used in conditions to control when other items are visible or active.
/projects/{projectId}/items/{itemId}/todosAuthorizationOAuth2 access token · headerrequiredapi:writeAuthorizationBearer token (JWT) · headerrequiredprojectIdstringrequireditemIdstringrequiredfieldsToReturnstringresponseShapestringcompactfullLT-Response-Shapestringfullapplication/jsondescriptionstringrequiredtitlestringrequiredidstringsuccessbooleanrequiredcurl -X POST "https://leadtime.app/api/public/projects/a47dc37b-7693-4d06-b49c-17084b773aff/items/3047983b-d798-4aff-8dd4-628cf1900703/todos" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"description": "<p>Add user login with two-factor authentication</p>",
"title": "Implement authentication with 2FA"
}'const response = await fetch("https://leadtime.app/api/public/projects/a47dc37b-7693-4d06-b49c-17084b773aff/items/3047983b-d798-4aff-8dd4-628cf1900703/todos", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"description": "<p>Add user login with two-factor authentication</p>",
"title": "Implement authentication with 2FA"
})
});import requests
response = requests.post(
"https://leadtime.app/api/public/projects/a47dc37b-7693-4d06-b49c-17084b773aff/items/3047983b-d798-4aff-8dd4-628cf1900703/todos",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
json={
"description": "<p>Add user login with two-factor authentication</p>",
"title": "Implement authentication with 2FA"
},
){
"id": "550e8400-e29b-41d4-a716-446655440001",
"success": true
}