# Menus

Menu objects

## Get menus

> This operation returns a list of menus.

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"tags":[{"name":"Menus","description":"Menu objects"}],"servers":[{"url":"https://api.mews.com/pos","description":"Production"},{"url":"https://api.mews-demo.com/pos","description":"Staging"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"auth-scheme","description":"Bearer HTTP authentication. Allowed headers-- Authorization: Bearer <api_key>"}},"parameters":{"page_size":{"in":"query","name":"page[size]","schema":{"type":"integer","format":"int32","minimum":1,"maximum":1000},"description":"The number of resources to return in a single response.","required":false},"page_before":{"in":"query","name":"page[before]","schema":{"type":"string","title":"Resource identifier","description":"Unique identifier.","pattern":"^[a-zA-Z0-9-]+$","minLength":1,"maxLength":36},"description":"The cursor for the previous page of resources.","required":false},"page_after":{"in":"query","name":"page[after]","schema":{"type":"string","title":"Resource identifier","description":"Unique identifier.","pattern":"^[a-zA-Z0-9-]+$","minLength":1,"maxLength":36},"description":"The cursor for the next page of resources.","required":false},"filter_updated_at_gt":{"in":"query","name":"filter[updatedAtGt]","description":"Filters the objects that were updated after a specified datetime.","required":false,"schema":{"anyOf":[{"type":"string","description":"Timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},{"type":"string","description":"Date in RFC 3339 format.","maxLength":10,"format":"date"}]}}},"headers":{"x_rate_limit_limit":{"description":"The number of allowed requests in the current period.","schema":{"type":"integer","format":"int32","minimum":1,"maximum":1000}},"x_rate_limit_remaining":{"description":"The number of remaining requests in the current period.","schema":{"type":"integer","format":"int32","minimum":1,"maximum":1000}},"x_rate_limit_reset":{"description":"The time at which the rate limit resets, in UTC epoch seconds.","schema":{"type":"integer","format":"int64","minimum":1633036800,"maximum":2147483647}},"access_control_allow_origin":{"description":"Specifies which origins are allowed to access the resource.","schema":{"type":"string","minLength":1,"maxLength":1024,"pattern":"^[A-Za-z /*]+$"}},"retry_after":{"description":"The time the client should wait before making a new request.","schema":{"type":"integer","format":"int32","minimum":1,"maximum":3600}}},"schemas":{"menus":{"menus_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/menus/menu"}},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the objects to which the menu is related.","items":{"anyOf":[{"$ref":"#/components/schemas/menu_sections/menu_section"},{"$ref":"#/components/schemas/menu_items/menu_item"},{"$ref":"#/components/schemas/outlets/outlet"},{"$ref":"#/components/schemas/taxes/tax"},{"$ref":"#/components/schemas/products/product"},{"$ref":"#/components/schemas/product_variants/product_variant"},{"$ref":"#/components/schemas/product_bundles/product_bundle"}]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}},"required":["data","links"]},"menu":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"menus"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the menu.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"status":{"type":"string","description":"Status of the menu.","enum":["active","inactive"]},"description":{"type":["string","null"],"description":"Description of the menu.","maxLength":10000,"pattern":"^[^<>&]*$"},"deleted":{"type":"boolean","description":"Indicates whether the Menu is deleted or not."},"createdAt":{"type":"string","description":"Menu created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"availabilityDays":{"type":"array","description":"List of weekdays when the menu is available.","maxItems":7,"items":{"type":"string","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}},"availabilityStartTime":{"type":["string","null"],"description":"Start time when the menu is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"},"availabilityEndTime":{"type":["string","null"],"description":"End time when the menu is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"}},"required":["name","status","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"menuSections":{"type":"object","description":"Details of the menu sections associated with the menu.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"menuSections"}},"required":["id","type"]}}},"required":["data"]},"outlets":{"type":"object","description":"Details of the outlets associated with the menu.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"outlets"}},"required":["id","type"]}}},"required":["data"]}}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]}},"menu_sections":{"menu_section":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuSections","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the menu section.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu section.","format":"int32","minimum":1,"maximum":100},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","position","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"menu_items":{"menu_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":["string","null"],"description":"The name of the menu item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"itemType":{"type":"string","description":"Type of the menu item.","enum":["Product","ProductVariant","ProductBundle"]},"tileLabel":{"type":["string","null"],"description":"Short name of the menu item to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"tileColor":{"type":["string","null"],"description":"Color of menu item tile to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the menu item image.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu item.","format":"int32","minimum":1,"maximum":1000},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Retail price excluding tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"price":{"type":["string","null"],"maxLength":255,"description":"Customer set price of the menu item [deprecated].","pattern":"^(\\d+(\\.\\d+)?)(-\\d+(\\.\\d+)?)?$"},"priceRange":{"type":["object","null"],"description":"Price range of the menu item if it is not a fixed price","properties":{"min":{"type":"string","description":"Minimum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"max":{"type":"string","description":"Maximum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"}}},"hasVariants":{"type":["boolean","null"],"description":"Indicates if the menu item is a product with variants."},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["itemType","retailPriceInclTax","position","createdAt","updatedAt"]},"relationships":{"type":"object","properties":{"item":{"type":"object","description":"The polymorphic item associated with this menu item. Can be a product, product variant, or product bundle.","properties":{"data":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"}},"required":["id","type"]},{"type":"null"}],"description":"Resource identifier object for the item (product, product variant, or product bundle)."}}},"taxes":{"type":"object","description":"Taxes that apply to this menu item.","properties":{"data":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]},"description":"Array of tax resource identifier objects."}}}},"required":["taxes"]}},"required":["id","type","attributes"]}},"outlets":{"outlet":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the outlet, representing the business or location.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address1":{"type":["string","null"],"description":"The first line of the outlet's street address, typically including the street number and name.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address2":{"type":["string","null"],"description":"The second line of outlet's address.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"city":{"type":["string","null"],"description":"The city where the outlet is located.","minLength":1,"maxLength":86,"pattern":"^[^<>&]+$"},"state":{"type":["string","null"],"description":"The state or region where the outlet is located.","minLength":1,"maxLength":54,"pattern":"^[^<>&]+$"},"postalCode":{"type":["string","null"],"description":"The postal or ZIP code for outlet's location.","minLength":1,"maxLength":10,"pattern":"^[^<>&]+$"},"index":{"type":"integer","description":"A unique sequential number representing the outlet number within the establishment.","format":"int32","minimum":1,"maximum":10},"createdAt":{"type":"string","description":"Outlet created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Outlet updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","address1","address2","city","state","postalCode","index","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"taxes":{"tax":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the tax.","minLength":1,"maxLength":255,"pattern":"^.*\\S.*$"},"rate":{"type":"string","description":"Tax rate as a decimal.","minLength":3,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,6}$"},"taxType":{"type":"string","description":"Type of the tax.","enum":["vat","other","fixed","consumption","sales","state","city","liquor","food","entertainment"]},"isActive":{"type":"boolean","description":"Whether the tax is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"label":{"type":["string","null"],"description":"Label of the tax.","maxLength":255,"pattern":"^.*\\S.*$"},"ratePercent":{"type":"string","description":"Tax rate as a percentage.","minLength":1,"maxLength":7,"pattern":"^[0-9]+(\\.[0-9]{1,2})?$"}},"required":["name","rate","taxType","isActive","createdAt","updatedAt","ratePercent","label"]}},"required":["id","type","attributes"]}},"products":{"product":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"sku":{"type":["string","null"],"description":"SKU of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"isAvailable":{"type":"boolean","description":"Whether the product is available.","default":true},"barcode":{"type":["string","null"],"description":"Barcode of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"status":{"type":"string","description":"Status of the product. Possible values are \"active\" and \"inactive\".","enum":["active","inactive"]},"tax":{"type":["string","null"],"description":"Tax of the product.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Product price excluding tax.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":["string","null"],"description":"Product price including applicable taxes.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","status","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productType":{"type":"object","description":"Details of the product type associated with the product.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productTypes"}},"required":["id","type"]}}},"modifierSets":{"type":"object","description":"Details of the modifier sets associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifierSets"}},"required":["id","type"]}}},"required":["data"]},"modifiers":{"type":"object","description":"Details of the modifiers associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"}},"required":["id","type"]}}},"required":["data"]},"productVariants":{"type":"object","description":"Details of the product variants associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}}}},"taxes":{"type":"object","description":"Details of the taxes associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]}}},"required":["data"]},"dietaryRestrictions":{"type":"object","description":"Details of the dietary restrictions associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"dietaryRestrictions"}},"required":["id","type"]}}},"required":["data"]},"allergens":{"type":"object","description":"Details of the allergens associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"allergens"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]}},"product_variants":{"product_variant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants","maxLength":255},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"retailPriceExclTax":{"type":"string","description":"Product price excluding tax.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":"string","description":"Product price including applicable taxes.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"sku":{"type":"string","description":"SKU of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"selector":{"type":"object","description":"Arbitrary key/value JSON object for product variant selector.","additionalProperties":true},"barcode":{"type":"string","description":"Barcode of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["retailPriceExclTax","retailPriceInclTax","sku","barcode","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"product_bundles":{"product_bundle":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product bundle.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product bundle.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the product bundle image.","minLength":0,"maxLength":1024,"format":"uri"},"priceRange":{"type":["object","null"],"description":"Price range of the bundle when not using fixed pricing. Contains minimum and maximum prices.","properties":{"min":{"type":"string","description":"Minimum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"max":{"type":"string","description":"Maximum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"}},"required":["min","max"]},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax of the bundle when using fixed pricing.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","description","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productBundleItems":{"type":"object","description":"Details of the product bundle items associated with the bundle.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundleItems"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]}},"error":{"type":"object","description":"A JSON:API error object.\n\nAdditional properties specific to the problem type may be present.    \n","properties":{"errors":{"type":"array","description":"An array of error details to accompany a problem details response.","maxItems":1000,"items":{"type":"object","description":"An object to provide explicit details on a problem towards an API consumer.","properties":{"id":{"type":"string","maxLength":16,"description":"A unique identifier for this particular occurrence of the problem.","pattern":"^[A-Za-z0-9_-]+$"},"status":{"type":"string","maxLength":3,"description":"The HTTP status code applicable to this problem, expressed as a string value.","pattern":"^[1-5][0-9]{2}$"},"code":{"type":"string","maxLength":50,"description":"An application-specific error code, expressed as a string value.","pattern":"^[A-Za-z0-9_-]+$"},"title":{"type":"string","description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.","maxLength":256,"pattern":"^.{1,255}$"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.","maxLength":1024,"pattern":"^.{1,1023}$"},"source":{"type":"object","properties":{"pointer":{"type":"string","description":"A JSON Pointer to a specific request body property that is the source of error.","maxLength":1024,"pattern":"^$|^/([A-Za-z0-9_-]+/)*[A-Za-z0-9_-]+$"},"parameter":{"type":"string","description":"A string indicating which URI query parameter caused the error.","maxLength":1024,"pattern":"^[A-Za-z0-9_]+$"},"header":{"type":"string","description":"The name of the header that is the source of error.","maxLength":1024,"pattern":"^[A-Za-z-]+$"}}},"meta":{"type":"object","description":"Additional information about the error.","additionalProperties":true}},"required":["title"]}}},"required":["errors"]}},"responses":{"bad_request":{"description":"Bad request.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"unauthorized":{"description":"Unauthorized.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"unprocessable_entity":{"description":"Unprocessable entity.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"too_many_requests":{"description":"Too many requests.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Retry-After":{"$ref":"#/components/headers/retry_after"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"internal_server_error":{"description":"Internal Server Error.","content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"service_unavailable":{"description":"Service is unavailable.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}}}},"paths":{"/v1/menus":{"get":{"operationId":"getMenus","summary":"Get menus","description":"This operation returns a list of menus.","parameters":[{"$ref":"#/components/parameters/page_size"},{"$ref":"#/components/parameters/page_before"},{"$ref":"#/components/parameters/page_after"},{"$ref":"#/components/parameters/filter_updated_at_gt"},{"in":"query","name":"include","schema":{"type":"array","maxItems":4,"items":{"type":"string","enum":["menuSections","menuSections.menuItems","menuSections.menuItems.taxes","menuSections.menuItems.item","outlets"]}}},{"in":"query","name":"filter[includeDeleted]","description":"Include all deleted menus in response.","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"filter[outletsIdIn]","description":"Filters the menus by the UUIDs of related outlet resources. Accepts one or more UUIDs separated by commas, e.g. `filter[outletsIdIn]=uuid1,uuid2,uuid3`.\n","required":false,"schema":{"type":"string","title":"Resource identifiers","description":"Comma-separated list of UUIDs (each 36 characters).","minLength":36,"maxLength":1024,"pattern":"^([a-fA-F0-9\\-]{36})(,[a-fA-F0-9\\-]{36})*$"}}],"tags":["Menus"],"responses":{"200":{"description":"Successful response with menus data in JSON:API format.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/menus/menus_response"}}}},"400":{"$ref":"#/components/responses/bad_request"},"401":{"$ref":"#/components/responses/unauthorized"},"422":{"$ref":"#/components/responses/unprocessable_entity"},"429":{"$ref":"#/components/responses/too_many_requests"},"500":{"$ref":"#/components/responses/internal_server_error"},"503":{"$ref":"#/components/responses/service_unavailable"}}}}}}
```

## Get Menu Details

> Retrieves details of a specific menu including its menu sections and associated outlets.

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"tags":[{"name":"Menus","description":"Menu objects"}],"servers":[{"url":"https://api.mews.com/pos","description":"Production"},{"url":"https://api.mews-demo.com/pos","description":"Staging"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"auth-scheme","description":"Bearer HTTP authentication. Allowed headers-- Authorization: Bearer <api_key>"}},"headers":{"x_rate_limit_limit":{"description":"The number of allowed requests in the current period.","schema":{"type":"integer","format":"int32","minimum":1,"maximum":1000}},"x_rate_limit_remaining":{"description":"The number of remaining requests in the current period.","schema":{"type":"integer","format":"int32","minimum":1,"maximum":1000}},"x_rate_limit_reset":{"description":"The time at which the rate limit resets, in UTC epoch seconds.","schema":{"type":"integer","format":"int64","minimum":1633036800,"maximum":2147483647}},"access_control_allow_origin":{"description":"Specifies which origins are allowed to access the resource.","schema":{"type":"string","minLength":1,"maxLength":1024,"pattern":"^[A-Za-z /*]+$"}},"retry_after":{"description":"The time the client should wait before making a new request.","schema":{"type":"integer","format":"int32","minimum":1,"maximum":3600}}},"schemas":{"menus":{"menu_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/menus/menu","description":"The document's \"primary data\"."},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the objects to which the menu is related.","items":{"anyOf":[{"$ref":"#/components/schemas/menu_sections/menu_section"},{"$ref":"#/components/schemas/menu_items/menu_item"},{"$ref":"#/components/schemas/outlets/outlet"},{"$ref":"#/components/schemas/taxes/tax"},{"$ref":"#/components/schemas/products/product"},{"$ref":"#/components/schemas/product_variants/product_variant"},{"$ref":"#/components/schemas/product_bundles/product_bundle"}]}}},"required":["data"]},"menu":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"menus"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the menu.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"status":{"type":"string","description":"Status of the menu.","enum":["active","inactive"]},"description":{"type":["string","null"],"description":"Description of the menu.","maxLength":10000,"pattern":"^[^<>&]*$"},"deleted":{"type":"boolean","description":"Indicates whether the Menu is deleted or not."},"createdAt":{"type":"string","description":"Menu created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"availabilityDays":{"type":"array","description":"List of weekdays when the menu is available.","maxItems":7,"items":{"type":"string","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}},"availabilityStartTime":{"type":["string","null"],"description":"Start time when the menu is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"},"availabilityEndTime":{"type":["string","null"],"description":"End time when the menu is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"}},"required":["name","status","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"menuSections":{"type":"object","description":"Details of the menu sections associated with the menu.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"menuSections"}},"required":["id","type"]}}},"required":["data"]},"outlets":{"type":"object","description":"Details of the outlets associated with the menu.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"outlets"}},"required":["id","type"]}}},"required":["data"]}}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]}},"menu_sections":{"menu_section":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuSections","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the menu section.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu section.","format":"int32","minimum":1,"maximum":100},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","position","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"menu_items":{"menu_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":["string","null"],"description":"The name of the menu item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"itemType":{"type":"string","description":"Type of the menu item.","enum":["Product","ProductVariant","ProductBundle"]},"tileLabel":{"type":["string","null"],"description":"Short name of the menu item to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"tileColor":{"type":["string","null"],"description":"Color of menu item tile to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the menu item image.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu item.","format":"int32","minimum":1,"maximum":1000},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Retail price excluding tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"price":{"type":["string","null"],"maxLength":255,"description":"Customer set price of the menu item [deprecated].","pattern":"^(\\d+(\\.\\d+)?)(-\\d+(\\.\\d+)?)?$"},"priceRange":{"type":["object","null"],"description":"Price range of the menu item if it is not a fixed price","properties":{"min":{"type":"string","description":"Minimum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"max":{"type":"string","description":"Maximum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"}}},"hasVariants":{"type":["boolean","null"],"description":"Indicates if the menu item is a product with variants."},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["itemType","retailPriceInclTax","position","createdAt","updatedAt"]},"relationships":{"type":"object","properties":{"item":{"type":"object","description":"The polymorphic item associated with this menu item. Can be a product, product variant, or product bundle.","properties":{"data":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"}},"required":["id","type"]},{"type":"null"}],"description":"Resource identifier object for the item (product, product variant, or product bundle)."}}},"taxes":{"type":"object","description":"Taxes that apply to this menu item.","properties":{"data":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]},"description":"Array of tax resource identifier objects."}}}},"required":["taxes"]}},"required":["id","type","attributes"]}},"outlets":{"outlet":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the outlet, representing the business or location.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address1":{"type":["string","null"],"description":"The first line of the outlet's street address, typically including the street number and name.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address2":{"type":["string","null"],"description":"The second line of outlet's address.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"city":{"type":["string","null"],"description":"The city where the outlet is located.","minLength":1,"maxLength":86,"pattern":"^[^<>&]+$"},"state":{"type":["string","null"],"description":"The state or region where the outlet is located.","minLength":1,"maxLength":54,"pattern":"^[^<>&]+$"},"postalCode":{"type":["string","null"],"description":"The postal or ZIP code for outlet's location.","minLength":1,"maxLength":10,"pattern":"^[^<>&]+$"},"index":{"type":"integer","description":"A unique sequential number representing the outlet number within the establishment.","format":"int32","minimum":1,"maximum":10},"createdAt":{"type":"string","description":"Outlet created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Outlet updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","address1","address2","city","state","postalCode","index","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"taxes":{"tax":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the tax.","minLength":1,"maxLength":255,"pattern":"^.*\\S.*$"},"rate":{"type":"string","description":"Tax rate as a decimal.","minLength":3,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,6}$"},"taxType":{"type":"string","description":"Type of the tax.","enum":["vat","other","fixed","consumption","sales","state","city","liquor","food","entertainment"]},"isActive":{"type":"boolean","description":"Whether the tax is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"label":{"type":["string","null"],"description":"Label of the tax.","maxLength":255,"pattern":"^.*\\S.*$"},"ratePercent":{"type":"string","description":"Tax rate as a percentage.","minLength":1,"maxLength":7,"pattern":"^[0-9]+(\\.[0-9]{1,2})?$"}},"required":["name","rate","taxType","isActive","createdAt","updatedAt","ratePercent","label"]}},"required":["id","type","attributes"]}},"products":{"product":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"sku":{"type":["string","null"],"description":"SKU of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"isAvailable":{"type":"boolean","description":"Whether the product is available.","default":true},"barcode":{"type":["string","null"],"description":"Barcode of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"status":{"type":"string","description":"Status of the product. Possible values are \"active\" and \"inactive\".","enum":["active","inactive"]},"tax":{"type":["string","null"],"description":"Tax of the product.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Product price excluding tax.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":["string","null"],"description":"Product price including applicable taxes.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","status","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productType":{"type":"object","description":"Details of the product type associated with the product.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productTypes"}},"required":["id","type"]}}},"modifierSets":{"type":"object","description":"Details of the modifier sets associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifierSets"}},"required":["id","type"]}}},"required":["data"]},"modifiers":{"type":"object","description":"Details of the modifiers associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"}},"required":["id","type"]}}},"required":["data"]},"productVariants":{"type":"object","description":"Details of the product variants associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}}}},"taxes":{"type":"object","description":"Details of the taxes associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]}}},"required":["data"]},"dietaryRestrictions":{"type":"object","description":"Details of the dietary restrictions associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"dietaryRestrictions"}},"required":["id","type"]}}},"required":["data"]},"allergens":{"type":"object","description":"Details of the allergens associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"allergens"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]}},"product_variants":{"product_variant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants","maxLength":255},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"retailPriceExclTax":{"type":"string","description":"Product price excluding tax.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":"string","description":"Product price including applicable taxes.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"sku":{"type":"string","description":"SKU of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"selector":{"type":"object","description":"Arbitrary key/value JSON object for product variant selector.","additionalProperties":true},"barcode":{"type":"string","description":"Barcode of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["retailPriceExclTax","retailPriceInclTax","sku","barcode","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"product_bundles":{"product_bundle":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product bundle.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product bundle.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the product bundle image.","minLength":0,"maxLength":1024,"format":"uri"},"priceRange":{"type":["object","null"],"description":"Price range of the bundle when not using fixed pricing. Contains minimum and maximum prices.","properties":{"min":{"type":"string","description":"Minimum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"max":{"type":"string","description":"Maximum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"}},"required":["min","max"]},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax of the bundle when using fixed pricing.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","description","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productBundleItems":{"type":"object","description":"Details of the product bundle items associated with the bundle.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundleItems"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]}},"error":{"type":"object","description":"A JSON:API error object.\n\nAdditional properties specific to the problem type may be present.    \n","properties":{"errors":{"type":"array","description":"An array of error details to accompany a problem details response.","maxItems":1000,"items":{"type":"object","description":"An object to provide explicit details on a problem towards an API consumer.","properties":{"id":{"type":"string","maxLength":16,"description":"A unique identifier for this particular occurrence of the problem.","pattern":"^[A-Za-z0-9_-]+$"},"status":{"type":"string","maxLength":3,"description":"The HTTP status code applicable to this problem, expressed as a string value.","pattern":"^[1-5][0-9]{2}$"},"code":{"type":"string","maxLength":50,"description":"An application-specific error code, expressed as a string value.","pattern":"^[A-Za-z0-9_-]+$"},"title":{"type":"string","description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.","maxLength":256,"pattern":"^.{1,255}$"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.","maxLength":1024,"pattern":"^.{1,1023}$"},"source":{"type":"object","properties":{"pointer":{"type":"string","description":"A JSON Pointer to a specific request body property that is the source of error.","maxLength":1024,"pattern":"^$|^/([A-Za-z0-9_-]+/)*[A-Za-z0-9_-]+$"},"parameter":{"type":"string","description":"A string indicating which URI query parameter caused the error.","maxLength":1024,"pattern":"^[A-Za-z0-9_]+$"},"header":{"type":"string","description":"The name of the header that is the source of error.","maxLength":1024,"pattern":"^[A-Za-z-]+$"}}},"meta":{"type":"object","description":"Additional information about the error.","additionalProperties":true}},"required":["title"]}}},"required":["errors"]}},"responses":{"bad_request":{"description":"Bad request.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"unauthorized":{"description":"Unauthorized.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"not_found":{"description":"Not found.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"unprocessable_entity":{"description":"Unprocessable entity.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"too_many_requests":{"description":"Too many requests.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Retry-After":{"$ref":"#/components/headers/retry_after"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"internal_server_error":{"description":"Internal Server Error.","content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}},"service_unavailable":{"description":"Service is unavailable.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"type":"object","$ref":"#/components/schemas/error"}}}}}},"paths":{"/v1/menus/{id}":{"get":{"operationId":"getMenuDetails","summary":"Get Menu Details","description":"Retrieves details of a specific menu including its menu sections and associated outlets.","parameters":[{"in":"path","name":"id","description":"The id of the resource.","required":true,"schema":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID UUID.","minLength":36,"maxLength":36}},{"in":"query","name":"include","schema":{"type":"array","maxItems":4,"items":{"type":"string","enum":["menuSections","menuSections.menuItems","menuSections.menuItems.taxes","menuSections.menuItems.item","outlets"]}}}],"tags":["Menus"],"responses":{"200":{"description":"Successful response with menu data in JSON:API format, including optional related resources.","headers":{"X-Rate-Limit-Limit":{"$ref":"#/components/headers/x_rate_limit_limit"},"X-Rate-Limit-Remaining":{"$ref":"#/components/headers/x_rate_limit_remaining"},"X-Rate-Limit-Reset":{"$ref":"#/components/headers/x_rate_limit_reset"},"Access-Control-Allow-Origin":{"$ref":"#/components/headers/access_control_allow_origin"}},"content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/menus/menu_response"}}}},"400":{"$ref":"#/components/responses/bad_request"},"401":{"$ref":"#/components/responses/unauthorized"},"404":{"$ref":"#/components/responses/not_found"},"422":{"$ref":"#/components/responses/unprocessable_entity"},"429":{"$ref":"#/components/responses/too_many_requests"},"500":{"$ref":"#/components/responses/internal_server_error"},"503":{"$ref":"#/components/responses/service_unavailable"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mews.com/pos-api/operations/menus.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
