Endpoint Playground
Returns one menu item's full description, ingredient statement, a full per-serving nutrient panel (richer than GET /panera/menu's calories/caffeine-only surface), its allergen statement, and every selectable size with its own price and calories. item_id may be negative -- GET /panera/menu itself surfaces negative item ids for some items, and they resolve fine here. Returns 404 if Panera publishes no detail page for the given item id at this cafe.
14 Oct 2026: 12 nutrients; 3 fields had a value in every checked item.
Sample value profiles: unit: g (7), mg (3), Cal (2); value: 0 to 470, median 21; name: “Calories” and 11 other values.
curl 'https://api.crawlora.net/api/v1/panera/item-detail?cafe_id=601447&item_id=650115' \
-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 | 650115 | Menu item id, from /panera/menu |
{
"code": 200,
"msg": "OK",
"data": {
"cafe_id": 601447,
"item_id": -11928,
"name": "Brisk Raspberry Tea",
"description": "A refreshing raspberry iced tea.",
"ingredient_statement": "Water, Sugar, Tea, Natural Flavor",
"sizes": [
{
"item_id": 646541,
"name": "Regular",
"price": 3.49,
"calories": 120,
"is_default": true
},
{
"item_id": 646542,
"name": "Large",
"price": 3.99,
"calories": 160
}
],
"nutrients": [
{
"name": "Calories",
"value": 120,
"unit": "Cal"
},
{
"name": "Caffeine",
"value": 25,
"unit": "mg"
}
],
"source_url": "https://www-api.panerabread.com/www-api/public/menu/placard/hash/daf73e8728d1f39973548edb64d3c4f7",
"fetched_at": "2026-09-03T12:00:00Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.