Pizza Hut API endpoint
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.
/pizzahut/storesSearches Pizza Hut restaurants by city, state, postal code, name, franchise code, or store number. At least one of store_number, city, state, postal_code, name, or franchise_code is required — an unfiltered call would enumerate every US restaurant in one response, which this endpoint intentionally does not expose.
Query parameters:
store_number (optional) — exact store number, e.g. 040937.city (optional) — restaurant city, e.g. New York.state (optional) — restaurant state, two-letter code, e.g. NY.postal_code (optional) — restaurant postal code, e.g. 10019.name (optional) — restaurant name, partial match.franchise_code (optional) — exact franchise/operator code.appear_in_store_results (optional) — restrict to restaurants Pizza Hut's own storefront marks customer-facing. Unfiltered (upstream default) unless set — passing true returned zero results for every city/state tested during research (New York, Texas, Florida), so this endpoint does not default it on the way the equivalent KFC filter does. Pass false explicitly if you want the same (no-op) behavior as leaving it unset.accepting_online_orders (optional) — restrict to restaurants currently accepting (true) or not accepting (false) online orders. Unfiltered (upstream default) unless set. Confirmed to genuinely discriminate live results (a New York statewide search: 144 total, 106 with true, 38 with false).is_archived (optional) — set true to include archived/closed restaurant records, which the upstream default (unset) already excludes. Set false to make that exclusion explicit (equivalent to leaving it unset).sort (optional) — sort order, one of store_number_asc, store_number_desc, name_asc, name_desc, franchise_code_asc, franchise_code_desc. Unsorted (upstream order) by default.max_results (optional, default 20) — maximum restaurants to return, 1-50.Response includes stores[], count, total_count, has_more, source_url, and fetched_at. total_count is how many restaurants matched upstream and can exceed count when more results exist than max_results asked for. Each store has store_number, name, address, accepting_online_orders, archived, timezone, and delivery_providers. address has address1, address2, city, state, postal_code, country_code, phone, latitude, and longitude. delivery_providers[] lists which delivery channel(s) the restaurant fulfills through — each entry has provider (one of DOORDASH, MOCK_DOORDASH, INTERNAL) and enabled; see /pizzahut/store's doc for more.
| Field | Filled in, of 9 checked | Values in the sample |
|---|---|---|
| store_number | 9 | 40,003 to 42,147, median 41,641 |
| name | 9 | 40,003 to 42,147, median 41,641 |
| address | 9 | |
| accepting_online_orders | 9 | true in 6 of 9 |
| archived | 9 | true in 0 of 9 |
| timezone | 9 | America/New_York in all 9 |
| delivery_providers | 9 | median 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| store_number | string | No | Exact store number | 040937 | |
| city | string | No | Restaurant city | New York | |
| state | string | No | Restaurant state, two-letter code | NY | |
| postal_code | string | No | Restaurant postal code | 10019 | |
| name | string | No | Restaurant name, partial match | 040937 | |
| franchise_code | string | No | Exact franchise/operator code | ||
| appear_in_store_results | boolean | No | Restrict to restaurants Pizza Hut's own storefront marks customer-facing. Unfiltered (upstream default) unless set -- passing true returns zero results for every region tested during research, so it is not defaulted on | false | |
| accepting_online_orders | boolean | No | Restrict to restaurants currently accepting (true) or not accepting (false) online orders. Unfiltered (upstream default) unless set | true | |
| is_archived | boolean | No | Set true to include archived/closed restaurant records, which the upstream default (unset) already excludes. Set false to make that exclusion explicit | false | |
| sort | string | No | Sort order Allowed values: store_number_asc, store_number_desc, name_asc, name_desc, franchise_code_asc, franchise_code_desc. | name_asc | |
| max_results | integer | No | Maximum restaurants to return, 1-50 (default 20) | 20 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/pizzahut/stores?appear_in_store_results=true&accepting_online_orders=true&is_archived=true&sort=store_number_asc" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"stores": [
{
"store_number": "040937",
"name": "040937",
"address": {
"address1": "932 8th Ave",
"city": "New York",
"state": "NY",
"postal_code": "10019",
"country_code": "US",
"phone": "+19296452154",
"latitude": 40.7655,
"longitude": -73.9835
},
"accepting_online_orders": true,
"archived": false,
"timezone": "America/New_York",
"delivery_providers": [
{
"provider": "INTERNAL",
"enabled": true
}
]
}
],
"count": 5,
"total_count": 9,
"has_more": true,
"source_url": "https://www.pizzahut.com/v1/tarmor/ph_us/storefront/graphql",
"fetched_at": "2026-09-05T00:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/pizzahut.storesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | pizzahut.StoresResponse | No | ||||
| data.count | integer | No | 5 | |||
| data.fetched_at | string | No | ||||
| data.has_more | boolean | No | false | |||
| data.source_url | string | No | ||||
| data.stores | array | No | ||||
| data.stores[].accepting_online_orders | boolean | No | true | |||
| data.stores[].address | pizzahut.Address | No | Address record, 9 fields: address1, address2, city, country_code, latitude, longitude, phone, postal_code, state. Described under Pizza Hut Store API. | |||
| data.stores[].archived | boolean | No | false | |||
| data.stores[].delivery_providers | array | No | ||||
| data.stores[].delivery_providers[].enabled | boolean | No | true | |||
| data.stores[].delivery_providers[].provider | string | No | INTERNAL | |||
| data.stores[].name | string | No | 040937 | |||
| data.stores[].store_number | string | No | 040937 | |||
| data.stores[].timezone | string | No | America/New_York | |||
| data.total_count | integer | No | 9 | TotalCount is how many restaurants matched upstream; it can exceed Count when more results exist than max_results asked for. | ||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/pizzahut/stores?appear_in_store_results=true&accepting_online_orders=true&is_archived=true&sort=store_number_asc" \
-H "x-api-key: $CRAWLORA_API_KEY"