About Menus

With the Menus API you can display restaurant menus on your site.

Menus are divided by sections, such as "Appetizers", "Mains", "Desserts", "Drinks" and so on. The sections contains dishes (or items) with their labels and price variants. Additionally, you can upgrade your menu by adding item modifier groups, such as "Extra Toppings" or "Sides".

With the Menus API, you can:

  • Create, delete, and update menus.
  • Retrieve the information about menu.

Before you begin

It's important to note the following point before starting to code:

  • The Menus API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Use cases

Terminology

Menu: A list of food and beverage items available for purchase at a restaurant, café, or other dining establishment.

Did this help?

Menu: Sample Use Cases & Flows

This article presents possible use cases and corresponding sample flows that your app can support. It provides a useful starting point as you plan your app's implementation.

Sync pizza menus across all sites

If you have several pizzeria sites that use your app you might need to sync menu across those sites. For example, if there's a completely new menu called "Build-Your-Own-Pizza", this change also needs to be reflected on other sites.

To sync the pizza menu across all sites:

  1. Call Get Menu on the site where you created a new menu.
  2. Extract the whole menu object.
  3. Call Create Menu for your other sites and pass the new menu to each.
Did this help?

Menu: Supported Filters and Sorting

The following table shows field support for filters and sorting for the menu object:

FieldSupported FiltersSortable
id$eq, $ne, $in, $ninSortable
createdDate$eq, $ne, $gt, $lt, $gte, $lteSortable
updatedDate$eq, $ne, $gt, $lt, $gte, $lteSortable
name$eq, $ne, $in, $nin, $beginsSortable
description$eq, $ne, $in, $nin, $empty, $beginsSortable
urlQueryParam$eq, $ne, $in, $nin, $beginsSortable
sectionIds$hasSomeSortable

Related content: API Query Language, Query Menus.

Did this help?


GET

List Menus


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Note: The Menu API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Retrieves a list of up to 500 menus.

Permissions
Manage Bookings Services and Settings
Manage Portfolio
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/restaurants/menus-menu/v1/menus

Query Params
menuIdsArray <string>

Menu IDs.


paging.limitintegerminimum 0maximum 500format int32

Number of items to load.


paging.cursorstring

Pointer to the next or previous page in the list of results.

You can get the relevant cursor token from the pagingMetadata object in the previous call's response. Not relevant for the first request.

Response Object
menusArray <Menu>

Retrieved menus.


pagingMetadataPagingMetadata

The metadata of the paginated results.

List Menus
Request
cURL
curl -X GET 'https://www.wixapis.com/restaurants/menus-menu/v1/menus' \ -H 'Authorization: <AUTH>' \
Response
JSON
{ "menus": [ { "id": "bbb65621-6338-4837-8fdd-aebc654523e0", "revision": "2", "createdDate": "2023-10-15T09:27:01.640Z", "updatedDate": "2023-10-15T09:27:01.640Z", "name": "Dinner Menu", "description": "", "visible": true, "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8", "9ea7135d-c232-437f-a9c3-33dd87265542", "be9330c1-c3c0-4f76-96cc-b69eac8d88da", "70f12b79-cd30-4750-91ab-1021a16cbbfa" ], "urlQueryParam": "dinner-menu" } ], "pagingMetadata": { "count": 1, "cursors": {}, "hasNext": false } }
Did this help?

POST

Create Menu


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Note: The Menus API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Creates a menu.

To create multiple menus at once, use Bulk Create Menus.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/restaurants/menus-menu/v1/menus

Body Params
menuMenuRequired

Menu details.

Response Object
menuMenu

Menu.

