GET Categories and their Subcategories
Fetch Categories with their Subcategories (and their Serving Times).
This call should be used as a starting point in displaying/listing the given Venue's Menu. It returns all Categories and Subcategories in the given Menu with Serving Times (for each Subcategory) and/or Menu Items and/or Menu Combo Meals (Clusters).
If there are no Menu Items and Menu Combo Meals (represented always as an empty array) in some of the listed Subcategories it means this Subcategory shouldn't be displayed to the customer (and if all Subcategories in one Category have this situation, don't display Category as well).
Not valid, aka empty Subcategories are returned on purpose because there can be a situation where you can have a Menu Item as part of a Combo Item which is from different Subcategory than the Menu Combo Meal/Combo Meal (aka Combos, as Upsell) to which this Combo Item belongs to. That different Subcategory can be empty and actually not displayed to the customer (which is fine, as that could mean that its content is being used as part of the other Clusters/Combos) and you would be needing its Serving Times probably to see if it is available to serve that Combo Item at the first place.
- Type: stringvenue
_id requiredVenue ID
- Type: stringmenu
_id requiredVenue's Menu ID
- Type: stringincluderequired
Include query param for Menu's Categories. For simplified response (without Category's info and Subcategories' Images) use this value: subcategories|name;introduction;translations
- enumsort[position]
Sort Categories by "position" property
values- asc
- desc
- enumsort[subcategories
.position] Sort Subcategories by "position" property
values- asc
- desc
- Type: integerorder
_type _id min:1max:9enumrequiredType ID for the given Order Type. 1 - Dine-In (Full service), 4 - Dine-In (Quick service - Preorder), 6 - Takeout, 7 - Delivery, 8 - Curbside pickup, 9 - Foodspot
values- 1
- 4
- 6
- 7
- 8
- 9
- Type: stringAcceptrequired
Type of content accepted by the API (application/json in most cases)
- Type: stringApplicationrequired
Application key for specific client app
- Type: stringA
P I - V E R S I O N requiredVersion of the API to be used
- enumX
- Q B - Enabled requiredHeader which if sent with value 'true' will allow usage of the query building feature in response (through the request's query params). It is mandatory for this part of the documentation.
values- true
- false
- Type: stringContent
- Language requiredLocal language code (in format xx-XX, or simpler xx) for translation purposes
- Type: stringX
- Request - I D requiredUnique request identifier
- application/json
- 400
Bad Request
- 403
Forbidden
- 404
Not Found
- 500
Internal Server Error
curl 'https://api-public-demo.menu.app/api/venues/{venue_id}/menus/{menu_id}/categories?include=name%2Ctranslations%2Csubcategories%7Cname%3Bintroduction%3Btranslations%2Csubcategories.image%7Cthumbnail_small%2Csubcategories.serving_times%7Ctype_id%3Btime_from%3Btime_to%3Bdays%2Csubcategories.menu_items%2Csubcategories.menu_combo_meals&order_type_id=1' \
--header 'Accept: application/json' \
--header 'Application: application-key' \
--header 'API-VERSION: ' \
--header 'X-QB-Enabled: true' \
--header 'Content-Language: en' \
--header 'X-Request-ID: c10b4a70-6274-490d-80a0-03e7bb826937'
{
"status": "OK",
"code": 200,
"method": "GET",
"data": {
"categories": [
{
"id": "8556a36c-0864-454d-b21f-204500ce2440",
"name": "Category",
"translations": {
"name": "Category"
},
"subcategories": [
{
"id": "1ff46ba9-7006-419d-83ba-e12d11d9cf56",
"category_id": "8556a36c-0864-454d-b21f-204500ce2440",
"name": "Subcategory",
"introduction": "Subcategory's Description",
"translations": {
"name": "Subcategory",
"introduction": "Subcategory's Description"
},
"image": {
"thumbnail_small": null
},
"serving_times": [
{
"id": "ff9c1042-370b-47f1-a8e2-6d20a6aa412f",
"type_id": 2,
"time_from": "07:00",
"time_to": "22:00",
"days": [
1
]
}
],
"menu_items": [
{
"id": "3eac2d29-1df5-42d9-9e1b-1cd41ac17d74",
"subcategory_id": "1ff46ba9-7006-419d-83ba-e12d11d9cf56"
}
],
"menu_combo_meals": [
{
"id": "3d4dce7a-c0ff-4edd-81de-c69a3936b145",
"subcategory_id": "1ff46ba9-7006-419d-83ba-e12d11d9cf56"
}
]
}
]
}
]
}
}