Configuration reference: Forum category

Embed
Preview of the card
<a href="https://forumulate.com/reference/config-forum-category"><img src="https://forumulate.com/reference/_api/public/orgs/046a9bc0-d530-43ae-9bae-af7945008cda/spaces/8042f004-e3d9-445f-b7a4-b6c1f86836e6/pages/819d0a51-9f0b-4eeb-bdda-162ef7fae118/social-card.svg?v=3e7ae33eec8b" alt="Configuration reference: Forum category" width="600" height="315"></a>

A forum category’s settings.

Where it is used: POST /orgs/{orgId}/spaces/{spaceId}/forum/categories and PATCH …/categories/{id}.

JSON Schema: https://forumulate.com/schemas/2026-12-01/forum-category.json — point your editor at it with "$schema": "https://forumulate.com/schemas/2026-12-01/forum-category.json" (JSON) or # yaml-language-server: $schema=https://forumulate.com/schemas/2026-12-01/forum-category.json (YAML), and check a whole folder with forumulate validate <dir>.

This page is generated from the schema the API validates with; it cannot describe a key the API does not take.

Casing

  • Every key in a JSON or YAML configuration document (site config, theme, forumulate.yaml, a category) is camelCase, exactly: primaryColor, footerColumns, headerLinks. primary_color and PrimaryColor are unknown keys, refused with the camelCase name in the hint. The one exception is two top-level blocks of a version-2 site manifest, which are snake_case: reader_auth (a list of sign-in configurations) and status_monitors; readerAuth is a different key there, the one-word shorthand readerAuth: atlas.

  • Front matter is the exception: a key is read in any casing (seo_title, seo-title, SeoTitle all mean seoTitle), and the names other tools use (description, sidebar_label, sidebar_position, image) are read as ours.

  • Enum values are lower-case ("wide", "system"), except space types and visibilities, which are upper-case ("DOCS", "PUBLIC").

  • Colours are #rrggbb (or #rgb); lengths that are numbers are CSS pixels.

Keys

Top-level keys and the keys one level inside them. [] marks “each item of a list”.

Key

Type

Required

What it is

aboutTopicId

string | null

allowedTags

string[]

autoCloseHours

integer | null

backgroundUrl

string | null

color

string | null

colorDark

string | null

defaultListFilter

"all" | "none" | null

defaultNotificationLevel

"watching" | "watching_first_post" | "tracking" | "normal" | "muted"

defaultSlowModeSeconds

integer | null

defaultSort

"latest" | "top" | "hot" | null

defaultTags

string[]

defaultTopPeriod

"day" | "week" | "month" | "quarter" | "year" | null

description

string

emoji

string | null

expertUserIds

string[]

icon

string | null

An icon name from GET /icons?for=header (see the HeaderIconName enum: our glyphs, the extended set and the brand marks), or an image URL (https://…, /api/assets/…, or a data: PNG/JPEG/WebP/GIF — not SVG). Any other bare word is refused.

locale

string | null

logoUrl

string | null

minimumRequiredTags

integer

name

string

yes

navigateToFirstPost

boolean | null

numFeaturedTopics

integer | null

parentId

string | null

postGuidelines

string | null

requireReplyApproval

boolean

requireTopicApproval

boolean

requiredTagGroups

object[]

requiredTagGroups[].minCount

integer

yes

requiredTagGroups[].tagGroupId

string

yes

searchPriority

"very_low" | "low" | "normal" | "high" | "very_high" | null

showSubcategoryList

boolean

slug

string

sortAscending

boolean | null

sortOrder

integer

style

"square" | "icon" | "emoji" | "none" | null

subcategoryListStyle

"rows" | "boxes" | "chips" | null

textColor

string | null

textColorDark

string | null

topicKind

"question" | "discussion" | null

topicTemplate

map | null

translations

map | null

votingEnabled

boolean | null

The Forumulate teamUpdated