Skip to main content
PUT
Update Menu

Update Menu

Updates an existing navigation menu. Only the fields you supply are changed; everything else is left intact. The request body may be sent flat or wrapped in a menu object.

Request

Path Parameters

id
string
required
The unique menu ID (UUID) to update

Body Parameters

All parameters are optional. Only provided fields are updated. Fields may be sent flat (as below) or nested under a top-level menu object.
name
string
Menu name
handle
string
URL-safe handle
slug
string
URL-safe slug
url
string
Destination URL for this menu item
menuType
string
Where the menu is used (e.g. header, footer)
menuItemType
string
Item resource type (e.g. page, product, category, customized)
child
array
Array of nested child menu-item objects (stored as JSON)
selected
boolean
Whether the menu item is enabled
depth
integer
Nesting depth (0 for top level)
order
integer
Sort order within its level
parentId
string
Parent menu ID, or null for a top-level item
productId
string
Linked product ID, when menuItemType is product
categoryId
string
Linked category ID, when menuItemType is category
pageId
string
Linked page ID, when menuItemType is page

Response

Returns the standard envelope (status, state, message, data, count, pagination) with the updated menu nested under data.menu.

Example Response

Error Response

When the menu does not exist, the endpoint returns the standard envelope with an error state:

Notes

  • Changing the handle may affect theme templates that reference menus by handle.

Error Codes

HTTP StatusDescription
401Invalid or missing access token
403App doesn’t have write_content scope
404Menu with the specified ID does not exist