Get Menu List
curl --request GET \
--url 'https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all'import requests
url = "https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"menu_name": "<string>",
"external_menu_id": "<string>",
"store_id": "<string>",
"is_default": true,
"created_by": "<string>",
"updated_by": "<string>",
"created_by_id": "<string>",
"updated_by_id": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"menu_hours": [
{
"id": "<string>",
"menu_id": "<string>",
"open_time": "<string>",
"close_time": "<string>",
"day_of_week": 123,
"is_closed": true,
"created_by": "<string>",
"updated_by": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
],
"total_item_count": "<string>",
"unique_category_count": "<string>",
"modifier_item_count": "<string>"
}Menus
Get Menu List
Retrieve a list of all menus for a specific store with filtering, sorting, and detailed menu information including operating hours and item counts.
GET
/
stores
/
{store_id}
/
menu
/
list?status=active&sortBy=categories&sortDirection=desc&name=all
Get Menu List
curl --request GET \
--url 'https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all'import requests
url = "https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/stores/{{store_id}}/menu/list?status=active&sortBy=categories&sortDirection=desc&name=all")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"menu_name": "<string>",
"external_menu_id": "<string>",
"store_id": "<string>",
"is_default": true,
"created_by": "<string>",
"updated_by": "<string>",
"created_by_id": "<string>",
"updated_by_id": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"menu_hours": [
{
"id": "<string>",
"menu_id": "<string>",
"open_time": "<string>",
"close_time": "<string>",
"day_of_week": 123,
"is_closed": true,
"created_by": "<string>",
"updated_by": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
],
"total_item_count": "<string>",
"unique_category_count": "<string>",
"modifier_item_count": "<string>"
}This endpoint returns a comprehensive list of all menus associated with a store, including detailed menu configuration, operating hours, and statistical information about menu contents.
The menu list provides essential information for menu management, including item counts, category statistics, and operating schedules, making it ideal for administrative dashboards and operational planning.
Path Parameters
string
required
The unique identifier of the store to retrieve menus for
Query Parameters
string
Filter menus by status: “active”, “inactive”, “all”
string
Sort criteria: “name”, “created_date”, “categories”, “items”
string
Sort direction: “asc” or “desc”
string
Filter by menu name or “all” for all menus
Response
The response is an array of menu objects with comprehensive information:string
Unique identifier for the menu
string
Display name of the menu
string
External system menu identifier (if applicable)
string
Store identifier this menu belongs to
boolean
Whether this is the default menu for the store
string
User ID who created the menu
string
User ID who last updated the menu
string
Creator’s user identifier
string
Last updater’s user identifier
string
Timestamp when the menu was created
string
Timestamp when the menu was last updated
array
Array of operating hours for the menu
Show Menu Hours Details
Show Menu Hours Details
string
Unique identifier for the menu hour entry
string
Parent menu identifier
string
Opening time in HH:MM format
string
Closing time in HH:MM format
integer
Day of the week (0=Sunday, 6=Saturday)
boolean
Whether closed on this day
string
Creator user ID
string
Last updater user ID
string
Creation timestamp
string
Last update timestamp
string
Total number of items in this menu
string
Number of unique categories in this menu
string
Number of modifier items in this menu
Response Example
[
{
"id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
"menu_name": "All",
"external_menu_id": "3c4d66ab-f372-4d4a-a14a-c2b7d9cee682",
"store_id": "449235c1-3d04-4519-998b-40d2a621e5e0",
"is_default": true,
"created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"created_by_id": "1000049",
"last_updated_by": "1000049",
"updated_by_id": "1000049",
"createdAt": "2023-02-09T12:03:55.124Z",
"updatedAt": "2024-08-05T10:14:39.875Z",
"deletedAt": null,
"menu_hours": [
{
"id": "fb8ef97e-4a0f-4d36-9c1b-3e96b2b43cd6",
"menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
"open_time": "00:00",
"close_time": "23:59",
"day_of_week": 3,
"is_closed": false,
"created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"created_by_id": "1000049",
"last_updated_by": "1000049",
"updated_by_id": "1000049",
"createdAt": "2023-07-04T12:42:24.108Z",
"updatedAt": "2024-08-05T10:14:39.890Z",
"deletedAt": null
},
{
"id": "f6e0f9c2-2aa9-4c7c-afa5-08a23e9f832f",
"menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
"open_time": "00:00",
"close_time": "23:59",
"day_of_week": 5,
"is_closed": false,
"created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"created_by_id": "1000049",
"last_updated_by": "1000049",
"updated_by_id": "1000049",
"createdAt": "2023-07-04T12:42:24.108Z",
"updatedAt": "2024-08-05T10:14:39.890Z",
"deletedAt": null
},
{
"id": "37a519b3-70c2-4c10-980e-637af2541343",
"menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
"open_time": "00:00",
"close_time": "23:59",
"day_of_week": 6,
"is_closed": false,
"created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"created_by_id": "1000049",
"last_updated_by": "1000049",
"updated_by_id": "1000049",
"createdAt": "2023-07-04T12:42:24.108Z",
"updatedAt": "2024-08-05T10:14:39.890Z",
"deletedAt": null
},
{
"id": "fc0f9a16-b178-4bd5-af2c-8208a48029ea",
"menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
"open_time": "00:00",
"close_time": "23:59",
"day_of_week": 4,
"is_closed": false,
"created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"created_by_id": "1000049",
"last_updated_by": "1000049",
"updated_by_id": "1000049",
"createdAt": "2023-07-04T12:42:24.108Z",
"updatedAt": "2024-08-05T10:14:39.890Z",
"deletedAt": null
},
{
"id": "6f87e48c-fb01-45d7-b208-4f6f0b0053ea",
"menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
"open_time": "00:00",
"close_time": "23:59",
"day_of_week": 1,
"is_closed": false,
"created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"created_by_id": "1000049",
"last_updated_by": "1000049",
"updated_by_id": "1000049",
"createdAt": "2023-07-04T12:42:24.108Z",
"updatedAt": "2024-08-05T10:14:39.889Z",
"deletedAt": null
},
{
"id": "0d3856d7-662d-4006-9e78-1d2b81279721",
"menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
"open_time": "00:00",
"close_time": "23:59",
"day_of_week": 2,
"is_closed": false,
"created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"created_by_id": "1000049",
"last_updated_by": "1000049",
"updated_by_id": "1000049",
"createdAt": "2023-07-04T12:42:24.108Z",
"updatedAt": "2024-08-05T10:14:39.889Z",
"deletedAt": null
},
{
"id": "3c4d66ab-f372-4d4a-a14a-c2b7d9cee682",
"menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
"open_time": "00:30",
"close_time": "23:59",
"day_of_week": 0,
"is_closed": false,
"created_by": null,
"updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
"created_by_id": "1000049",
"last_updated_by": "1000049",
"updated_by_id": "1000049",
"createdAt": "2023-07-18T09:37:05.335Z",
"updatedAt": "2024-08-05T10:14:39.889Z",
"deletedAt": null
}
],
"total_item_count": "2320",
"unique_category_count": "11",
"modifier_item_count": "0"
}
]
Menu Statistics Explained
Menu Statistics Explained
Item Count Metrics
- total_item_count: All individual items available in this menu
- unique_category_count: Number of distinct product categories
- modifier_item_count: Items that serve as modifiers for other products
- Multiple entries per day indicate split operating hours
- Different days can have different operating schedules
- Sunday hours may differ from weekday schedules
- Large item counts indicate comprehensive menus
- High category counts suggest diverse product offerings
- Modifier counts show customization options available
Time Format: All times are displayed in 24-hour format (HH:MM) for consistency across different regions and to avoid AM/PM confusion.
Filtering Options: Use the query parameters to efficiently find specific menus, especially in stores with many menu configurations.
Use Cases
Common Menu List Use Cases
Common Menu List Use Cases
Administrative Dashboard
- Display all store menus for management overview
- Show menu statistics for operational planning
- Compare menu configurations across different stores
- Monitor menu performance and utilization
- Review operating hours for scheduling staff
- Analyze menu complexity for training purposes
- Plan inventory based on menu item counts
- Coordinate marketing efforts with menu availability
- Sync menu data with external systems
- Update point-of-sale systems with current menus
- Integrate with delivery platform APIs
- Coordinate with inventory management systems
- Compare menu performance across different configurations
- Analyze the relationship between menu complexity and sales
- Track menu evolution over time
- Support decision-making for menu optimization
Filtering and Sorting
Advanced Query Options
Advanced Query Options
Status Filtering
- active: Only show currently active menus
- inactive: Show deactivated menus for review
- all: Display all menus regardless of status
- name: Alphabetical sorting by menu name
- created_date: Chronological sorting by creation date
- categories: Sort by number of unique categories
- items: Sort by total item count
- Specific menu name for targeted retrieval
- “all” parameter to retrieve all menus
- Partial name matching for flexible searches
- asc: Ascending order (A-Z, oldest first, smallest first)
- desc: Descending order (Z-A, newest first, largest first)
Data Analysis
Menu Analytics and Insights
Menu Analytics and Insights
Menu Complexity Analysis
- High item counts may indicate comprehensive offerings
- Low category counts might suggest specialization
- Modifier counts show customization capabilities
- Consistent hours across days indicate standard operations
- Variable hours suggest flexible business models
- Multiple time slots per day show complex scheduling
- Recent update timestamps indicate active management
- Creation dates show menu lifecycle patterns
- External menu IDs suggest third-party integrations
- Compare item counts with sales performance
- Analyze category distribution for marketing insights
- Use modifier counts to plan customization strategies
Error Handling
Common Error Scenarios
Common Error Scenarios
Store Not FoundInvalid Query ParametersNo Menus FoundAccess Denied
{
"error": "Store not found",
"message": "The specified store does not exist"
}
{
"error": "Invalid parameter",
"message": "sortBy must be one of: name, created_date, categories, items"
}
{
"data": [],
"message": "No menus found for the specified criteria"
}
{
"error": "Access denied",
"message": "Insufficient permissions to view store menus"
}
Integration Considerations
System Integration Guidelines
System Integration Guidelines
API Response Handling
- Handle array responses appropriately
- Process nested menu_hours data correctly
- Account for null values in optional fields
- Implement proper error handling for edge cases
- Cache menu list data for frequently accessed stores
- Implement cache invalidation on menu updates
- Consider real-time updates for operational systems
- Balance performance with data freshness requirements
- Use external_menu_id for third-party integration
- Maintain mapping between internal and external IDs
- Handle synchronization conflicts gracefully
- Implement proper error recovery mechanisms
- Limit request frequency for large stores
- Implement pagination for stores with many menus
- Use appropriate filtering to reduce response size
- Monitor API performance and optimize as needed

