Endpoint Playground
Returns one Jimmy John's restaurant's full menu as a category tree: every category and its products, with name, description, calorie range, base cost and image. restaurant_id comes from GET /jimmy-johns/nearby. Many sandwiches price entirely through a size selection rather than a base cost, so cost is commonly 0 for those items -- see GET /jimmy-johns/modifiers for the real per-size price.
14 Oct 2026: 20 categories; 3 fields had a value in every checked item.
Sample value profiles: name: “What’s New” and 16 other values; products: median 6 entries.
curl 'https://api.crawlora.net/api/v1/jimmy-johns/menu?restaurant_id=67182' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| restaurant_id | integer | Yes | 67182 | Olo restaurant id from /jimmy-johns/nearby |
{
"code": 200,
"msg": "OK",
"data": {
"restaurant_id": 67182,
"categories": [
{
"category_id": 69933,
"name": "Originals",
"products": [
{
"product_id": 33276056,
"chain_product_id": 353441,
"name": "#1 The Pepe®",
"description": "HAM, PROVOLONE, lettuce, tomato & mayo",
"cost": 0,
"base_calories": "370",
"max_calories": "650",
"image_url": "https://olo-images-live.imgix.net/49/497e4a5114b6455fa74aa9b808dbe499.png"
}
]
}
],
"category_count": 20,
"product_count": 180,
"source_url": "https://jj.ordering.api.olo.com/v1.1/restaurants/67182/menu",
"fetched_at": "2026-09-02T00:00:00Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.