Skip to main content
Returns every menu available for the customer’s current selling context. Pass fulfillment_id, store_id, channel_id, and brand_id to load catalogs for that combination. When any parameter is omitted, or when no menu exists for the combination, Fire spark falls back to the merchant-wide default menu (fulfillment_id, store_id, channel_id, and brand_id all __ANY__). When store_id, channel_id, and fulfillment_id are all provided (and not __ANY__), Fire spark checks that those entities exist and are ACTIVE (and that brand_id is ACTIVE when provided). An inactive or missing scope returns 422 with details.issues[] of { code: "SCOPE_INACTIVE", field } where field is store_id, channel_id, fulfillment_id, or brand_id. When multiple menus share the same context and their schedules match the current time, Fire spark returns all of them in data. Menus with schedules: null are always available. When no menu is currently in schedule, Fire spark returns every menu in data whose next availability window is closest to the current time. If several menus share that same next start time, all of them are returned.
Requires a Fire spark access token obtained through token exchange. The token scopes requests to the authenticated customer and merchant.

Query parameters

Request

Streaming

Omit streaming (or send false) to keep the single JSON response below. With streaming=true, Fire spark returns Content-Type: application/x-ndjson. Each line is { "data": Menu[] } with one menu. Upsert by id (later line wins); do not replace the list.
  1. Fold of the first menu. The first category_limit categories in display order (depth-first, same as the storefront nav), each with up to product_limit sellable products. Each of those products includes its full customization tree (modifier_groups, nested modifiers, and bundled_items) so a customer can open customization immediately. recommendations is [].
  2. Full first menu. The complete first menu from the non-streaming payload.
  3. Remaining menus. One full menu per line, in catalog order.
404 and 422 stay JSON and are decided before the stream opens.

Response

The response wraps an array of menu objects in data. Only ACTIVE menus are returned. When at least one menu is in schedule now, every matching menu is included. Otherwise, Fire spark includes the menu or menus whose next scheduled window starts soonest.
An array of schedule entries, or null when there is no schedule restriction. Each entry represents one day of the week:Each period:
Each product in a composed menu includes catalog fields plus context-specific pricing and availability:Each availability object:Each bundled_items entry:
Example product
Each category in a composed menu:Each entry in items:Each availability object:
Example category
Each modifier group in a composed menu:
Example modifier group
Each variant group:Each entry in variants:
Example variant group
Product pricing in a composed menu:Each modifiers entry adds:

Error responses