Burger King API endpoint
Returns one menu entry's full detail (name, description, price, image, nutrition, allergens) plus its customization tree, when it has one -- a combo's courses and their swappable entree/side/drink choices, a picker's size/variant choices, or a customizable item's ingredient toggle groups (e.g. "Bacon": no/regular/extra) and their price deltas. Options recurses through the full upstream structure, so a combo's entree choice carries its own ingredient toggles too, not just the combo's own top-level courses. A plain, non-customizable item returns an empty options list.
/burgerking/productQuery parameters:
store_id (required) — Burger King's numeric store id, from /burgerking/locations, e.g. 17871.item_id (required) — the item, combo, or picker id, from /burgerking/menu's categories[].items[].id, e.g. item_26.market (optional, default US) — RBI market the store belongs to, one of US, CA.Response includes store_id, id, type, name, description, price, image_url, nutrition, allergens, options[], market, source_url, and fetched_at. type is one of item, combo, picker.
Each entry in options[] (and each further-nested options[] beneath it) has id, type, name, price (when the upstream prices this choice separately -- most ingredient toggles are 0), and its own options[] when it has further choices beneath it. type there is one of combo_slot, item, picker_aspect, aspect_option, modifier_group, modifier.
Example response (a customizable item with one ingredient toggle group):
{"code":200,"msg":"OK","data":{"store_id":"17871","id":"item_26","type":"item","name":"Whopper with Bacon","price":{"delivery_cents":909,"delivery":9.09,"pickup_cents":699,"pickup":6.99},"options":[{"id":"item_26$Modifier_2131","type":"modifier_group","name":"Bacon","options":[{"id":"item_26$Modifier_2131$modifierMultiplier_0-00-153847","type":"modifier","name":"No Bacon","price":{"delivery_cents":0,"delivery":0,"pickup_cents":0,"pickup":0}},{"id":"item_26$Modifier_2131$modifierMultiplier_1-50-153847","type":"modifier","name":"Extra Bacon","price":{"delivery_cents":150,"delivery":1.5,"pickup_cents":150,"pickup":1.5}}]}],"market":"US","source_url":"https://use1-prod-bk-gateway.rbictg.com/graphql","fetched_at":"2026-09-03T00:00:00Z"}}
| Field | Filled in, of 18 checked | Values in the sample |
|---|---|---|
| id | 18 | |
| type | 18 | modifier_group in all 18 |
| name | 18 | “American Cheese” and 17 other values |
| options | 18 | median 3 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| store_id | string | Yes | Burger King's numeric store id, from /burgerking/locations | 17871 | |
| item_id | string | Yes | The item, combo, or picker id, from /burgerking/menu | item_26 | |
| market | string | No | RBI market the store belongs to, one of `US`, `CA` (default `US`) | US | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/burgerking/product?store_id=17871&item_id=item_26" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"store_id": "17871",
"id": "item_26",
"type": "item",
"name": "Whopper with Bacon",
"price": {
"delivery_cents": 909,
"delivery": 9.09,
"pickup_cents": 699,
"pickup": 6.99
},
"options": [
{
"id": "item_26$Modifier_2131",
"type": "modifier_group",
"name": "Bacon",
"options": [
{
"id": "item_26$Modifier_2131$modifierMultiplier_0-00-153847",
"type": "modifier",
"name": "No Bacon",
"price": {
"delivery_cents": 0,
"delivery": 0,
"pickup_cents": 0,
"pickup": 0
}
},
{
"id": "item_26$Modifier_2131$modifierMultiplier_1-50-153847",
"type": "modifier",
"name": "Extra Bacon",
"price": {
"delivery_cents": 150,
"delivery": 1.5,
"pickup_cents": 150,
"pickup": 1.5
}
}
]
}
],
"market": "US",
"source_url": "https://use1-prod-bk-gateway.rbictg.com/graphql",
"fetched_at": "2026-09-03T00:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/burgerking.productResponseDoc
| 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 | burgerking.ProductResponse | No | ||||
| data.allergens | array | No | ||||
| data.description | string | No | ||||
| data.fetched_at | string | No | ||||
| data.id | string | No | item_26 | |||
| data.image_url | string | No | ||||
| data.market | string | No | US | |||
| data.name | string | No | Whopper with Bacon | |||
| data.nutrition | burgerking.Nutrition | No | ||||
| data.nutrition.calories | integer | No | 520 | |||
| data.nutrition.carbohydrates_grams | number | No | 31 | |||
| data.nutrition.cholesterol_mg | number | No | 80 | |||
| data.nutrition.fat_grams | number | No | 32 | |||
| data.nutrition.fiber_grams | number | No | 11 | |||
| data.nutrition.protein_grams | number | No | 26 | |||
| data.nutrition.saturated_fat_grams | number | No | 6 | |||
| data.nutrition.sodium_mg | number | No | 910 | |||
| data.nutrition.sugar_grams | number | No | 1 | |||
| data.nutrition.trans_fat_grams | number | No | ||||
| data.nutrition.weight_grams | number | No | 180 | |||
| data.options | array | No | Options is this product's customization tree -- combo courses, picker size/variant choices, or ingredient toggle groups and their concrete choices. Empty for a plain, non-customizable item. | |||
| data.options[].id | string | No | item_26$Modifier_2131 | |||
| data.options[].name | string | No | Bacon | |||
| data.options[].options | array | No | ||||
| data.options[].price | burgerking.ChannelPrice | No | ||||
| data.options[].price.delivery | number | No | 4.79 | |||
| data.options[].price.delivery_cents | integer | No | 479 | |||
| data.options[].price.pickup | number | No | 3.99 | |||
| data.options[].price.pickup_cents | integer | No | 399 | |||
| data.options[].type | string | No | modifier_group | Type is one of `combo_slot`, `item`, `picker_aspect`, `aspect_option`, `modifier_group`, `modifier`. | ||
| data.price | burgerking.ChannelPrice | No | ||||
| data.price.delivery | number | No | 4.79 | |||
| data.price.delivery_cents | integer | No | 479 | |||
| data.price.pickup | number | No | 3.99 | |||
| data.price.pickup_cents | integer | No | 399 | |||
| data.source_url | string | No | ||||
| data.store_id | string | No | 17871 | |||
| data.type | string | No | item | Type is one of `item`, `combo`, `picker`. | ||
| 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 |
| 404 | Not Found | #/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/burgerking/product?store_id=17871&item_id=item_26" \
-H "x-api-key: $CRAWLORA_API_KEY"