Create Menu
Request
cURL
curl -X POST 'https://www.wixapis.com/restaurants/menus-menu/v1/menus' \ -H 'Authorization: <AUTH>' \ --data-binary '{ "menu": { "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8", "70f12b79-cd30-4750-91ab-1021a16cbbfa" ], "name": "Breakfast Menu", "description": "Served between 09:00-11:00h" } "urlQueryParam": "breakfast-menu" }'
Response
JSON
{ "menu": { "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8", "70f12b79-cd30-4750-91ab-1021a16cbbfa" ], "id": "e11f38cf-0f11-4484-ba44-5b1746aacad0", "name": "Breakfast Menu", "description": "Served between 09:00-11:00h" } }
Event TriggersThis method triggers the following events:
Did this help?

POST

Bulk Create Menus


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Note: The Menu API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Creates multiple menus at once.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/restaurants/menus-menu/v1/bulk/menus/create

Body Params
menusArray <Menu>RequiredmaxItems 100

Menu details.


returnEntityboolean

Whether to receive the created menus in the response.

Response Object
resultsArray <BulkCreateMenuResult>

Information about the created menus.


bulkActionMetadataBulkActionMetadata

Metadata for the API call.

Bulk Create Menus
Request
cURL
curl -X POST 'https://www.wixapis.com/restaurants/menus-menu/v1/bulk/menus/create' \ -H 'Authorization: <AUTH>' \ --data-binary '{ "menus": [ { "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8", "be9330c1-c3c0-4f76-96cc-b69eac8d88da" ], "name": "Dinner Menu" }, { "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8" ], "name": "Breakfast Menu" } ], "returnEntity": true }'
Response
JSON
{ "results": [ { "menuMetadata": { "id": "bbb65621-6338-4837-8fdd-aebc654e2361", "originalIndex": 0, "success": true }, "menu": { "id": "bbb65621-6338-4837-8fdd-aebc654e2361", "revision": "1", "createdDate": "2024-01-14T16:22:43.759Z", "updatedDate": "2024-01-14T16:22:43.759Z", "name": "Dinner Menu", "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8", "be9330c1-c3c0-4f76-96cc-b69eac8d88da" ] } }, { "menuMetadata": { "id": "e11f38cf-0f11-4484-ba44-5b1746aaea50", "originalIndex": 1, "success": true }, "menu": { "id": "e11f38cf-0f11-4484-ba44-5b1746aaea50", "revision": "1", "createdDate": "2024-01-14T16:22:43.759Z", "updatedDate": "2024-01-14T16:22:43.759Z", "name": "Breakfast Menu", "sectionIds": ["a1e247ea-0c57-498e-a9be-4044ed48bda8"] } } ], "bulkActionMetadata": { "totalSuccesses": 2, "totalFailures": 0, "undetailedFailures": 0 } }
Event TriggersThis method triggers the following events:
Did this help?

GET

Get Menu


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Note: The Menu API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Retrieve a menu by ID.

Permissions
Manage Bookings Services and Settings
Manage Portfolio
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
GET
https://www.wixapis.com/restaurants/menus-menu/v1/menus/{menuId}

Path Params
menuIdstringRequired

Menu ID.

Response Object
menuMenu

Menu.

Get Menu
Request
cURL
curl -X GET 'https://www.wixapis.com/restaurants/menus-menu/v1/menus/e11f38cf-0f11-4484-ba44-5b1746aacad0' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "menu": { "id": "e11f38cf-0f11-4484-ba44-5b1746aacad0", "revision": "1", "createdDate": "2024-01-14T15:26:45.192Z", "updatedDate": "2024-01-14T15:26:45.192Z", "name": "Breakfast Menu", "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8", "70f12b79-cd30-4750-91ab-1021a16cbbfa" ], "urlQueryParam": "breakfast-menu" } }
Did this help?

DELETE

Delete Menu


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Note: The Menu API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Deletes a menu.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
DELETE
https://www.wixapis.com/restaurants/menus-menu/v1/menus/{menuId}

Path Params
menuIdstringRequired

Menu ID.

Response Object
Returns an empty object.
Delete Menu
Request
cURL
curl -X DELETE 'https://www.wixapis.com/restaurants/menus-menu/v1/menus/e11f38cf-0f11-4484-ba44-5b1746aacad0' \ -H 'Authorization: <AUTH>' \
Response
JSON
{}
Event TriggersThis method triggers the following events:
Did this help?

