Papa John's API endpoint
Returns 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.
/papajohns/nearbyReturns Papa John's stores near a coordinate, ordered nearest first. Each
result includes distance, address, phone, coordinates, hours, timezone, price
range, fulfillment services, payment options, ordering URL, and a path that
can be passed to /papajohns/store.
Query parameters:
latitude (required) — search center latitude, from -90 to 90.longitude (required) — search center longitude, from -180 to 180.radius (optional, default 25, max 100) — radius in miles.limit (optional, default 10, max 50) — stores per response.offset (optional, default 0) — paging offset through total_in_radius.A coordinate with no nearby stores returns an empty stores list. The
response also includes count, total_in_radius, radius, source_url, and
fetched_at.
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| store_id | 10 | |
| name | 10 | Papa Johns Pizza (8), Papa Johns Pizza - CLOSED (2) |
| address | 10 | |
| phone_number | 10 | |
| latitude | 10 | |
| longitude | 10 | |
| distance_miles | 10 | 0.6 to 6.25, median 5.5 |
| distance_kilometers | 10 | 0.97 to 10.05, median 8.86 |
| timezone | 10 | America/Los_Angeles in all 10 |
| price_range | 7 | TWO in all 7 |
| hours | 8 | median 7 entries |
| delivery_hours | 10 | median 7 entries |
| takeout_hours | 10 | median 7 entries |
| pickup_and_delivery_services | 9 | median 4 entries |
| payment_options | 7 | median 11 entries |
| order_url | 10 | papajohns.com |
| path | 10 | “united-states/ca/90012/los-angeles/701-w-cesar-e-chavez-ave” and 9 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| latitude | number | Yes | Search center latitude | 34.0522 | |
| longitude | number | Yes | Search center longitude | -118.2437 | |
| radius | integer | No | Search radius in miles, 1-100 (default 25) | 25 | |
| limit | integer | No | Maximum stores to return, 1-50 (default 10) | 10 | |
| offset | integer | No | Result offset, 0 or greater (default 0) | 0 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/papajohns/nearby?latitude=34.0522&longitude=-118.2437&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"stores": [
{
"store_id": "4269",
"name": "Papa Johns Pizza",
"address": {
"line1": "123 Main St",
"city": "Los Angeles",
"region": "CA",
"postal_code": "90001",
"country": "US"
},
"distance_miles": 0.6,
"distance_kilometers": 0.97,
"path": "united-states/ca/90001/los-angeles/123-main-st"
}
],
"count": 1,
"total_in_radius": 1,
"radius": 25,
"source_url": "https://cdn.yextapis.com/v2/accounts/me/entities/geosearch?...",
"fetched_at": "2026-09-04T09:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/papajohns.nearbyResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | papajohns.NearbyResponse | No | ||||
| data.count | integer | No | 10 | |||
| data.fetched_at | string | No | ||||
| data.radius | integer | No | 25 | |||
| data.source_url | string | No | ||||
| data.stores | array | No | ||||
| data.stores[].address | papajohns.StoreAddress | No | StoreAddress record, 5 fields: city, country, line1, postal_code, region. Described under Papa John's Store API. | |||
| data.stores[].delivery_hours | array | No | DeliveryHours and TakeoutHours are Papa John's own per-channel hours, published separately from Hours and commonly later-closing. StoreHours record, 4 fields: closed, closes, day_of_week, opens. Described under Papa John's Store API. | |||
| data.stores[].distance_kilometers | number | No | 0.97 | |||
| data.stores[].distance_miles | number | No | 0.6 | DistanceMiles and DistanceKilometers are measured from the requested coordinate. | ||
| data.stores[].hours | array | No | Hours is the store's general published week of hours. StoreHours record, 4 fields: closed, closes, day_of_week, opens. Described under Papa John's Store API. | |||
| data.stores[].latitude | number | No | 34.0614412 | |||
| data.stores[].longitude | number | No | -118.2439367 | |||
| data.stores[].name | string | No | Papa Johns Pizza | |||
| data.stores[].order_url | string | No | OrderURL is Papa John's own carryout ordering deep link for this store. | |||
| data.stores[].path | string | No | Path is the /papajohns/store path for this store, so a caller can go straight to the detail endpoint. | |||
| data.stores[].payment_options | array | No | PaymentOptions are the payment methods this store accepts, e.g. APPLEPAY, CASH, VISA. | |||
| data.stores[].phone_number | string | No | +12136172727 | PhoneNumber is Papa John's own E.164-shaped mainPhone, e.g. "+12136172727" -- deliberately left as published rather than reformatted, since geosearch and the store page publish phone numbers in different shapes (mainPhone here vs. a display-formatted string on /papajohns/store). | ||
| data.stores[].pickup_and_delivery_services | array | No | PickupAndDeliveryServices are the fulfillment flags Papa John's publishes for this store, e.g. IN_STORE_PICKUP, SAME_DAY_DELIVERY. | |||
| data.stores[].price_range | string | No | TWO | PriceRange is Papa John's own relative price tier, e.g. ONE, TWO. | ||
| data.stores[].store_id | string | No | 4269 | |||
| data.stores[].takeout_hours | array | No | StoreHours record, 4 fields: closed, closes, day_of_week, opens. Described under Papa John's Store API. | |||
| data.stores[].timezone | string | No | America/Los_Angeles | |||
| data.total_in_radius | integer | No | 73 | TotalInRadius is how many stores fall inside the radius overall, which is usually far more than one page. Use it with `offset` to page. | ||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/papajohns/nearby?latitude=34.0522&longitude=-118.2437&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"