Get knowledge hub root nodes
Returns root-level nodes (connector apps and Collection apps) or, when filters or search are applied, a flat list of matching nodes across the entire knowledge hub tree.
Overview
The Knowledge Hub provides a unified view across all knowledge sources:
- Collection — locally uploaded knowledge bases (origin: COLLECTION)
- Connector app — external connector instances such as Google Drive, Slack, Confluence, Jira (origin: CONNECTOR)
Use this endpoint to build file-browser UIs and sidebar navigation trees.
Browsing vs. searching
When no filters or search query are provided, only top-level app nodes are returned. Adding nodeTypes, q, or other filter params triggers a search across the full tree, returning matching nodes regardless of depth.
For children of a specific node, use GET /knowledgeBase/knowledge-hub/nodes/{parentType}/{parentId}.
Pagination and sorting
Results are always paginated. Default sort is updatedAt descending. The pagination object in the response contains hasNext / hasPrev flags suitable for infinite-scroll or page-based navigation.
Expanding the response
Use the include parameter to request additional sections:
- availableFilters — adds filters.available with all filter options
- counts — adds a counts summary broken down by node type
- breadcrumbs — adds the breadcrumb trail (empty at root level)
- permissions — adds the caller's permission flags
Access control
Requires a valid bearer token. For OAuth tokens the kb:read scope must be present; regular JWT bearer tokens pass through without scope enforcement.
Query parameters
When true, only nodes that have children are returned (useful for building sidebar / tree navigation). Leaf nodes are excluded.
Page number (1-indexed). Combined with limit to paginate results.
Maximum number of items to return per page.
Field to sort results by. Omitted → default updatedAt. Unknown value → silently falls back to name.
Sort direction. Omitted → default desc. Unknown value → silently falls back to asc.
Full-text search query. Must be between 2 and 500 characters (inclusive). When provided, the endpoint searches across the entire node tree regardless of the current browse level.
Comma-separated list of node types to include. Invalid values are silently ignored. Maximum 100 items.
Valid values: folder, app, recordGroup, record
Comma-separated list of record types to include. Invalid values are silently ignored. Maximum 100 items.
Valid values: FILE, DRIVE, WEBPAGE, DATABASE, DATASOURCE, MESSAGE, MAIL, GROUP_MAIL, TICKET, COMMENT, INLINE_COMMENT, CONFLUENCE_PAGE, CONFLUENCE_BLOGPOST, SHAREPOINT_PAGE, SHAREPOINT_LIST, SHAREPOINT_LIST_ITEM, SHAREPOINT_DOCUMENT_LIBRARY, LINK, PROJECT, PULL_REQUEST, MEETING, PRODUCT, DEAL, CASE, TASK, ARTIFACT, CODE_FILE, SQL_TABLE, SQL_VIEW, OTHERS
Comma-separated list of origin types to include. Invalid values are silently ignored. Maximum 100 items.
Valid values: COLLECTION, CONNECTOR
Comma-separated list of connector instance IDs (UUIDs) to filter by. Maximum 100 items. No enum validation — any string is accepted, but non-existent IDs simply yield zero results.
Comma-separated list of indexing statuses to include. Invalid values are silently ignored. Maximum 100 items.
Valid values: NOT_STARTED, PAUSED, IN_PROGRESS, COMPLETED, FAILED, FILE_TYPE_NOT_SUPPORTED, AUTO_INDEX_OFF, EMPTY, ENABLE_MULTIMODAL_MODELS, QUEUED
Created-date range filter. Format: gte:<epochMs>,lte:<epochMs>. Both bounds are optional (you may send just gte:... or just lte:...). Timestamps must be in the range 0 to 9999999999999 and gte must be less than or equal to lte when both are present.
Updated-date range filter. Same format and constraints as createdAt.
File-size range filter in bytes. Format: gte:<bytes>,lte:<bytes>. Both bounds are optional. Values must be non-negative and at most 1099511627776 (1 TB). gte must be less than or equal to lte when both are present.
Comma-separated list of additional response sections to include. Invalid values are silently ignored. Maximum 100 items.
Valid values: breadcrumbs, counts, availableFilters, permissions
Response
Paginated list of root hub nodes (connector apps and Collections). HTTP 200 returns success: true and error: null. Field-level detail and required keys are defined on KnowledgeHubNodesResponse.
Use include for optional sections: availableFilters, counts, permissions — each stays JSON null when not asked for. breadcrumbs stays null at this route (no parent in the path), even if include lists breadcrumbs; use the child route for trails. id, currentNode, and parentNode are null here.