Choose which browse layouts this install offers
PATCH /admin/system/browse-views
Replaces the enabled set. Requires the system.config.write
capability. The change takes effect on the next request without
a restart, and is recorded as an
admin.system.browse_views_updated audit event.
AT LEAST ONE LAYOUT MUST STAY ENABLED. An empty array is refused with a 400 and nothing is persisted — the same shape as the last-admin invariant, and for the same reason: an install with no enabled layout has an unreachable browse page and no recovery path short of a database shell. Unknown layout names are refused too, rather than filtered out, so a typo cannot quietly save a smaller set than the operator chose.
Disabling a layout somebody is already using is safe. Every rung that can name a mode — this device’s stored choice, the account default, the coarse-pointer default — is filtered through the enabled set at resolve time, so those users land on an enabled layout instead of an empty page.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
The browse layouts this install offers, in the switcher’s canonical order. The server reorders whatever it is sent into that order and drops duplicates, so layout order stays a frontend decision and only availability is the operator’s.
MUST NOT BE EMPTY. A write enabling nothing is refused with a 400 and nothing is persisted — an install offering no layout has an unreachable browse page, and the recovery path would be a database shell.
An install that has never configured this reads back all five. That is the shipped default expressed as the absence of a stored value, not as a seeded row.
Example
[ "grid", "list", "feed"]Responses
Section titled “ Responses ”The updated enabled layouts, in canonical order
object
The browse layouts this install offers, in the switcher’s canonical order. The server reorders whatever it is sent into that order and drops duplicates, so layout order stays a frontend decision and only availability is the operator’s.
MUST NOT BE EMPTY. A write enabling nothing is refused with a 400 and nothing is persisted — an install offering no layout has an unreachable browse page, and the recovery path would be a database shell.
An install that has never configured this reads back all five. That is the shipped default expressed as the absence of a stored value, not as a seeded row.
Example
[ "grid", "list", "feed"]Malformed request
object
Human-readable error summary
Example
the request could not be completedAuthentication required, missing, or invalid
object
Human-readable error summary
Example
the request could not be completedExample
{ "error": "authentication required: sign in and retry with a valid session or API token"}Authenticated but missing required capabilities
object
Human-readable error summary
Example
the request could not be completed