FeatureFlag
A request or response body; the type column links to the schemas it refers to.
FeatureFlag
| Field | Type | Required | Description |
|---|---|---|---|
| feature | string | yes | A feature of the deployment's catalogue, as listed by `GET /api/feature-flags`. one of "quizzes" | "scorm_courses" | "job_aids" | "training_events" | "learning_pathways" | "qr_codes" | "external_lms" | "support_page" | "forums" |
| label | string | yes | The feature's name, as the admin page shows it. |
| description | string | yes | What the feature covers. |
| state | string | yes | `enabled`: shown and working everywhere. `hidden`: left out of the sidebar and the dashboards, but its pages and endpoints keep working for anyone with the address. `disabled`: off — its pages answer 404, its endpoints answer 404 with the error `feature_disabled`, and it is left out of navigation, search and the calendar. Nothing is deleted; switching it back on brings everything back. one of "enabled" | "hidden" | "disabled" |
| default_state | string | yes | The state the feature has until a superuser sets one: `enabled` for most features, `disabled` for those a deployment switches on deliberately (the forums). one of "enabled" | "hidden" | "disabled" |
| updated_at | string (date-time) | null | yes | When a superuser last changed the state, or null while it has never been set. |
{
"feature": "quizzes",
"label": "Quizzes",
"description": "Quizzes and question banks: assigning them, live sittings, attempts and grading.",
"state": "disabled",
"default_state": "enabled",
"updated_at": "2026-01-01T00:00:00.000Z"
}