Skip to main content
Search

Get Public Help Center Tree

GET /api/v1/public/help-centers/{slug}/tree

Authentication

This endpoint needs no authentication.

Parameters

Name Location Type Required Description
slug path string Yes Help center slug.
locale query string No Locale code. Falls back to the help center's default locale when missing or not allowed.

Responses

200

Published collections and articles of an active help center

Content type: application/json.

Field Type Required Description
status string No example: "success"
data object No
data.help_center object No
data.help_center.id integer No example: 1
data.help_center.created_at string (date-time) No example: "2025-08-28T10:00:00Z"
data.help_center.updated_at string (date-time) No example: "2025-08-28T10:00:00Z"
data.help_center.name string No example: "Help center"
data.help_center.slug string No example: "help"
data.help_center.page_title string No example: "Help center"
data.help_center.meta_description string No example: ""
data.help_center.custom_css string No example: ""
data.help_center.custom_js string No example: ""
data.help_center.default_locale string No example: "en"
data.help_center.allowed_locales array of string No example: ["en"]
data.help_center.allowed_locales[] string
data.help_center.is_active boolean No example: true
data.help_center.theme object No Help center theme settings.
data.help_center.custom_domain string No example: ""
data.help_center.template string No example: "classic"
data.tree array of object No
data.tree[].id integer No example: 1
data.tree[].created_at string (date-time) No example: "2025-08-28T10:00:00Z"
data.tree[].updated_at string (date-time) No example: "2025-08-28T10:00:00Z"
data.tree[].help_center_id integer No example: 1
data.tree[].slug string No example: "account"
data.tree[].parent_id integer No nullable: true
data.tree[].locale string No example: "en"
data.tree[].name string No example: "Account"
data.tree[].description string No example: ""
data.tree[].icon string No example: ""
data.tree[].sort_order integer No example: 0
data.tree[].is_published boolean No example: true
data.tree[].articles array of object No
data.tree[].articles[].id integer No example: 1
data.tree[].articles[].created_at string (date-time) No example: "2025-08-28T10:00:00Z"
data.tree[].articles[].updated_at string (date-time) No example: "2025-08-28T10:00:00Z"
data.tree[].articles[].collection_id integer No example: 1
data.tree[].articles[].author_id integer No nullable: true
data.tree[].articles[].author_name string No nullable: true
data.tree[].articles[].author_avatar string No nullable: true
data.tree[].articles[].created_by integer No nullable: true
data.tree[].articles[].created_by_name string No nullable: true
data.tree[].articles[].slug string No example: "reset-password"
data.tree[].articles[].locale string No example: "en"
data.tree[].articles[].title string No example: "Reset your password"
data.tree[].articles[].content string No example: "<p>...</p>"
data.tree[].articles[].excerpt string No example: ""
data.tree[].articles[].meta_title string No example: ""
data.tree[].articles[].meta_description string No example: ""
data.tree[].articles[].meta_image_url string No example: ""
data.tree[].articles[].sort_order integer No example: 0
data.tree[].articles[].status string No example: "published"
data.tree[].articles[].view_count integer No example: 0
data.tree[].articles[].ai_enabled boolean No example: false
data.tree[].articles[].helpful_count integer No example: 0
data.tree[].articles[].not_helpful_count integer No example: 0
data.tree[].children array of object No
data.tree[].children[] object Recursive schema: #/components/schemas/HelpCenterTreeCollection
data.tree[].article_count integer No example: 3
data.tree[].authors array of object No
data.tree[].authors[].name string No example: "Agent A"
data.tree[].authors[].avatar string No example: ""
data.tree[].author_count integer No example: 1

404

Not found

Content type: application/json.

Field Type Required Description
status string No example: "error"
message string No Error message example: "Invalid request"
data unspecified No Additional error data nullable: true
error_type string (enum) No enum: ["GeneralException", "PermissionException", "InputException", "DataException", "NetworkException", "NotFoundException", "ConflictException", "UnauthorizedException", "RateLimitException"]

429

Rate limit exceeded

Content type: application/json.

Field Type Required Description
status string No example: "error"
message string No Error message example: "Invalid request"
data unspecified No Additional error data nullable: true
error_type string (enum) No enum: ["GeneralException", "PermissionException", "InputException", "DataException", "NetworkException", "NotFoundException", "ConflictException", "UnauthorizedException", "RateLimitException"]

500

Internal server error

Content type: application/json.

Field Type Required Description
status string No example: "error"
message string No Error message example: "Invalid request"
data unspecified No Additional error data nullable: true
error_type string (enum) No enum: ["GeneralException", "PermissionException", "InputException", "DataException", "NetworkException", "NotFoundException", "ConflictException", "UnauthorizedException", "RateLimitException"]

Specification

Download the complete OpenAPI specification.

OpenAPI definition for this endpoint
openapi: 3.0.0
info:
  title: Libredesk API
  description: >-
    REST API documentation for Libredesk helpdesk system.


    ## Authentication


    The Libredesk API supports two authentication methods:


    ### 1. Basic Authentication

    Use your API key and secret with Basic authentication:

    ```

    Authorization: Basic <base64_encoded_api_key:api_secret>

    ```


    ### 2. Token Authentication  

    Use your API key and secret with token authentication:

    ```

    Authorization: token api_key:api_secret

    ```


    To obtain API credentials, generate them from your agent profile in the
    Libredesk dashboard.
  version: 1.0.0
