Get component library tree structure
Returns the complete hierarchical tree structure of the component library, including all components and their items.
What is the Component Library? The component library is a workspace-wide catalog of reusable component templates. These templates can be imported into projects to standardize recurring project types.
Library Components vs Project Components:
- Library Components (this endpoint): Workspace-wide templates (projectId is null) - reusable blueprints with no live data
- Project Components: Live instances in projects (projectId is set) - contain answers, evaluations, and can be connected to tasks
Component Structure:
- Components: Top-level containers (e.g., “Website Development”, “CRM Onboarding”)
- Items: Can be Epics, Work Packages, Todo Lists, or Test Suites
- Items can be nested to any depth
This endpoint provides read-only access to the workspace component library for programmatic access.
GET
/administration/project-components/library-treeAuthorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:reador
AuthorizationBearer token (JWT) · headerrequiredResponses
200
componentsComponentTreeComponentDto[]requiredList of components in the library
Show propertiesHide properties
Array of
ComponentTreeComponentDtoiconobject | nullrequiredIcon identifier for the component (nullable). Format: :icon_name: (e.g., :rocket:, :box:, :star:)
idstringrequiredUnique identifier for the component
namestringrequiredName of the component
totalTimeFramenumberrequiredTotal time frame for the component
itemsComponentTreeItemDto[]requiredList of items (Epics, Work Packages, Todo Lists, Test Suites) in the library. Items are the building blocks within components and can be nested to any depth.
Show propertiesHide properties
Array of
ComponentTreeItemDtocomponentIdstringrequiredID of the parent component
conditionsValidbooleanrequiredWhether all conditions are valid for this item
failedConditionsIdsstring[]requiredArray of failed condition IDs
iconobject | nullrequiredIcon identifier for the component item (nullable). Format: :icon_name: (e.g., :rocket:, :check:, :star:)
idstringrequiredUnique identifier for the component item
namestringrequiredName of the component item
parentIdobject | nullrequiredID of the parent item (nullable for top-level items)
totalEstimatenumberrequiredTotal time estimate for the item
typestringrequiredType of the component item. Items are the building blocks within components:
- **Epic**: Groups related work packages around a common theme
- **WorkPackage**: Self-contained task that delivers a tangible result
- **TodoList**: Checklist of sub-steps or checkpoints
- **TestSuite**: Formal acceptance tests with test cases
Allowed:
EpicWorkPackageTodoListTestSuite401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
Request
curl -X GET "https://leadtime.app/api/public/administration/project-components/library-tree" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/administration/project-components/library-tree", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/administration/project-components/library-tree",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
)Response
{
"components": [
{
"icon": ":box:",
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "User Authentication Module",
"totalTimeFrame": 40
}
],
"items": [
{
"componentId": "550e8400-e29b-41d4-a716-446655440000",
"conditionsValid": true,
"failedConditionsIds": [],
"icon": ":check:",
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Login Feature",
"parentId": null,
"totalEstimate": 20,
"type": "Epic"
}
]
}Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions