> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt ## Resource: Retrieve a Complete Menu Structure ## Article: Retrieve a Complete Menu Structure ## Article Link: https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/retrieve-a-complete-menu-structure.md ## Article Content: # Retrieve a Complete Menu Structure This article guides you through the recommended process for fetching a complete menu structure, including all sub-entities, using the [Menus API](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/introduction.md). The Wix Restaurants Menus system is organized hierarchically: menus contain sections, sections contain items, and items can have variants, modifier groups which in turn contain modifiers, and labels. ```text Menu └── Sections └── Items ├── Item Modifier Groups │ └── Item Modifiers ├── Item Labels └── Item Variants ``` To retrieve all the information for a menu and it's sub-entities, you need to follow the relationships between these entities and make multiple API calls. The end result is a complete, in-memory representation of your menu, ready for display or further processing. To retrieve an entire menu: 1. Call [List Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/menus/list-menus.md) or [Query Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/menus/query-menus.md) and record the ID of the menu you want to retrieve. 2. Call [Get Menu](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/menus/get-menu.md) with the ID from the previous step. The response includes the menu's basic information and a list of section IDs (sectionIds). 3. Call [List Sections](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/sections/list-sections.md) with the section IDs to fetch all sections in a single call. Each section contains a list of item IDs (itemIds). 4. Call [List Items](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/items/items/list-items.md) with the collected item IDs to fetch all items. 5. For each item, call the following methods as needed to retrieve sub-entities: - Call [List Variants](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/items/item-variants/list-variants.md) with the variant IDs from the item's priceVariants.variants - Call [List Modifier Groups](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/items/item-modifier-groups/list-modifier-groups.md) with the modifier group IDs from the item's modifierGroups array. - For each modifier group, call [List Modifiers](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/items/item-modifiers/list-modifiers.md) with the modifier IDs to get modifiers. - Call [List Labels](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/items/item-labels/list-labels.md) with the label IDs from the item's labels array. ## Important considerations - **Pagination**: Each List method supports pagination. For large menus, you may need to make multiple requests. - **Business locations**: Menus and sections are tied to specific business locations, while items, variants, and modifiers can be shared across locations. Pay attention to the `businessLocationId` or `businessLocationIds` fields. - **Performance optimization**: Call List or Query methods with multiple IDs instead of individual Get calls. Consider calling methods in parallel to reduce latency. - **Query API**: For some entities, you may find it more efficient to use the Query methods, such as [Query Menus](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/menus/query-menus.md), or [Query Items](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/items/items/query-items.md), with filters, especially if you need to filter based on specific criteria. ## See also - [About the Menus API](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/menus/introduction.md) - [About Business Locations](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/about-business-locations.md)