Storefront API
For custom implementations such as a headless store, we provide an API to fetch menus.
Fetch Menu Items
Endpoint
POST https://megamenu.hypaapps.com/megamenubuilder/${store_hash}/${menu_code}
Path Parameters
| Field | Type | Description |
|---|---|---|
store_hash |
string | Your BigCommerce store identifier. Typically found in the URL of your BigCommerce admin panel (e.g. store-abc123 ). |
menu_code |
string | The code for the menu. This can be found in the Settings tab when viewing a menu in the app. |
Headers
| Header | Value | Description |
|---|---|---|
Accept |
application/json |
Required header to receive a JSON response. |
No authentication is required on this endpoint as it is read-only and only contains public information.
Example Response (200 OK)
| Field | Type | Description |
|---|---|---|
data |
array | A list of Menu Items |
data.*.id |
number | The unique identifier for the menu item |
data.*.name |
string | The display name of the menu item. |
data.*.description |
string | The menu item description. Can be used for additional text to be displayed alongside the menu item link |
data.*.active |
boolean | Whether the menu item is currently active/visible in navigation. |
data.*.visibility |
string | Device visibility for the menu item. Possible values:
|
data.*.code |
string | Unique code/slug used to identify the menu item. |
data.*.url |
string | URL that the menu item links to. |
data.*.image |
string | URL of the image shown for this menu item (if any). |
data.*.image_alt |
string | null | Alternative text for the image. |
data.*.mobile_image_alt |
string | null | Alternative text for the mobile image. |
data.*.tags |
string | Optional tags associated with the menu item (comma-separated). These are classes that should be added to the menu item. These relate to the "CSS Classes" field when managing a menu item. |
data.*.has_children |
boolean | Whether this menu item has child items. |
data.*.cols |
number | null | Number of columns this menu item spans in a mega menu layout. |
data.*.rows |
number | null | The number of rows that this menu item should span. Useful in CSS Grid layouts |
data.*.wrap_content |
boolean | Whether the content of this menu item should wrap in the layout. |
data.*.customer_groups |
number[] | List of customer group IDs that can view this menu item. |
data.*.new_tab |
boolean | Whether the menu item link should open in a new tab. |
data.*.children |
MenuItem[] | Child menu items nested under this menu item (recursive). |
✅ Example Success Response
View a live response from our demo store.
{
"data": [
{
id: 1234,
name: "Outdoors",
description: null,
active: true,
visibility: "responsive",
code: "outdoors",
url: "/outdoors.html",
image: "",
image_alt: null,
mobile_image: "",
mobile_image_alt: null,
tags: "",
has_children: true,
cols: null,
rows: null,
column_design: null,
wrap_content: false,
customer_groups: [
2,
1
],
new_tab: false,
children: []
}
]
}