---
title: "Get one Papa John's menu item with its options"
method: GET
path: "/papajohns/menu/item"
tags: ["Papa John's"]
---

# Get one Papa John's menu item with its options

`GET /papajohns/menu/item`

## Request

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

Returns one Papa John's US or Canada menu SKU with that restaurant's price for it, together with the full customization axes of the product group it belongs to: every size and crust the product is sold in, and every preparation instruction with its choices and default. The response also names the category and section the item sits under. Pass a store_id so the price is that restaurant's; omitting it returns the national default price. SKUs come from GET /papajohns/menu.

## Query parameters

- `sku` string, required
- `store_id` string

## Headers

- `x-api-key` string, required

## Response `200`

OK

- PapajohnsMenuItemResponseDoc
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` PapajohnsMenuItemResponse
    - `category` string
    - `fetched_at` string
    - `group` PapajohnsMenuProductGroup
      - `allow_half_toppings` boolean
      - `available_topping_ids` integer[]
      - `crusts` PapajohnsMenuCrust[]
        - `code` string
        - `default` boolean
        - `id` integer
        - `name` string
        - `sub_type` string
      - `customizable` string: Customizable reports how far the product can be customized, as upstream classifies it, e.g. full or none.
      - `description` string
      - `featured` boolean
      - `free_toppings` integer
      - `id` string
      - `image_url` string
      - `instructions` PapajohnsMenuInstruction[]
        - `choices` PapajohnsMenuInstructionChoice[]
          - `code` string
          - `default` boolean
          - `id` integer
          - `name` string
        - `description` string
        - `id` integer
        - `name` string
      - `max_same_topping` integer
      - `max_toppings` integer: Topping rules. AvailableToppingIDs are upstream's own numeric ids; this API publishes no name for them, so they are exposed as ids rather than invented labels.
      - `price_from` number: PriceFrom is the cheapest priced SKU in the group, so a caller can rank products without walking every SKU.
      - `products` PapajohnsMenuProduct[]
        - `calories` integer: Calories is per the serving described by serving_label.
        - `code` string
        - `crust_id` integer
        - `description` string
        - `disclaimer` string
        - `image_url` string
        - `name` string
        - `price` number: Price is this store's price. A build-your-own SKU whose price depends entirely on the customer's choices reports 0.
        - `regular_price` number: RegularPrice is the pre-promotion menu price where it differs.
        - `serving_label` string: ServingLabel describes what calories are counted per, e.g. "/slice, 6 slices".
        - `size` string: Size is the size label this SKU represents within its group.
        - `size_id` integer
        - `sku` string
        - `slices` integer
        - `surcharge` number
        - `title` string: Title is the shorter in-menu label, e.g. "Small Original Crust - Pepperoni".
      - `sizes` PapajohnsMenuSize[]: Sizes, Crusts and Instructions are populated only when include_options=true.
        - `default` boolean
        - `id` integer
        - `measure` string: Measure is the physical size where the group has one, e.g. 10".
        - `name` string: Name is the size's marketing name, e.g. Small.
      - `title` string
    - `national_default` boolean
    - `product` PapajohnsMenuProduct
      - `calories` integer: Calories is per the serving described by serving_label.
      - `code` string
      - `crust_id` integer
      - `description` string
      - `disclaimer` string
      - `image_url` string
      - `name` string
      - `price` number: Price is this store's price. A build-your-own SKU whose price depends entirely on the customer's choices reports 0.
      - `regular_price` number: RegularPrice is the pre-promotion menu price where it differs.
      - `serving_label` string: ServingLabel describes what calories are counted per, e.g. "/slice, 6 slices".
      - `size` string: Size is the size label this SKU represents within its group.
      - `size_id` integer
      - `sku` string
      - `slices` integer
      - `surcharge` number
      - `title` string: Title is the shorter in-menu label, e.g. "Small Original Crust - Pepperoni".
    - `section` string
    - `source_url` string
    - `store_id` integer
  - `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/afac9b012a27?raw)
