Exec Knowledge Hub - Folders API

The Knowledge Hub - Folders API from Exec — 2 operation(s) for knowledge hub - folders.

OpenAPI Specification

exec-knowledge-hub-folders-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Exec Collections Knowledge Hub - Folders API
  version: '1.0'
  description: 'REST API for programmatic access to your Exec workspace.


    Use the Exec API to read workspace data, list members, retrieve group information,

    and create interactive scenario creation sessions.


    ## Authentication

    All requests require a valid API key passed in the Authorization header:

    ```

    Authorization: Bearer exec_live_...

    ```


    Create API keys in your workspace settings under **Settings > API**.

    '
servers:
- url: https://api.exec.com/rest/v1
  description: Production
security:
- bearerAuth: []
tags:
- name: Knowledge Hub - Folders
  x-group: Knowledge Hub
paths:
  /knowledge-hub/folders:
    get:
      operationId: listKnowledgeHubFolders
      summary: List folders
      description: 'Returns a paginated list of Knowledge Hub folders (also called Spaces or

        Hubs) in the workspace.


        Folders group pages and sources, and can be nested to form a hierarchy.

        Pass `parent` to list the direct children of a folder, or omit it to list

        every folder in the workspace.


        API keys are workspace-scoped and admin-created, so the response includes

        every non-archived folder regardless of its visibility scope.

        '
      tags:
      - Knowledge Hub - Folders
      parameters:
      - name: parent_id
        in: query
        description: Return only the direct children of this folder (folder UUID). Omit to list all folders.
        schema:
          type: string
      - name: query
        in: query
        description: Case-insensitive search over folder names
        schema:
          type: string
      - name: page
        in: query
        description: Pagination page number (1-indexed) — which page of results to return, not a Knowledge Hub page.
        schema:
          type: integer
          default: 1
          minimum: 1
      - name: page_size
        in: query
        description: Number of results per page (max 100)
        schema:
          type: integer
          default: 50
          minimum: 1
          maximum: 100
      responses:
        '200':
          description: Paginated list of folders
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/KnowledgeHubFolder'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
              example:
                data:
                - id: f1a2b3c4d5e6
                  name: Sales
                  emoji: 💼
                  parent: null
                  visibility: workspace
                  item_count: 12
                  subfolder_count: 3
                  created_at: '2026-05-01T09:00:00Z'
                  updated_at: '2026-05-10T10:00:00Z'
                pagination:
                  page: 1
                  page_size: 50
                  total_count: 8
                  total_pages: 1
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /knowledge-hub/folders/{folder_id}:
    get:
      operationId: getKnowledgeHubFolder
      summary: Get folder
      description: Returns a single Knowledge Hub folder by its UUID.
      tags:
      - Knowledge Hub - Folders
      parameters:
      - name: folder_id
        in: path
        required: true
        description: The folder's unique identifier (UUID)
        schema:
          type: string
      responses:
        '200':
          description: Folder detail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KnowledgeHubFolder'
              example:
                id: f1a2b3c4d5e6
                name: Sales
                emoji: 💼
                parent: null
                visibility: workspace
                item_count: 12
                subfolder_count: 3
                created_at: '2026-05-01T09:00:00Z'
                updated_at: '2026-05-10T10:00:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    ValidationErrorDetail:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: Error category (e.g., "invalid_request")
            code:
              type: string
              description: Specific error code (e.g., "user_not_found")
            message:
              type: string
              description: Human-readable error message
    KnowledgeHubFolder:
      type: object
      description: A Knowledge Hub folder (also called a Space or Hub) that groups pages and sources.
      properties:
        id:
          type: string
          description: Unique folder identifier (UUID)
        name:
          type: string
          description: Folder name
        emoji:
          type: string
          nullable: true
          description: Emoji icon shown next to the folder
        parent:
          type: string
          nullable: true
          description: UUID of the parent folder, or null for a top-level folder
        visibility:
          type: string
          enum:
          - private
          - workspace
          - global
          description: Visibility scope of the folder
        item_count:
          type: integer
          description: Number of non-archived pages directly in this folder
        subfolder_count:
          type: integer
          description: Number of direct child folders
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    Pagination:
      type: object
      properties:
        page:
          type: integer
          description: Current page number
        page_size:
          type: integer
          description: Number of items per page
        total_count:
          type: integer
          description: Total number of items
        total_pages:
          type: integer
          description: Total number of pages
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorDetail'
          example:
            error:
              type: authentication_error
              code: invalid_api_key
              message: Invalid or inactive API key
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorDetail'
          example:
            error:
              type: invalid_request
              code: invalid_pagination
              message: Invalid pagination parameters
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorDetail'
          example:
            error:
              type: not_found
              message: 'Scenario not found: abc123'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key created in Settings > API.


        Format: `exec_live_` followed by 40 alphanumeric characters.

        '