Papa John's API endpoint
Returns Papa John's **Russia** menu with prices in Russian roubles. Russia and Poland run one franchise platform of their own, separate from the six markets behind GET /papajohns/intl/menu and from Colombia, Peru and El Salvador, so each has its own endpoint. The catalog is national -- it does not vary by city -- and every product lists its priced variants with size, dough and any stuffed crust. Prices are roubles and are not comparable with any other market.
/papajohns/russia/menuRussia and Poland run one franchise platform of their own, separate from the six markets behind
/papajohns/intl/menuand from Colombia, Peru and El Salvador. Prices are Russian roubles and are not comparable with any other market.
Query parameters:
category (optional) — return only sections whose name or slug contains
this text, case-insensitive. Matching the slug means one value works in both
markets even though the display names are in different languages: pizza,
combo, zakuski, deserty, napitki, sauce are shared. Russia also publishes hot, kids, breakfast, childrens-dishes, autumn and other.Notable response behavior:
product_count and variant_count report what the response carries. A
product is listed once, with every priced variant under variants.size carries the market's own unit as published (23 см, 29 cm).crust is the dough, where the market publishes one.stuffed_crust names a filling baked into the rim: cheese, sausage or
sausage_cheese. Upstream marks a plain variant none; that is reported
here as an absent field rather than the literal word.category matching no section returns a 404, so an empty filter result
is distinguishable from an empty menu.| Field | Filled in, of 1 checked | Values in the sample |
|---|---|---|
| id | 1 | |
| name | 1 | “Пицца” |
| alias | 1 | “pizza” |
| products | 1 | median 47 entries |
| product_count | 1 | 47 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| category | string | No | Return only sections whose name or slug contains this text, case-insensitive. Slugs work in either market, e.g. pizza, combo, deserty, napitki, sauce, zakuski | pizza | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/papajohns/russia/menu" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"market": "russia",
"currency": "RUB",
"categories": [
{
"id": "1",
"name": "Пицца",
"alias": "pizza",
"products": [
{
"id": "11542",
"name": "Чизбургер",
"category": "Пицца",
"price_from": 580,
"currency": "RUB",
"variants": [
{
"size": "23 см",
"crust": "Традиционное",
"price": 580,
"currency": "RUB",
"available": true,
"sku": "9495"
},
{
"size": "30 см",
"crust": "Традиционное",
"stuffed_crust": "cheese",
"price": 1090,
"currency": "RUB",
"available": true,
"sku": "9497"
}
]
}
],
"product_count": 47
}
],
"product_count": 185,
"variant_count": 893,
"source_url": "https://papajohns.ru/moscow",
"fetched_at": "2026-09-07T09:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/papajohns.storefrontMenuResponseDoc
| 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.StorefrontMenuResponse | No | ||||
| data.categories | array | No | Categories carry the whole national catalog. The menu does not vary by city, so there is no city to report. StorefrontCategory record, 21 fields: alias, id, name, product_count, products. Described under Papa John's Poland Menu API. | |||
| data.category | string | No | ||||
| data.currency | string | No | RUB | |||
| data.fetched_at | string | No | ||||
| data.market | string | No | russia | |||
| data.product_count | integer | No | 185 | |||
| data.source_url | string | No | ||||
| data.variant_count | integer | No | 892 | |||
| 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 |
| 404 | Not Found | #/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/russia/menu" \
-H "x-api-key: $CRAWLORA_API_KEY"