POST

Query Menus


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Note: The Menu API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Retrieves a list of menus given the provided paging, filtering, and sorting. Up to 500 menus can be returned per request.

For a detailed list of supported operations, see the Supported Filters and Sorting article. To learn how to query menus, see API Query Language.

Permissions
Manage Bookings Services and Settings
Manage Portfolio
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/restaurants/menus-menu/v1/menus/query

Body Params
queryQuery

Query options.

Response Object
menusArray <Menu>

Retrieved menus.


pagingMetadataPagingMetadata

The metadata of the paginated results.

Query Menus
Request
cURL
curl -X POST https://www.wixapis.com/restaurants/menus-item/v1/items/query \ -H 'Authorization: <AUTH>' --data-binary '{ "query": { "sort": [], "filter": { "sectionIds": { "$hasSome": "a1e247ea-0c57-498e-a9be-4044ed48bda8" } } } }'
Response
JSON
{ "menus": [ { "id": "bbb65621-6338-4837-8fdd-aebc65452011", "revision": "1", "createdDate": "2024-01-14T16:17:46.504Z", "updatedDate": "2024-01-14T16:17:46.504Z", "name": "Dinner Menu", "description": null, "visible": null, "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8", "be9330c1-c3c0-4f76-96cc-b69eac8d88da" ], "extendedFields": null, "urlQueryParam": null }, { "id": "bbb65621-6338-4837-8fdd-aebc65452311", "revision": "1", "createdDate": "2024-01-14T16:12:33.374Z", "updatedDate": "2024-01-14T16:12:33.374Z", "name": "Dinner Menu", "description": null, "visible": null, "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8", "be9330c1-c3c0-4f76-96cc-b69eac8d88da" ], "extendedDields": null, "urlQueryParam": null } ], "pagingMetadata": { "count": 2, "cursors": { "next": null, "prev": null }, "hasNext": false } }
Did this help?

PATCH

Update Menu


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Note: The Menu API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Updates a menu.

To update multiple menus at once, use Bulk Update Menu.

Each time a menu is updated, revision increments by 1. The existing revision must be included when updating a menu. This ensures you're working with the latest menu information, and it prevents unintended overwrites.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
PATCH
https://www.wixapis.com/restaurants/menus-menu/v1/menus/{menu.id}

Path Params
menu.idstringRequired

Menu ID.

Body Params
menuMenuRequired

Menu to update.

Response Object
menuMenu

Updated menu.

Update Menu
Request
cURL
curl -X PATCH "https://www.wixapis.com/restaurants/menus-menu/v1/menus/e11f38cf-0f11-4484-ba44-5b1746aacad0" \ -H 'Authorization: <AUTH>' \ --data-binary '{ "menu": { "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8" ], "id": "e11f38cf-0f11-4484-ba44-5b1746aacad0", "name": "Brunch", "revision": "2" }, "mask": { "paths": [ "name", "sectionIds" ] } }'
Response
JSON
{ "menu": { "id": "e11f38cf-0f11-4484-ba44-5b1746aacad0", "revision": "3", "createdDate": "2024-01-14T15:26:45.192Z", "updatedDate": "2024-01-14T15:59:48.777Z", "name": "Brunch", "sectionIds": ["a1e247ea-0c57-498e-a9be-4044ed48bda8"], "urlQueryParam": "brunch-menu" } }
Event TriggersThis method triggers the following events:
Did this help?

POST

Bulk Update Menu


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Note: The Menu API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Updates multiple menus at once.

Each time a menu is updated, revision increments by 1. The existing revision must be included when updating the menu. This ensures you're working with the latest menu information, and it prevents unintended overwrites.

Authentication

You can only call this method when authenticated as a Wix app or Wix user identity.

