GET/pizzahut/bundle-choicesapiKey1 credit/request
Returns one deal/combo's full choice-builder tree -- every named slot it offers (e.g. "1st Pizza", "Wings or Fries", "1st Dip") and every product variant a caller can pick to fill that slot, each with the real price delta selecting it adds over the bundle's base price (zero for a variant already covered by the deal, positive for an upgrade such as a larger size or a specialty pizza). This is a different structure from /pizzahut/modifiers -- that endpoint customizes toppings/sauces on one product variant, while this endpoint swaps whole product variants in and out of a multi-item combo. bundle_code comes from /pizzahut/menu's code field on a type=bundle item.
Required: store_number, bundle_code. Optional: channel (12 allowed values: WEB, MOBILE, POS, KIOSK, DOORDASH, UBEREATS, GRUBHUB, IOS, ANDROID, DELIVEROO, JUST_EAT, CALL_CENTER).
Sampled 14 Oct 2026: 3 items. Filled in every item: choice_code, name, min_allowed_selections, max_allowed_selections, variants. In the sample: min_allowed_selections: 0 to 1, median 1; name: “MHB Entree” and 2 other values; variants: median 21 entries.
Open in Playground
GET/pizzahut/delivery-estimateapiKey2 credits/request
Checks whether a Pizza Hut restaurant's delivery integration can deliver to a given address and, when it can, the estimated delivery fee (broken down by fee line item) and pickup/dropoff time. This is a checkout-time estimate -- it does not add an item to a cart or place an order, and takes no payment or account information. serviceable is true only when the upstream returned a real estimate; a false value with reason populated covers every other case seen live, such as the requested delivery_provider not being enabled at that store. For the default INTERNAL provider, a serviceable result does not by itself confirm the address is within a real deliverable radius -- see this endpoint's markdown doc for the caveat. order_subtotal materially affects the fee estimate, so it is required rather than defaulted. pickup_at defaults to 30 minutes from now (an "order now" style estimate) when omitted.
Required: store_number, address1, city, state, postal_code, latitude, longitude, order_subtotal. Optional: address2, country_code, pickup_at, delivery_provider (3 allowed values: DOORDASH, MOCK_DOORDASH, INTERNAL).
Sampled 14 Oct 2026: 1 item. Filled in every item: name, type, amount. In the sample: name: “Delivery fee”; type: “DELIVERY_FEE”.
Open in Playground
GET/pizzahut/menuapiKey1 credit/request
Returns one restaurant's full menu grouped into categories (e.g. "Pizza", "Wings", "Deals"). Every entry is a product, a bundle (a deal or combo), or a standalone priced variant -- type tells callers which -- and carries a price in USD cents plus a decimal dollar value, and an image when the upstream publishes one. A product item also lists variants: every other priced size/crust/style option beyond its default (e.g. a pizza's Personal Pan through Large Original Stuffed Crust). Prices reflect this specific restaurant and order channel, not a national default. channel selects which order channel the menu is priced for (web ordering by default); prices can genuinely differ by channel (e.g. a delivery-marketplace channel vs. web). Some restaurants also carry products with no category at all (e.g. individual dip cup flavors); these are returned separately as uncategorized_items rather than silently dropped.
Required: store_number. Optional: channel (12 allowed values: WEB, MOBILE, POS, KIOSK, DOORDASH, UBEREATS, GRUBHUB, IOS, ANDROID, DELIVEROO, JUST_EAT, CALL_CENTER).
Sampled 14 Oct 2026: 19 items. Filled in every item: type, code, name, variant_code, price, available. Not in every item: description (11), variants (6), image_url (2). In the sample: name: “Breadsticks” and 18 other values; image_url: pizzahut.com; available: true in 19 of 19; variants: median 10 entries; description: “Bread Sticks” and 10 other values.
Open in Playground
GET/pizzahut/modifiersapiKey1 credit/request
Returns one product variant's full build-your-own customization tree -- every slot (e.g. "Pizza Sauce", "Pizza Cheese", "Pizza Toppings", "Crust Finishers"), every modifier within it (a specific topping, sauce flavor, or seasoning), and every weight/placement option (e.g. Light, Regular, Extra, or a Left/Right/Whole pizza-half placement) with its own real price delta -- zero for an amount already included by default, a positive upcharge for an "extra" option. variant_code comes from /pizzahut/menu's variant_code or variants[].variant_code fields.
Required: store_number, variant_code. Optional: channel (12 allowed values: WEB, MOBILE, POS, KIOSK, DOORDASH, UBEREATS, GRUBHUB, IOS, ANDROID, DELIVEROO, JUST_EAT, CALL_CENTER).
Sampled 14 Oct 2026: 6 items. Filled in every item: slot_code, name, min_allowed_selections, modifiers. In the sample: name: “Pizza Sauce” and 5 other values; modifiers: median 1 entry.
Open in Playground
GET/pizzahut/storeapiKey1 credit/request
Returns one Pizza Hut restaurant's detail by its exact store number, from /pizzahut/stores, including its recurring open hours per order channel (carryout, delivery, dine-in, drive-thru, catering carryout) plus each channel's ordering constraints -- minimum/maximum order amount, whether tipping is offered, and accepted payment methods. A channel this restaurant does not offer at all is omitted from hours rather than reported as always-closed.
Required: store_number.
Sampled 14 Oct 2026: 2 items. Filled in every item: occasion, enabled, max_order_amount, allow_tip, payment_types, windows. Not in every item: min_order_amount (1). In the sample: occasion: “CARRYOUT” and 1 other value; enabled: true in 2 of 2; payment_types: median 6 entries; allow_tip: true in 2 of 2; windows: median 1 entry.
Open in Playground
GET/pizzahut/storesapiKey1 credit/request
Returns Pizza Hut restaurants matching a city/state/postal code/name/franchise code/store number filter. At least one filter is required -- an unfiltered call would enumerate every US restaurant in one response, which this endpoint intentionally does not expose. Each restaurant carries its store number (the value /pizzahut/menu and /pizzahut/store take), full address with coordinates, phone, whether it currently accepts online orders, and its timezone.
Optional: store_number, city, state, postal_code, name, franchise_code, appear_in_store_results, accepting_online_orders, is_archived, sort (6 allowed values: store_number_asc, store_number_desc, name_asc, name_desc, franchise_code_asc, franchise_code_desc), max_results.
Sampled 14 Oct 2026: 9 items. Filled in every item: store_number, name, address, accepting_online_orders, archived, timezone, delivery_providers. In the sample: store_number: 40,003 to 42,147, median 41,641; accepting_online_orders: true in 6 of 9; delivery_providers: median 1 entry; name: 40,003 to 42,147, median 41,641; archived: true in 0 of 9.
Open in Playground