---
title: "Update Menu Layout"
method: PUT
path: "/cabinet/admin/menu-layout"
tags: ["Admin Menu Layout"]
---

# Update Menu Layout

`PUT /cabinet/admin/menu-layout`

Save full menu layout config. Splits into layout + button styles. Admin only.

## Request body

- MenuConfigUpdateRequest — Full menu configuration submitted by the frontend.
  - `rows` RowConfig[], required
    - `id` string, required
    - `max_per_row` integer
    - `buttons` ButtonConfig[]
      - `id` string, required
      - `type` 'builtin' | 'custom', required
      - `style` string
      - `icon_custom_emoji_id` string
      - `enabled` boolean
      - `labels` object
      - `url` string, nullable
      - `open_in` 'external' | 'webapp'

## Response `200`

Successful Response

- MenuConfigResponse — Full merged menu configuration returned to the frontend.
  - `rows` RowConfig[], required
    - `id` string, required
    - `max_per_row` integer
    - `buttons` ButtonConfig[]
      - `id` string, required
      - `type` 'builtin' | 'custom', required
      - `style` string
      - `icon_custom_emoji_id` string
      - `enabled` boolean
      - `labels` object
      - `url` string, nullable
      - `open_in` 'external' | 'webapp'

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/bedolagam/apis/remnawave-bot-admin-api.md) · [All operations](https://skmtc.net/bedolagam/apis/remnawave-bot-admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bedolagam/remnawave-bot-admin-api/revisions/45956d1b13ec/schema)
