> ## Documentation Index
> Fetch the complete documentation index at: https://docs.craveup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get menus for a location

> Returns the active menus, categories, and products for the specified order date and time. Provide `orderDate` and `orderTime` to fetch the menu for a future scheduled order, or set `menuOnly=true` to fallback to the current menu.



## OpenAPI

````yaml https://api.craveup.com/swagger.json get /locations/{locationId}/menus
openapi: 3.0.0
info:
  title: Crave API v2.0
  version: 2.0.0
  description: >

    ## 🔑 Generate an API Key

    Every request to the Storefront API must include an API key.


    1. Sign in to the [Crave Business Manager](https://partners.craveup.com).

    2. Open **Settings → Developer → API Keys**.

    3. Click **Generate Key**, give it a descriptive name (for example,
    `storefront-sdk-staging`), and confirm.

    4. Copy the key immediately—once you leave the page it cannot be viewed
    again.


    Add the key to each request header:


    ```http

    GET /merchant/crave-collective

    Host: api.craveup.com

    X-API-Key: <your-api-key>

    ```


    ### Best practices

    - Store keys in environment variables or a secrets manager; never commit
    them to source control.

    - Use separate keys for staging and production so they can be rotated
    independently.

    - If a key is exposed, revoke it from the dashboard and generate a fresh one
    right away.
  contact:
    name: Crave Support
    email: support@craveup.com
servers:
  - url: https://api.craveup.com/api/v1
    description: Production Storefront API
  - url: https://dev-api-43233223.craveup.com/api/v1
    description: Staging Storefront API
security:
  - ApiKeyAuth: []
tags:
  - name: Merchants
    description: Retrieve merchant metadata and enabled storefront locations.
  - name: Locations
    description: Access individual location information and configuration.
  - name: Ordering Sessions
    description: Create or resume ordering sessions and carts for a location.
  - name: Menus
    description: Fetch menu bundles, categories, and popular products for a location.
  - name: Products
    description: Request detailed storefront product data including modifiers.
  - name: Carts
    description: Manage cart state, totals, and cross-sell recommendations.
  - name: Customers
    description: Handle storefront customer authentication, profiles, and sessions.
paths:
  /locations/{locationId}/menus:
    get:
      tags:
        - Menus
      summary: Get menus for a location
      description: >-
        Returns the active menus, categories, and products for the specified
        order date and time. Provide `orderDate` and `orderTime` to fetch the
        menu for a future scheduled order, or set `menuOnly=true` to fallback to
        the current menu.
      parameters:
        - name: locationId
          in: path
          required: true
          schema:
            type: string
          example: loc_456def
        - name: orderDate
          in: query
          required: false
          schema:
            type: string
          example: '2024-11-12'
        - name: orderTime
          in: query
          required: false
          schema:
            type: string
          example: '18:30'
        - name: menuOnly
          in: query
          required: false
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
          example: 'true'
      responses:
        '200':
          description: Menus retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  menus:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: menu_lunch
                        name:
                          type: string
                          example: Lunch
                        isActive:
                          type: boolean
                          example: true
                        time:
                          type: string
                          example: 11:00 AM - 3:00 PM
                        imageUrl:
                          type: string
                          nullable: true
                        categories:
                          type: array
                          items:
                            $ref: '#/components/schemas/StorefrontMenuCategory'
                      required:
                        - id
                        - name
                        - isActive
                        - time
                        - categories
                  popularProducts:
                    type: array
                    items:
                      $ref: '#/components/schemas/StorefrontMenuProduct'
                required:
                  - menus
                  - popularProducts
              examples:
                default:
                  summary: Lunch menu bundle
                  value:
                    menus:
                      - id: menu_lunch
                        name: Lunch
                        isActive: true
                        time: 11:00 AM - 3:00 PM
                        imageUrl: https://cdn.craveup.com/menus/lunch.jpg
                        categories:
                          - id: cat_pizzas
                            name: Pizzas
                            products:
                              - id: prod_margherita
                                name: Margherita Pizza
                                description: Tomato, basil, mozzarella.
                                price: '1800'
                                displayPrice: $18.00
                                currency: usd
                                availability: AVAILABLE
                                modifierIds:
                                  - mod_group_sauces
                                images:
                                  - >-
                                    https://cdn.craveup.com/products/margherita.png
                    popularProducts:
                      - id: prod_bbq_chicken
                        name: BBQ Chicken Pizza
                        description: Smoky BBQ sauce, chicken, red onions.
                        price: '2100'
                        displayPrice: $21.00
                        currency: usd
                        availability: AVAILABLE
                        modifierIds:
                          - mod_group_extras
                        images:
                          - https://cdn.craveup.com/products/bbq-chicken.png
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/GenericError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    StorefrontMenuCategory:
      type: object
      properties:
        id:
          type: string
          example: cat_pizzas
        name:
          type: string
          example: Pizzas
        products:
          type: array
          items:
            $ref: '#/components/schemas/StorefrontMenuProduct'
      required:
        - id
        - name
        - products
    StorefrontMenuProduct:
      type: object
      properties:
        id:
          type: string
          example: prod_margherita
        name:
          type: string
          example: Margherita Pizza
        description:
          type: string
          nullable: true
        price:
          type: string
          example: '18.00'
        displayPrice:
          type: string
          example: $18.00
        currency:
          type: string
          example: usd
        availability:
          type: string
          example: AVAILABLE
        modifierIds:
          type: array
          items:
            type: string
        nutrition:
          type: object
          nullable: true
          additionalProperties: true
        images:
          type: array
          items:
            type: string
      required:
        - id
        - name
        - price
        - displayPrice
        - currency
        - availability
  responses:
    BadRequest:
      description: Bad Request - The request was invalid or cannot be served.
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                example: false
              message:
                type: string
                example: Invalid input parameters
              code:
                type: string
                example: BAD_REQUEST
              data:
                type: object
                example: {}
    Unauthorized:
      description: Unauthorized - API key is missing or invalid.
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                example: false
              message:
                type: string
                example: Unauthorized access
              code:
                type: string
                example: UNAUTHORIZED
    GenericError:
      description: Generic Error - An unexpected error occurred.
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                example: false
              message:
                type: string
                example: An unexpected error occurred
              code:
                type: string
                example: GENERIC_ERROR
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API Key required to authenticate requests

````