Skip to main content
Search

Get Public Help Center Article

GET /api/v1/public/help-centers/{slug}/articles/{article_slug}

Authentication

This endpoint needs no authentication.

Parameters

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

Responses

200

Published article retrieved successfully

Content type: application/json.

Field Type Required Description
status string No example: "success"
data object No
data.id integer No example: 1
data.created_at string (date-time) No example: "2025-08-28T10:00:00Z"
data.updated_at string (date-time) No example: "2025-08-28T10:00:00Z"
data.collection_id integer No example: 1
data.author_id integer No nullable: true
data.author_name string No nullable: true
data.author_avatar string No nullable: true
data.created_by integer No nullable: true
data.created_by_name string No nullable: true
data.slug string No example: "reset-password"
data.locale string No example: "en"
data.title string No example: "Reset your password"
data.content string No example: "<p>...</p>"
data.excerpt string No example: ""
data.meta_title string No example: ""
data.meta_description string No example: ""
data.meta_image_url string No example: ""
data.sort_order integer No example: 0
data.status string No example: "published"
data.view_count integer No example: 0
data.ai_enabled boolean No example: false
data.helpful_count integer No example: 0
data.not_helpful_count integer No example: 0

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}/articles/{article_slug}:
    get:
      tags:
        - Help center
      summary: Get Public Help Center Article
      operationId: handleGetPublicHelpCenterArticle
      parameters:
        - name: slug
          in: path
          required: true
          schema:
            type: string
          description: Help center slug.
        - name: article_slug
          in: path
          required: true
          schema:
            type: string
          description: Article 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 article retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HelpCenterArticleResponse'
        '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:
    HelpCenterArticleResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        data:
          $ref: '#/components/schemas/HelpCenterArticle'
    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
    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
  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?