πŸ“¦ Get Menu

This endpoint returns the full menu structure β€” including categories, products, availability, and modifier groups β€” when requested by Blend (typically after receiving a menu.updated webhook).



Endpoint: GET /api/menu

Description: Blend calls this to retrieve the POS menu (categories, items, modifiers).

Authorization: Required (Authorization: Bearer \<token>)

Query Parameters: (optional)

page: for pagination

per: items per page

πŸ—‚ Field Descriptions

FieldTypeDescription
pageIntegerOptional. Page number for paginated results
perIntegerOptional. Number of items per page

🧾 Response POS

βœ… Success

{
    "categories": [
        {
            "id": 1,
            "name": {
                "en": "Main Dishes",
                "ar": "Ψ§Ω„Ψ£Ψ·Ψ¨Ψ§Ω‚ Ψ§Ω„Ψ±Ψ¦ΩŠΨ³ΩŠΨ©"
            },
            "products": [
                {
                    "id": 101,
                    "name": {
                        "en": "Grilled Chicken",
                        "ar": "Grilled Chicken"
                    },
                    "description": {
                        "en": "Grilled Chicken",
                        "ar": "Grilled Chicken"
                    },
                    "stock": 1,
                    "status": 1,
                    "price": 20,
                    "image_url": "url",
                    "available_branches": [
                        {
                            "branch_id": "ssssss",
                            "is_stock": false
                        },
                        {
                            "branch_id": "www",
                            "is_stock": true
                        }
                    ],
                    "modifier_groups": [
                        {
                            "id": 201,
                            "name": {
                                "en": "Side Dishes",
                                "ar": "Side Dishes"
                            },
                            "multiple": 1,
                            "required": 1,
                            "min_selection": 0,
                            "max_selection": null,
                            "modifiers": [
                                {
                                    "id": 301,
                                    "status" : true,
                                    "name": {
                                        "en": "French Fries",
                                        "ar": "French Fries"
                                    },
                                    "price": 15.5
                                },
                                {
                                    "id": 302,
                                    "status" : true,
                                    "name": {
                                        "en": "Mashed Potatoes",
                                        "ar": "Mashed Potatoes"
                                    },
                                    "price": 15.5
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "pagination": {
        "from": 1,
        "to": 1,
        "per": 25,
        "total": 1,
        "current": 1,
        "path": {{YOUR_END_POINT}}
    }
}

πŸ—‚ Field Descriptions

FieldTypeDescription
categoriesarrayList of menu categories
categories[].idstringCategory ID
categories[].nameobjectTranslated names (e.g., { "en": "Main", "ar": "رئيسية" })
categories[].productsarrayProducts under this category
products[].idstringProduct ID
products[].nameobjectTranslated names of the product
products[].descriptionobjectOptional translated description
products[].stockbooleanWhether this product is in stock
products[].statusboolean1 for active, 0 for inactive
products[].pricefloatBase price of the product
products[].image_urlstringOptional image URL
products[].available_branchesarrayArray of availability by branch
available_branches[].branch_idstringBranch identifier
available_branches[].is_stockbooleanAvailability in that specific branch
products[].modifier_groupsarrayList of modifier groups linked to this product
modifier_groups[].idstringModifier group ID
modifier_groups[].nameobjectTranslated name
modifier_groups[].multiplebooleanWhether multiple modifiers can be selected
modifier_groups[].requiredbooleanWhether the modifier group is required
modifier_groups[].min_selectionintegerMinimum number of required selections
modifier_groups[].max_selectionintegerMaximum number of allowed selections
modifiers[].idstringModifier ID
modifiers[].nameobjectTranslated name
modifiers[].pricefloatAdditional cost of the modifier
modifiers[].statusbooleanWhether the modifier is active


🧠 Behavior

  • Blend calls this API after receiving a menu.updated event to pull the latest full menu.
  • This includes not just items, but full translation support, availability, and structure.

πŸ”§ Example Use Cases

  • A new product is added β†’ Blend pulls full menu to reflect in delivery apps.
  • A modifier group is edited or reassigned β†’ Blend gets updated data.


βœ… Notes

  • The response must be structured and complete β€” Blend will replace the full menu on each sync.
  • If an item is hidden in a branch, it should be reflected via available_branches.
  • Authentication via Bearer token is required.

What’s Next