---
title: "Find Papa John's restaurants in an international market"
method: GET
path: "/papajohns/intl/stores"
tags: ["Papa John's"]
---

# Find Papa John's restaurants in an international market

`GET /papajohns/intl/stores`

## Request

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

Returns Papa John's restaurants in one of six international markets: Chile, Costa Rica, Guatemala, Panama, Portugal, and Spain -- either every restaurant near a coordinate, or one known restaurant looked up by id. Each restaurant carries its address, coordinates, phone, per-weekday opening hours split by fulfillment channel, accepted payment methods, delivery zones with their minimum-order and free-delivery thresholds, and live delivery/pickup open flags. Restaurants come back ranked by distance with no radius limit, five at a time by default; page and limit walk the rest, and the response reports total_count, the market's whole restaurant total. The returned id is what GET /papajohns/intl/menu prices against, and menu_id is what GET /papajohns/intl/ingredients reads. This covers those six markets only -- for India use GET /papajohns/india/stores, and for the US and Canada use GET /papajohns/directory, GET /papajohns/store, or GET /papajohns/nearby.

## Query parameters

- `market` 'chile' | 'costa-rica' | 'guatemala' | 'panama' | 'portugal' | 'spain', required
- `store_id` string
- `latitude` string
- `longitude` string
- `fulfillment` 'delivery' | 'pickup'
- `page` integer
- `limit` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- PapajohnsIntlStoresResponseDoc
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` PapajohnsIntlStoresResponse
    - `count` integer: Count is how many restaurants this response carries.
    - `fetched_at` string
    - `fulfillment` string: Fulfillment, Latitude and Longitude echo a coordinate search and are absent on a store_id lookup, which has no search origin. They are omitted rather than zeroed because 0,0 is itself a real coordinate.
    - `latitude` number
    - `longitude` number
    - `market` string
    - `page` integer: Page, TotalPages and TotalCount describe the rest of the result set, so a caller can tell a first page from the whole of it. TotalCount is the market-wide restaurant total rather than a match count, because the search has no radius cut-off -- every restaurant in the market is ranked, and this is where in that ranking the response sits. All three are absent for a store_id lookup and for pickup, neither of which upstream paginates.
    - `source_url` string
    - `stores` PapajohnsIntlStore[]
      - `address` string
      - `city` string
      - `delivery_open` boolean
      - `delivery_wait_minutes` integer
      - `delivery_zones` PapajohnsIntlDeliveryZone[]
        - `delivery_price` number
        - `minimum_order_for_delivery` number
        - `minimum_order_for_free_delivery` number
        - `name` string
      - `external_delivery` boolean
      - `future_orders` boolean
      - `hours` PapajohnsIntlStoreHours[]
        - `closes` string
        - `day` string
        - `dispatch_method` string: DispatchMethod is the fulfillment channel this window applies to, e.g. in_store or pj_delivery.
        - `opens` string
      - `id` integer
      - `latitude` number
      - `longitude` number
      - `map_url` string
      - `menu_id` integer: MenuID identifies the catalog this restaurant serves. Several restaurants usually share one.
      - `name` string
      - `order_method` string: OrderMethod is the fulfillment the restaurant supports, as upstream reports it, e.g. both, delivery, or pick_up.
      - `payment_methods` string[]: PaymentMethods lists only the methods this restaurant actually accepts.
      - `phone` string
      - `pickup_open` boolean
      - `pickup_wait_minutes` integer
      - `region` string
    - `total_count` integer
    - `total_pages` 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/028417aa35bb?raw)
