## Definition

A _menu_ defines a tree structure of menu items, which are composed of a text label, a link, and optionally a map of properties (key-value pairs) that can be used to generate various kinds of navigation menus. This can be used to define data for top-navigation, side-navigation, or other similar hierarchies of internal document links or external web links.

The main [menu endpoint](🔗) in the [Site Management API](🔗) treats a menu structure as a single entity and only manages the top-level menu.

At API level, a menu is therefore represented by a single string holding its name:

There is a [specific endpoint](🔗) to manage the nested items of a menu, although they can also be managed by site editors in the _Experience manager_ app.

The API represents a list of top-level menu items (which contain nested items themselves):

There is [another endpoint](🔗) to manage the prototype properties of a menu. When using the API, each item directly specifies its properties, however, items created through the _Experience manager_, are initialized with the properties from the prototype.

The format of these properties is a map of property name and value.

## Operations

Developers can retrieve a list of menus, retrieve the name of a menu, create a menu, and delete a menu. They can also edit the prototype properties of a menu, or its items.

See [Channel Menu Operations](🔗) in the Site Management API reference documentation for a list of operations.

You can find examples of using the menu endpoints in the [Postman collection](🔗).