servers:
  - url: http://localhost:8080
    description: Local development server
security:
  - basicAuth: []
  - tokenAuth: []
paths:
  /api/v1/public/help-centers/{slug}/tree:
    get:
      tags:
        - Help center
      summary: Get Public Help Center Tree
      operationId: handleGetPublicHelpCenterTree
      parameters:
        - name: slug
          in: path
          required: true
          schema:
            type: string
          description: Help center slug.
        - name: locale
          in: query
          required: false
          schema:
            type: string
          description: >-
            Locale code. Falls back to the help center's default locale when
            missing or not allowed.
      responses:
        '200':
          description: Published collections and articles of an active help center
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HelpCenterTreeResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security: []
components:
  schemas:
    HelpCenterTreeResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        data:
          $ref: '#/components/schemas/HelpCenterTree'
    ErrorResponse:
      type: object
      description: Error response format
      properties:
        status:
          type: string
          example: error
        message:
          type: string
          description: Error message
          example: Invalid request
        data:
          nullable: true
          description: Additional error data
        error_type:
          type: string
          enum:
            - GeneralException
            - PermissionException
            - InputException
            - DataException
            - NetworkException
            - NotFoundException
            - ConflictException
            - UnauthorizedException
            - RateLimitException
    HelpCenterTree:
      type: object
      properties:
        help_center:
          $ref: '#/components/schemas/HelpCenter'
        tree:
          type: array
          items:
            $ref: '#/components/schemas/HelpCenterTreeCollection'
    HelpCenter:
      type: object
      properties:
        id:
          type: integer
          example: 1
        created_at:
          type: string
          format: date-time
          example: '2025-08-28T10:00:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2025-08-28T10:00:00Z'
        name:
          type: string
          example: Help center
        slug:
          type: string
          example: help
        page_title:
          type: string
          example: Help center
        meta_description:
          type: string
          example: ''
        custom_css:
          type: string
          example: ''
        custom_js:
          type: string
          example: ''
        default_locale:
          type: string
          example: en
        allowed_locales:
          type: array
          items:
            type: string
          example:
            - en
        is_active:
          type: boolean
          example: true
        theme:
          type: object
          description: Help center theme settings.
        custom_domain:
          type: string
          example: ''
        template:
          type: string
          example: classic
    HelpCenterTreeCollection:
      type: object
      properties:
        id:
          type: integer
          example: 1
        created_at:
          type: string
          format: date-time
          example: '2025-08-28T10:00:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2025-08-28T10:00:00Z'
        help_center_id:
          type: integer
          example: 1
        slug:
          type: string
          example: account
        parent_id:
          type: integer
          nullable: true
        locale:
          type: string
          example: en
        name:
          type: string
          example: Account
        description:
          type: string
          example: ''
        icon:
          type: string
          example: ''
        sort_order:
          type: integer
          example: 0
        is_published:
          type: boolean
          example: true
        articles:
          type: array
          items:
            $ref: '#/components/schemas/HelpCenterArticle'
        children:
          type: array
          items:
            $ref: '#/components/schemas/HelpCenterTreeCollection'
        article_count:
          type: integer
          example: 3
        authors:
          type: array
          items:
            $ref: '#/components/schemas/HelpCenterArticleAuthor'
        author_count:
          type: integer
          example: 1
    HelpCenterArticle:
      type: object
      properties:
        id:
          type: integer
          example: 1
        created_at:
          type: string
          format: date-time
          example: '2025-08-28T10:00:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2025-08-28T10:00:00Z'
        collection_id:
          type: integer
          example: 1
        author_id:
          type: integer
          nullable: true
        author_name:
          type: string
          nullable: true
        author_avatar:
          type: string
          nullable: true
        created_by:
          type: integer
          nullable: true
        created_by_name:
          type: string
          nullable: true
        slug:
          type: string
          example: reset-password
        locale:
          type: string
          example: en
        title:
          type: string
          example: Reset your password
        content:
          type: string
          example: <p>...</p>
        excerpt:
          type: string
          example: ''
        meta_title:
          type: string
          example: ''
        meta_description:
          type: string
          example: ''
        meta_image_url:
          type: string
          example: ''
        sort_order:
          type: integer
          example: 0
        status:
          type: string
          example: published
        view_count:
          type: integer
          example: 0
        ai_enabled:
          type: boolean
          example: false
        helpful_count:
          type: integer
          example: 0
        not_helpful_count:
          type: integer
          example: 0
    HelpCenterArticleAuthor:
      type: object
      properties:
        name:
          type: string
          example: Agent A
        avatar:
          type: string
          example: ''
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Basic authentication using base64 encoded API key and secret. Format:
        `Authorization: Basic <base64(api_key:api_secret)>`
    tokenAuth:
      type: apiKey
      name: Authorization
      in: header
      description: >-
        Token authentication using API key and secret. Format: `Authorization:
        token api_key:api_secret`

Was this article helpful?