Help Center

The help center is made up of help categories (top-level groupings, e.g. "Getting Started", "Case Filing") and help topics (individual articles within a category). Topics can be restricted to specific roles.

The help category model

  • Name
    id
    Type
    string
    Description

    Unique identifier for the category.

  • Name
    name
    Type
    string
    Description

    The category's name. Must be unique. 2–1000 characters.

  • Name
    slug
    Type
    string
    Description

    Auto-generated URL slug, derived from name.

  • Name
    order
    Type
    integer
    Description

    Display order. Must be unique across categories.

The help topic model

  • Name
    id
    Type
    string
    Description

    Unique identifier for the topic.

  • Name
    title
    Type
    string
    Description

    The topic's title. Minimum 2 characters.

  • Name
    body
    Type
    string
    Description

    The topic's HTML/rich-text body. Minimum 2 characters.

  • Name
    description
    Type
    string | null
    Description

    Short summary shown in topic listings. Maximum 1000 characters.

  • Name
    help_category_id
    Type
    string
    Description

    The parent category this topic belongs to.

  • Name
    created_by
    Type
    string
    Description

    The user who authored the topic.

  • Name
    roles
    Type
    array<string> | undefined
    Description

    The roles allowed to view this topic. Only included in the API response when the requester has the Super Admin role — other requesters simply don't see topics they aren't permitted to view.


GET/api/help-categories

List help categories

Retrieve all help categories, ordered by order.

Request

GET
/api/help-categories
curl https://your-domain.com/api/help-categories \
  -H "Accept: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}"

Response

{
  "data": [
    {"id": "...", "name": "Getting Started", "slug": "getting-started", "order": 1},
    {"id": "...", "name": "Case Filing", "slug": "case-filing", "order": 2}
  ]
}

POST/api/help-categories

Create a help category

Required attributes

  • Name
    name
    Type
    string
    Description

    Must be unique. 2–1000 characters.

  • Name
    order
    Type
    integer
    Description

    Must be unique.

Request

POST
/api/help-categories
curl -X POST https://your-domain.com/api/help-categories \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}" \
  -d '{"name": "Raffling & Branch Assignment", "order": 3}'

Response

{
  "data": {
    "id": "5f6a7b8c-9d0e-1f2a-5f6a-7b8c9d0e1f2a",
    "name": "Raffling & Branch Assignment",
    "slug": "raffling-branch-assignment",
    "order": 3
  }
}

GET/api/help-topics

List help topics

Retrieve help topics visible to the authenticated user's roles.

Optional attributes

  • Name
    filter[help_category_id]
    Type
    string
    Description

    Filter to topics within a specific category.

Request

GET
/api/help-topics
curl -G https://your-domain.com/api/help-topics \
  -H "Accept: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}" \
  --data-urlencode "filter[help_category_id]=5f6a7b8c-9d0e-1f2a-5f6a-7b8c9d0e1f2a"

Response

{
  "data": [
    {
      "id": "6a7b8c9d-0e1f-2a3b-6a7b-8c9d0e1f2a3b",
      "title": "How raffling works",
      "description": "An overview of how cases are randomly assigned to branches.",
      "help_category_id": "5f6a7b8c-9d0e-1f2a-5f6a-7b8c9d0e1f2a"
    }
  ]
}

POST/api/help-topics

Create a help topic

Required attributes

  • Name
    title
    Type
    string
    Description

    Minimum 2 characters.

  • Name
    body
    Type
    string
    Description

    Minimum 2 characters.

  • Name
    help_category_id
    Type
    string
    Description

    Must reference an existing help category.

  • Name
    roles
    Type
    array
    Description

    Array of existing role ids allowed to view this topic.

Optional attributes

  • Name
    description
    Type
    string
    Description

    Maximum 1000 characters.

Request

POST
/api/help-topics
curl -X POST https://your-domain.com/api/help-topics \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}" \
  -d '{
    "title": "How raffling works",
    "body": "<p>Cases are randomly assigned...</p>",
    "help_category_id": "5f6a7b8c-9d0e-1f2a-5f6a-7b8c9d0e1f2a",
    "roles": ["role-uuid-occ", "role-uuid-bcc"]
  }'

Response

{
  "data": {
    "id": "6a7b8c9d-0e1f-2a3b-6a7b-8c9d0e1f2a3b",
    "title": "How raffling works",
    "help_category_id": "5f6a7b8c-9d0e-1f2a-5f6a-7b8c9d0e1f2a",
    "created_at": "2026-02-20T10:30:00+00:00"
  }
}

GET/api/help-center

Browse the help center

A combined, read-only view of categories with their topics nested inside — the shape used by the in-app help center UI.

Request

GET
/api/help-center
curl https://your-domain.com/api/help-center \
  -H "Accept: application/json" \
  -H "X-XSRF-TOKEN: {token}" \
  --cookie "cms_admin_session={session}"

Response

{
  "data": [
    {
      "id": "5f6a7b8c-9d0e-1f2a-5f6a-7b8c9d0e1f2a",
      "name": "Getting Started",
      "topics": [
        {"id": "6a7b8c9d-0e1f-2a3b-6a7b-8c9d0e1f2a3b", "title": "How raffling works"}
      ]
    }
  ]
}

Was this page helpful?