Permissions
Manage Restaurants - all permissions
Learn more about app permissions.
Endpoint
POST
https://www.wixapis.com/restaurants/menus-menu/v1/bulk/menus/update

Body Params
menusArray <MaskedMenu>RequiredminItems 1maxItems 100

Menus to update.


returnEntityboolean

Whether to receive the entity in the response.

Response Object
resultsArray <BulkMenuResult>minItems 1maxItems 100

Results of bulk menu update.


bulkActionMetadataBulkActionMetadata

Metadata for the API call.

Bulk Update Menus
Request
cURL
curl -X POST 'https://www.wixapis.com/restaurants/menus-menu/v1/bulk/menus/update' \ -H 'Authorization: <AUTH> \ --data-binary '{ "menus": [ { "menu": { "sectionIds": [ "a1e247ea-0c57-498e-a9be-4044ed48bda8" ], "id": "bbb65621-6338-4837-8fdd-aebc654e2311", "revision": "2", "name": "Dinner Menu" }, "mask": { "paths": [ "sectionIds" ] } }, { "menu": { "sectionIds": [], "id": "e11f38cf-0f11-4484-ba44-5b1746aaea20", "revision": "2", "name": "Brunch Menu" }, "mask": { "paths": [ "name" ] } } ], "returnEntity": true }'
Response
JSON
{ "results": [ { "menuMetadata": { "id": "bbb65621-6338-4837-8fdd-aebc654e2311", "originalIndex": 0, "success": true }, "menu": { "id": "bbb65621-6338-4837-8fdd-aebc654e2311", "revision": "4", "createdDate": "2024-01-14T16:18:23.418Z", "updatedDate": "2024-01-14T16:26:33.470Z", "name": "Dinner Menu", "sectionIds": ["a1e247ea-0c57-498e-a9be-4044ed48bda8"] } }, { "menuMetadata": { "id": "e11f38cf-0f11-4484-ba44-5b1746aaea20", "originalIndex": 1, "success": true }, "menu": { "id": "e11f38cf-0f11-4484-ba44-5b1746aaea20", "revision": "4", "createdDate": "2024-01-14T16:18:23.418Z", "updatedDate": "2024-01-14T16:26:33.473Z", "name": "Brunch Menu", "sectionIds": ["a1e247ea-0c57-498e-a9be-4044ed48bda8"] } } ], "bulkActionMetadata": { "totalSuccesses": 2, "totalFailures": 0, "undetailedFailures": 0 } }
Did this help?

POST

Update Extended Fields


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Note: The Menu API only works with the Wix Restaurants Menus (New) app. Make sure you have installed this app from Wix App Market.

Updates only the extendedFields field.

Updates only the extendedFields field.

Endpoint
POST
https://www.wixapis.com/restaurants/menus-menu/v1/menus/{id}/updateExtendedFields

Path Params
idstringRequired

ID of the entity to update.

Body Params
namespacestringRequired

Identifier for the app whose extended fields are being updated.


namespaceDatastructRequired

Data to update. Structured according to the schema defined when the extended fields were configured.

Response Object
namespacestring

Namespace of the app.


namespaceDatastruct

Updated extended fields data.

Update Extended Fields
Request
cURL
curl -X POST https://www.wixapis.com/restaurants/menus-menu/v1/menus/d819eb86-0181-4f67-a383-ae1683e9e2fc/updateExtendedFields \ -H 'Content-Type: application/json;charset=UTF-8' \ -H 'Authorization: <AUTH>' --data-binary '{ "namespace": "@restaurants/menus", "namespace_data": { "seoData": { "tags": [ { "props": { "content": "123", "name": "description" }, "type": "meta" }, { "children": "1", "type": "title" } ] } } }'
Response
JSON
{ "namespace": "@restaurants/menus", "namespaceData": { "seoData": { "tags": [ { "type": "meta", "props": { "name": "description", "content": "123" } }, { "type": "title", "children": "1" } ] } } }
Did this help?