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:

responsive desktop-only mobile-only

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: []
    }
  ]
} 
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us