Endpoint Playground
Returns one item's selectable option groups: for a combo, each group is a slot to fill (for example "pick 4 sandwiches", "pick 1 soup"), listing every eligible choice; for a single customizable item, each group is one topping/add-in/amount choice (for example No, Light, Regular, Extra). Each group has min_allowed and max_allowed (how many selections it requires). Each option is one selectable choice, with its own selectable variants (amount tiers) each carrying an item_id and price -- price 0 for a variant included at no extra charge. Panera does not publish a resolved display name for options or groups on this surface, so each option carries its raw upstream image_key as the caller-facing identifier instead of a name. An item that is not customizable, or an unknown item id, returns an empty groups list rather than an error -- Panera's own API does not distinguish the two cases. Item ids come from GET /panera/menu.
14 Oct 2026: 1 groups; 4 fields had a value in every checked item.
Sample value profiles: options: median 13 entries.
curl 'https://api.crawlora.net/api/v1/panera/item-options?cafe_id=601447&item_id=643423' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| cafe_id | integer | Yes | 601447 | Panera cafe id, from /panera/locations |
| item_id | integer | Yes | 643423 | Menu item id, from /panera/menu |
{
"code": 200,
"msg": "OK",
"data": {
"cafe_id": 601447,
"item_id": 643423,
"groups": [
{
"group_id": 20964,
"min_allowed": 4,
"max_allowed": 4,
"options": [
{
"item_id": 649379,
"image_key": "chipotle-chicken-avo-melt-half-bt",
"is_default": true,
"default_qty": 2,
"allergens": {
"contains": [
{
"id": "EGG",
"name": "Egg"
},
{
"id": "MILK",
"name": "Milk"
},
{
"id": "WHEAT",
"name": "Wheat"
}
],
"may_contain": [
{
"id": "MAYSESAME",
"name": "Sesame"
}
]
},
"variants": [
{
"item_id": 649379,
"variant_type": "Regular",
"price": 0
}
]
}
]
}
],
"source_url": "https://www-api.panerabread.com/www-api/public/menu/customizations/601447/version/109855/643423/0",
"fetched_at": "2026-09-02T12:00:00Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.