---
title: "Get one Panera Bread cafe's catering menu with prices, nutrition and allergens"
method: GET
path: "/panera/catering-menu"
tags: ["Panera"]
---

# Get one Panera Bread cafe's catering menu with prices, nutrition and allergens

`GET /panera/catering-menu`

## Request

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

Returns one cafe's catering category list and its full catering item catalog, priced for that specific cafe -- Panera's catering ordering flow is a separate application from its retail site, with its own category structure, pricing and item availability (confirmed live: the same item priced differently between a placeholder default cafe and a real cafe). Categories are a flat list (catering does not publish a category hierarchy the way the retail menu does). Each item carries its price, product type, portion label, whether it is customizable, a full published nutrient panel (calories, calories from fat, fat, saturated fat, trans fat, cholesterol, sodium, carbohydrates, dietary fiber, total sugars, protein, caffeine -- richer than the retail menu's calories/caffeine-only surface), its allergen statement (contains / may-contain, each with an id and display name), and a live in_stock flag from this cafe's current catering stockout feed for today. Cafe ids come from GET /panera/locations.

## Query parameters

- `cafe_id` integer, required

## Headers

- `x-api-key` string, required

## Response `200`

OK

- PaneraCateringMenuResponseDoc
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` PaneraCateringMenuResponse
    - `cafe_id` integer
    - `categories` PaneraCateringCategory[]
      - `cat_id` integer
      - `image_key` string
      - `item_ids` integer[]: ItemIDs are the items under this category. Look them up in the response's top-level Items list.
      - `name` string
      - `sort_weight` integer
    - `count` integer
    - `fetched_at` string
    - `items` PaneraCateringMenuItem[]
      - `allergens` PaneraMenuAllergens
        - `contains` PaneraMenuAllergenEntry[]
          - `id` string
          - `name` string
        - `may_contain` PaneraMenuAllergenEntry[]
          - `id` string
          - `name` string
      - `customizable` boolean
      - `description` string
      - `image_key` string
      - `in_stock` boolean: InStock reflects this cafe's live catering stockout feed for today's fulfillment date. false means Panera currently has this item unavailable to order for catering at this specific cafe.
      - `item_id` integer
      - `name` string
      - `nutrients` PaneraMenuNutrient[]
        - `name` string
        - `unit` string
        - `value` number
      - `portion` string
      - `price` number
      - `product_type` string
    - `source_url` string
  - `msg` unknown

## Other responses

- `400`: Bad Request
- `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)
