Endpoint Playground
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.
14 Oct 2026: 19 uncategorized_items; 6 fields had a value in every checked item and 3 varied between items.
Sample value profiles: name: “Breadsticks” and 18 other values; image_url: pizzahut.com; available: true in 19 of 19.
curl 'https://api.crawlora.net/api/v1/pizzahut/menu?store_number=040937&channel=WEB' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| store_number | string | Yes | 040937 | Pizza Hut's store number, from /pizzahut/stores |
| channel | string | No | WEB | Order channel the menu is priced for (default WEB) |
{
"code": 200,
"msg": "OK",
"data": {
"store_number": "040937",
"menu_id": "22590d80-9482-4f7b-9594-d7ba2885b928",
"channel": "WEB",
"currency": "USD",
"categories": [
{
"category_code": "pizza",
"name": "Pizza",
"items": [
{
"type": "product",
"code": "CLSS001P|PROD220P",
"name": "Pepperoni Pizza",
"variant_code": "variant_CLSS001_220P_SIZE060L_BASE020H",
"price": {
"amount_cents": 2099,
"amount": 20.99,
"currency_code": "USD"
},
"image_url": "https://www.pizzahut.com/assets/w/POS/Pizza_ProductTile_PEPPERONI_Web_175x203.jpg",
"available": true,
"variants": [
{
"variant_code": "variant_CLSS001_220P_SIZE020P_BASE015P",
"name": "Personal Pan® Pepperoni Pizza",
"price": {
"amount_cents": 669,
"amount": 6.69,
"currency_code": "USD"
},
"available": true
},
{
"variant_code": "variant_CLSS001_220P_SIZE060L_BASE431S",
"name": "Large Original Stuffed Crust® Pepperoni Pizza",
"price": {
"amount_cents": 2509,
"amount": 25.09,
"currency_code": "USD"
},
"available": true
}
]
}
]
}
],
"item_count": 120,
"uncategorized_items": [
{
"type": "product",
"code": "CLSS070A|PROD871AN",
"name": "Ranch Dip Cup",
"variant_code": "variant_CLSS070_871AN_SIZE185O",
"price": {
"amount_cents": 99,
"amount": 0.99,
"currency_code": "USD"
},
"available": true
}
],
"source_url": "https://www.pizzahut.com/v1/tarmor/ph_us/storefront/graphql",
"fetched_at": "2026-09-05T00:00:00Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.