---
title: "Get one Jimmy John's restaurant's full menu"
method: GET
path: "/jimmy-johns/menu"
tags: ["JimmyJohns"]
---

# Get one Jimmy John's restaurant's full menu

`GET /jimmy-johns/menu`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/jimmy-johns/menu`
- Auth: API key in header `x-api-key`

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.

## Query parameters

- `restaurant_id` integer, required

## Headers

- `x-api-key` string, required

## Response `200`

OK

- JimmyjohnsMenuResponseDoc
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` JimmyjohnsMenuResponse
    - `categories` JimmyjohnsMenuCategory[]
      - `category_id` integer
      - `name` string
      - `products` JimmyjohnsMenuProduct[]
        - `base_calories` string: BaseCalories and MaxCalories bound the calorie range across this item's size/customization options. Both arrive from upstream as strings (e.g. a "-" separator is rendered client-side), so they are kept as strings rather than coerced to a number.
        - `chain_product_id` integer: ChainProductID identifies this item across every Jimmy John's restaurant; ProductID is specific to this restaurant's menu.
        - `cost` number: Cost is the base price. Many sandwiches price entirely through a size modifier rather than a base cost, so this is commonly 0 -- it is not a parsing gap.
        - `description` string
        - `image_url` string
        - `max_calories` string
        - `name` string
        - `product_id` integer
        - `short_description` string
    - `category_count` integer
    - `fetched_at` string
    - `product_count` integer
    - `restaurant_id` integer
    - `source_url` string
  - `msg` unknown

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `429`: Too Many Requests
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/0497899e2016?raw)
