Create a new component in a project
Creates a new project component (reusable project template) with name, description, icon, tags, and internal notes.
What are Project Components? Project components are reusable project templates that standardize recurring project types. They serve as blueprints for planning, pricing, and executing similar projects consistently. Components connect requirements management, cost calculation, and execution in one unified workflow.
After Creating a Component: Once created, you can add items (Epics, Work Packages, Todo Lists, Test Suites) to define the project structure. You can also add questions to capture customer requirements, todos for checklists, and test cases for acceptance testing.
Component Placement: The component is automatically appended to the end of the project component list. You can reorder components later using the sort endpoint.
Content Format: Description and internal note fields accept HTML or Markdown input and are automatically converted to the internal IDoc format for storage. When retrieved, this content is converted back to HTML for easy consumption.
Side Effects: Creating a component automatically triggers project configuration change tracking, marking the project as having been modified.
/projects/{projectId}/componentsAuthorizationOAuth2 access token · headerrequiredapi:writeAuthorizationBearer token (JWT) · headerrequiredprojectIdstringrequiredfieldsToReturnstringresponseShapestringcompactfullLT-Response-Shapestringfullapplication/jsondescriptionstringrequirediconobjectinternalNotestringnamestringrequiredtagsstring[]idstringrequiredcurl -X POST "https://leadtime.app/api/public/projects/string/components" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"description": "<p>User authentication and authorization module</p>",
"icon": "icon-lock",
"internalNote": "<p>This is an internal development note</p>",
"name": "Authentication Module",
"tags": [
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]
}'const response = await fetch("https://leadtime.app/api/public/projects/string/components", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"description": "<p>User authentication and authorization module</p>",
"icon": "icon-lock",
"internalNote": "<p>This is an internal development note</p>",
"name": "Authentication Module",
"tags": [
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]
})
});import requests
response = requests.post(
"https://leadtime.app/api/public/projects/string/components",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
},
json={
"description": "<p>User authentication and authorization module</p>",
"icon": "icon-lock",
"internalNote": "<p>This is an internal development note</p>",
"name": "Authentication Module",
"tags": [
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
]
},
){
"id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"
}