Get project component details
Returns full details of a component from a project component tree including all nested children and metadata.
What are Project Components? Project components are reusable project templates that standardize recurring project types. They connect requirements management, cost calculation, and execution in one unified workflow. Each component contains items (Epics, Work Packages, Todo Lists, Test Suites) that define the project structure.
Project Components vs Library Components:
- Project Components (this endpoint): Belong to a specific project, contain live data (answers to questions, test case evaluations, todo completion status), and can be connected to tasks in the task management system.
- Library Components: Workspace-wide reusable templates (projectId is null) that serve as blueprints. They can be imported into projects to create project component instances.
Response Format: All ProseMirror editor content (description, internalNote) is automatically converted to HTML format for easy consumption. The response includes the complete hierarchical structure with all nested items and their metadata.
Access Control: Only project components that belong to the specified project (component.projectId equals projectId) are accessible through this endpoint.
/projects/{projectId}/components/component-details/{id}AuthorizationOAuth2 access token · headerrequiredapi:readAuthorizationBearer token (JWT) · headerrequiredprojectIdstringrequiredidstringrequiredchildrenComponentChildrenShortItemDto[]requiredShow propertiesHide properties
ComponentChildrenShortItemDtochildrenComponentChildrenShortItemDto[]requiredShow propertiesHide properties
ComponentChildrenShortItemDtoComponentChildrenShortItemDto.conditionsValidbooleanrequiredentityUniqueIdstringrequirediconobject | nullrequiredidstringrequirednamestringrequiredquestionsCountnumberrequiredtaskIdobject | nullrequiredtaskShortNumberobject | nullrequiredtestCasesCountnumberrequiredtodosCountnumberrequiredtypestringrequiredEpicWorkPackageTodoListTestSuitedescriptionstringrequireddiscountAmountnumberrequireddiscountTypestringrequiredFixedPercentageiconobject | nullrequiredidstringrequiredinternalNotestringrequirednamestringrequiredprojectIdobject | nullrequiredtagsstring[]requiredcurl -X GET "https://leadtime.app/api/public/projects/a47dc37b-7693-4d06-b49c-17084b773aff/components/component-details/e57dc37b-7693-4d06-b49c-17084b773aff" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/projects/a47dc37b-7693-4d06-b49c-17084b773aff/components/component-details/e57dc37b-7693-4d06-b49c-17084b773aff", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/projects/a47dc37b-7693-4d06-b49c-17084b773aff/components/component-details/e57dc37b-7693-4d06-b49c-17084b773aff",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
){
"children": [
{
"children": [
null
],
"conditionsValid": true,
"entityUniqueId": "unique-id-123",
"icon": ":check:",
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Login Feature",
"questionsCount": 2,
"taskId": "550e8400-e29b-41d4-a716-446655440002",
"taskShortNumber": 123,
"testCasesCount": 3,
"todosCount": 5,
"type": "Epic"
}
],
"description": "<p>This module handles user authentication and authorization.</p>",
"discountAmount": 10,
"discountType": "Percentage",
"icon": "faBox",
"id": "550e8400-e29b-41d4-a716-446655440000",
"internalNote": "<p>Internal implementation notes.</p>",
"name": "User Authentication Module",
"projectId": null,
"tags": [
"authentication",
"security"
]
}