Store locator and footprint mapping
Papa John'sエンドポイントを使えば、「Store locator and footprint mapping」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Turn Papa John's public store and menu data into structured JSON — a US directory browse from country to state to city to store, coordinate-based nearby search with distance, hours, price range, and fulfillment services, full per-store detail including a Google Place ID, Papa John's own national nutrition-facts and allergen-matrix reference data, and — for the separate India market — a live priced menu (INR) with deals, item options, and store lookup. Credential-free.
Browse Papa John's US store directory, get nutrition/allergen data, and pull India's live priced menu and deals as structured JSON.
エンドポイントファミリー
6
ドキュメント化されたパラメータ
26
サンプル数
9
ライブカタログスナップショット
稼働エンドポイント
9
メソッド
GET
必須パラメータ
15
スキーマ参照
9
{
"platform": "Papa John's",
"endpoint": "papajohns-directory",
"method": "GET",
"path": "/papajohns/directory",
"auth": "apiKey"
}ユースケース
Browse Papa John's US store directory, get nutrition/allergen data, and pull India's live priced menu and deals as structured JSON.
Papa John'sエンドポイントを使えば、「Store locator and footprint mapping」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Papa John'sエンドポイントを使えば、「Delivery/pickup coverage research」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Papa John'sエンドポイントを使えば、「Local retail presence monitoring」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Papa John'sエンドポイントを使えば、「Nutrition and allergen lookup」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
Papa John'sエンドポイントを使えば、「India menu, deal, and pricing monitoring」をドキュメント化された入力とJSONレスポンスによる再現可能なAPIリクエストに変えられます。
マネージド実行
以下の数値はすべて、稼働中のPapa John'sエンドポイントカタログから取得しています(エンドポイント9件、ドキュメント化されたリクエストパラメータ26個、公開レスポンススキーマ9件)。DocsとPlaygroundが参照しているカタログと同じものです。
Papa John'sのエンドポイントは9件、6つのリクエストファミリーに分類されています(India、Allergens、Directoryほか3件)。
これらのPapa John'sエンドポイントには26個のリクエストパラメータがドキュメント化されており、うち15個が必須です。統合コードを書く前に入力仕様をすべて確認できます。
9件のPapa John'sエンドポイントのうち9件が実際のサンプルレスポンスを、9件がドキュメント化されたレスポンススキーマを備えています。最初のリクエストの前に実データの形に合わせて実装できます。
Papa John'sのエンドポイントは成功時のスキーマに加えてエラーレスポンス(400、404、429、503)もドキュメント化しています。ブロック、レート制限、レコード欠損は空データではなく型付きのエラーとして返ります。
Papa John'sのエンドポイントは9個のホスト型MCPツールとして提供されており、エージェントは同じパラメータと同じJSON契約のまま、追加の実装なしに同じルートを呼び出せます。
カバレッジマップ
これらのカードは稼働中のエンドポイントカタログから生成されるため、このページはDocsとPlaygroundが使うAPIサーフェスをそのまま反映します。
/papajohns/india/menu
/papajohns/allergens
/papajohns/directory
/papajohns/nearby
/papajohns/nutrition
/papajohns/store
エンドポイントカタログ
/papajohns/directoryReturns one level of Papa John's store directory. Omit path for the root country index, then pass a child's path to descend through state, city, and store levels. Each child includes its name, path, URL, store count when available, and whether it is a store leaf. Pass a store child's path to GET /papajohns/store. This is a directory browse; use GET /papajohns/nearby for a coordinate search.
MCPツール papajohns_directory
/papajohns/nearbyReturns Papa John's stores within a radius of a latitude/longitude, ordered nearest first, with distance, address, phone, hours, timezone, price range, fulfillment services, payment options, and ordering link. The response includes total_in_radius and offset paging. A coordinate with no nearby stores returns an empty list.
MCPツール papajohns_nearby
/papajohns/storeReturns one Papa John's store's published profile: address, phone, coordinates, general and pickup hours, timezone, Google Place id, and ordering link. The path comes from a store child returned by GET /papajohns/directory. Passing a directory path returns 404.
MCPツール papajohns_store
/papajohns/nutritionReturns Papa John's own published nutrition-facts panel for every item in one category -- full pizzas by name, or a single ingredient family (crust, cheese, sauce, toppings). Each item lists every published size/crust variant with serving size and a full nutrition-facts breakdown (calories, fat, cholesterol, sodium, carbohydrate, fiber, sugars, protein). This is Papa John's national reference data, not priced per-store data -- see GET /papajohns/directory for store lookup.
MCPツール papajohns_nutrition
/papajohns/allergensReturns Papa John's complete published item x allergen matrix (crusts, sauces, cheeses, meats, veggies, and more), grouped by section, each item flagged for peanut, tree nut, egg, milk, wheat, soy, fish, shellfish, and sesame content.
MCPツール papajohns_allergens
/papajohns/india/menuReturns Papa John's **India** menu with live prices in Indian Rupees, from papajohns.in's own ordering backend. This is the India market only -- prices, items, and availability are India-specific and are not comparable to Papa John's US/Canada data (see GET /papajohns/nutrition for US national reference data). Returns every category with its items and deals: list price, strike-through price where a discount is active, dietary tags (Veg, Non Veg, Spicy), images, and the store/channel/day combinations where an item is blacked out. Set include_options=true to also get each item's full size, crust, topping, sauce, and drizzle tree with per-option prices -- this makes the response very large, so prefer GET /papajohns/india/menu/item for one item's options. Pricing is franchise-wide rather than per-store; store_id, channel_id, and day filter item availability, not price, and only take effect when all three are supplied.
レスポンスに関する注記
- **Pricing is franchise-wide, not per-store.** `store_id`, `channel_id`, and `day` filter item *availability*, never price. - **The availability filter needs all three of `store_id`, `channel_id`, and `day`.** Upstream blacks an item out only at a specific store × channel × day combination, so a partial selection cannot hide anything. `filters.availability_filter_applied` reports whether the filter actually ran. - Each item's `availability` lists the blackout combinations (`blacked_out_store_ids`, `blacked_out_channel_ids`, `blacked_out_days`). Empty lists mean the item is available everywhere. - Items and deals share one upstream rank space and are returned merged in that order, so a deal can appear between two a la carte items. Filter on `kind` (`item` or `deal`) to separate them. - `include_options=true` makes the response substantially larger (roughly 1MB for the whole catalog versus ~58KB without). Prefer [`/papajohns/india/menu/item`](papajohns-india-menu-item.md) for one item. - A deal (`kind` is `deal`) whose price is computed rather than fixed reports `price` `0` — read `price_type` instead. See [`/papajohns/india/deal`](papajohns-india-deal.md) for a deal's full composition. - `taxes` carries the franchise tax applied on top of menu prices; menu prices are pre-tax unless a tax is marked `inclusive`. - An unknown `channel_id` or `day` returns a `400`. Example response: ```json {"code":200,"msg":"OK","data":{"market":"india","currency":{"code":"₹","name":"Indian Rupee","locale":"en-IN","country_code":"91"},"taxes":[{"name":"GST","type":"percentage","value":5,"inclusive":false}],"tags":["Veg","Non Veg","Spicy"],"categories":[{"id":"6","name":"Pizzas","rank":7,"items":[{"id":"60","name":"CHICKEN PEPPERONI","kind":"item","description":"Smoky chicken pepperoni, melty real mozzarella, and pizza sauce.","price":679,"discounted":false,"category_id":"6","rank":58,"tags":["Spicy","Non Veg"],"image_url":"https://d1t8cetepnp3l.cloudfront.net/pj_webapp/images/Website/chicken-pepperoni4180.png","customizable":true,"upsell":false,"availability":{}}],"subcategories":[{"id":"8","name":"India Special","items":[]}],"item_count":38}],"item_count":114,"filters":{"availability_filter_applied":false},"source_url":"https://papajohns.suntechsolutions.us/api/newmenu?store_id=0&day=6&channel_id=0","fetched_at":"2026-09-05T09:00:00Z"}} ```
MCPツール papajohns_india_menu
/papajohns/india/storesReturns every Papa John's **India** restaurant with its address, phone, coordinates, and weekly opening hours broken down per order channel (delivery, take away, dine in, drive-through pickup). These store ids are what GET /papajohns/india/menu's store_id availability filter is keyed on. India market only -- for US/Canada stores use GET /papajohns/directory, GET /papajohns/store, or GET /papajohns/nearby.
レスポンスに関する注記
- `hours` has one entry per weekday per channel, so a store publishing three channels returns 21 entries. `channels` lists the distinct channel names that store publishes hours for. - Hours upstream has marked inactive are omitted. - An unknown `channel_id` returns a `400`. Example response: ```json {"code":200,"msg":"OK","data":{"market":"india","stores":[{"id":"7","name":"PJPB - 360° Business Park, Electronics City BLR","store_code":"QRyCHD","address":"Papa Johns, Electronic City Phase I, Electronic City, Bengaluru, Karnataka 560100","phone":"9240244043","latitude":12.840903161072498,"longitude":77.65593675511532,"hours":[{"day":"Monday","channel_id":"2","channel":"Take Away","opens":"11:00:00","closes":"23:00:59"}],"channels":["Dine In","Drive Through Pickup","Take Away"]}],"count":9,"source_url":"https://papajohns.suntechsolutions.us/api/stores","fetched_at":"2026-09-05T09:00:00Z"}} ```
MCPツール papajohns_india_stores
/papajohns/india/menu/itemReturns one Papa John's **India** menu item with its complete customization tree: every size, and for each size every crust, topping, dipping sauce, drizzle, and base sauce with that option's own price in Indian Rupees. The option group flagged base_price carries the item's base price for that size (the crust group on pizzas) rather than an add-on charge; half_price is the surcharge when the option is applied to one half of a pizza. India market only -- prices are Indian Rupees. Use GET /papajohns/india/menu to discover item ids.
レスポンスに関する注記
- The option group flagged `base_price` carries the item's base price for that size (the crust group on pizzas) rather than an add-on charge. Every other group's `price` is a surcharge. - `half_price` on a choice is the charge when that option is applied to one half of a pizza; a group with `halves_enabled` supports half-and-half selection. - `selection_rule` and `selection_spec` come from upstream and describe how many options may be picked, e.g. `Exactly` `1`, or `Between` `0,10`. - Options upstream has disabled are omitted rather than returned inactive. - An unknown `item_id` returns a `404`. Deal ids are not item ids — use [`/papajohns/india/deal`](papajohns-india-deal.md) for those. Example response: ```json {"code":200,"msg":"OK","data":{"market":"india","currency":{"code":"₹","name":"Indian Rupee","locale":"en-IN","country_code":"91"},"taxes":[{"name":"GST","type":"percentage","value":5,"inclusive":false}],"category":"Pizzas","item":{"id":"71","name":"MARGHERITA","kind":"item","price":399,"discounted":false,"category_id":"6","tags":["Veg"],"customizable":true,"upsell":false,"availability":{},"sizes":[{"id":"3","name":"Large","default":true,"rank":1,"option_groups":[{"id":"1","name":"Crust","selection_rule":"Exactly","selection_spec":"1","base_price":true,"halves_enabled":true,"choices":[{"id":"1","name":"Original Crust","price":799,"half_price":399.5,"default":true,"extra":false,"removable":false}]}]}]},"source_url":"https://papajohns.suntechsolutions.us/api/newmenu?store_id=0&day=6&channel_id=0","fetched_at":"2026-09-05T09:00:00Z"}} ```
MCPツール papajohns_india_menu_item
/papajohns/india/dealReturns one Papa John's **India** combo or offer with its full composition: each slot in the deal (with its quantity, size, and whether it can be skipped) and every menu item eligible to fill that slot, with each choice's own price in Indian Rupees. This is materially more than the deal row in GET /papajohns/india/menu, which carries only the deal's name, price, and pricing rule. price_type is one of fixedPrice, BuyXGetY, HalfAndHalf, or variablePrice; only fixedPrice deals report a non-zero price. India market only.
レスポンスに関する注記
- `price_type` is one of `fixedPrice`, `BuyXGetY`, `HalfAndHalf`, or `variablePrice`. Only a `fixedPrice` deal reports a non-zero `price`; the others are computed from the chosen items at order time. - `buy_x`/`get_y` are set on `BuyXGetY` deals. `sum_of_two`/`highest_of_two` describe how a two-item `HalfAndHalf` deal is priced. - A slot with `optional` true may be skipped when ordering. Each choice carries the size and the price that size costs inside this deal, which is often lower than the same item's a la carte price. - `start_time`/`end_time` appear only when the deal is genuinely time-limited. The operator encodes "available all day" as a zero-length window, which is omitted rather than reported as a deal that is never orderable. - A non-numeric `deal_id` returns a `400`; an id the operator has no deal for returns a `404`. Example response: ```json {"code":200,"msg":"OK","data":{"market":"india","id":"17","name":"Sakkath Veg Combo - Dine In","description":"Sakkath Combo","price":699,"price_type":"fixedPrice","category_id":"11","slots":[{"id":"1376","quantity":1,"optional":false,"choices":[{"item_id":"37","name":"BREADSTICKS","size":"6 PC","category":"Sides"},{"item_id":"71","name":"MARGHERITA","price":399,"size":"Medium","size_id":"2","category":"Pizzas"}],"choice_count":5}],"source_url":"https://papajohns.suntechsolutions.us/api/dealdetails/17","fetched_at":"2026-09-05T09:00:00Z"}} ```
MCPツール papajohns_india_deal
関連API
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
Papa John'sのスクレイピング方法
Crawlora's Papa John's endpoints return normalized public Papa John's data as JSON with one API key — no Papa John's account required. The US family is locator plus national nutrition/allergen reference data — no credential-free US menu-pricing source was found. The India family (papajohns/india/*) is a separate operator and a separate priced menu in Indian Rupees — don't mix the two markets.
Call /papajohns/directory with no path for the root country index, then pass a returned child's path to descend through state, city, and store levels. Each child carries name, path, url, is_store, and store_count when published.
Pass a latitude and longitude to /papajohns/nearby for stores within a radius, nearest first, each with distance, address, phone, coordinates, hours, timezone, price range, fulfillment services, payment options, and ordering URL. Page through total_in_radius with offset for a dense area.
Pass the path from a directory entry flagged is_store, or a /papajohns/nearby result's own path, to /papajohns/store for its store ID, name, address, phone, coordinates, general and pickup hours, timezone, and Google Place ID — passing a directory (non-store) path returns a 404.
Pass a category (cheese, crust, desserts, dipping-sauces, drinks, extras, papa-bowls, papadias, pizzas, sandwiches, sauce, sides, toppings, or wings) to /papajohns/nutrition for every published size/crust variant's serving size and full nutrition breakdown. This is national reference data, not priced per-store data.
Call /papajohns/allergens with no parameters for Papa John's complete published item x allergen guide — crusts, sauces, cheeses, meats, veggies, and more — grouped by section, each flagged for peanut, tree nut, egg, milk, wheat, soy, fish, shellfish, and sesame content.
Call /papajohns/india/menu for every category's items and deals with live prices in Indian Rupees, discount strike-through pricing, dietary tags, and store/channel/day blackout availability. Pass category_id, store_id, channel_id, day, or tag to narrow it, or include_options for the full size/crust/topping tree.
Pass an item id from /papajohns/india/menu to /papajohns/india/menu/item for its full option tree with per-option prices, or a deal id to /papajohns/india/deal for that deal's exact item composition.
Call /papajohns/india/stores for Papa John's India restaurant list — use a returned store_id to filter /papajohns/india/menu's availability for that specific store.
FAQ
Call /papajohns/directory to browse country/state/city/store levels, /papajohns/nearby with a coordinate for nearby stores, /papajohns/store with a store path for full detail, /papajohns/nutrition for the national nutrition-facts panel, or /papajohns/allergens for the allergen matrix — all return structured JSON with one API key.
For the US: no credential-free per-store menu-pricing source was found, so store data covers location, hours, and fulfillment/payment options only, and nutrition/allergen data are Papa John's national reference figures, not priced per-store data. For India, it's different: /papajohns/india/menu returns a fully priced menu (₹) with live discounts, dietary tags, and per-store/channel/day availability — read from papajohns.in's own ordering backend. The two markets are separate operators and separate catalogs; don't compare them.
Check is_store on the entry — only those paths are valid input to /papajohns/store; a country, state, or city path returns a 404 there instead of a hollow record.
Distance from the search coordinate, plus enough store detail (address, phone, hours, price range, fulfillment services) that a follow-up /papajohns/store call is often unnecessary — its path can still be passed to /papajohns/store for the Google Place ID and pickup-specific hours.
It covers every item Papa John's itself publishes nutrition data for, grouped into 14 categories (pizzas, wings, sides, and more) — pass one category per call. A nutrient Papa John's doesn't publish for a given variant is omitted rather than reported as a real zero.
Menu prices are pre-tax unless a given tax entry is marked inclusive — /papajohns/india/menu's taxes array carries the franchise tax (e.g. GST) applied on top. A deal whose price is computed rather than fixed reports price as 0; read price_type instead, or call /papajohns/india/deal for that deal's exact composition.