Dominos API endpoint
Returns calorie information (Domino's own "Cal-O-Meter" data) for one product at one store. For a named/fixed menu item (a specialty pizza, bread, wing, pasta, sandwich, salad, drink, or dessert -- any item code from GET /dominos/menu), give only store_id and product_code; the item's default configuration is used. For a build-your-own pizza, also give size, base, and any topping codes -- calories are computed for that exact configuration, matching Domino's own live calculator. size and base must be given together; toppings requires both. Reads live, not from a cache -- each call creates and discards one anonymous cart server-side, so it is slower than this family's other endpoints. An unknown product code, or an invalid size/base/topping combination, returns an error.
/dominos/nutritionQuery parameters:
store_id (required) — Domino's store id, from /api/v1/dominos/store-locator.product_code (required) — a product code from /api/v1/dominos/menu's categories[].items[].code. For a named/fixed menu item (a specialty pizza, bread, wing, pasta, sandwich, salad, drink, or dessert), give only store_id and product_code; the item's default configuration is used.size (optional) — a build-your-own size code, from /api/v1/dominos/customization. Required together with base.base (optional) — a build-your-own crust code, from /api/v1/dominos/customization. Required together with size.toppings (optional, repeatable) — topping codes to add to a build-your-own pizza, from /api/v1/dominos/customization. Only used together with size and base. Each topping is applied to the whole pizza at normal portion; half-pizza and light/extra portion placement are not exposed.Giving size without base (or vice versa) returns 400. Giving toppings without both size and base returns 400. An unknown product_code, or an invalid size/base/topping combination for that product, returns an error.
Response includes store_id, product_code, name (the resolved product/configuration name Domino's returned — for a build-your-own pizza this echoes the full description, e.g. which size and crust were priced), calories (a free-text string, not a structured number — this is exactly the format Domino's own Cal-O-Meter shows), size, base, toppings (echoed back when given), source_url, and fetched_at.
Example response, a named item:
{"code":200,"msg":"OK","data":{"store_id":"4336","product_code":"F_PBITES","name":"16-Piece Parmesan Bread Bites","calories":"210 Calories / 4 pieces","source_url":"https://www.dominos.com/api/web-bff/graphql","fetched_at":"2026-09-04T00:00:00Z"}}
Example response, a build-your-own pizza with a topping:
{"code":200,"msg":"OK","data":{"store_id":"4336","product_code":"S_PIZZA","name":"Large (14\") Hand Tossed Pizza","calories":"220 Calories / 1 slice (1/8 of pizza)","size":"14","base":"HANDTOSS","toppings":["P"],"source_url":"https://www.dominos.com/api/web-bff/graphql","fetched_at":"2026-09-04T00:00:00Z"}}
| Field | In the sample | Value in the sample |
|---|---|---|
| store_id | Has a value | |
| product_code | Has a value | |
| name | Has a value | “16-Piece Parmesan Bread Bites” |
| calories | Has a value | “210 Calories / 4 pieces” |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| store_id | string | Yes | Domino's store id, from /dominos/store-locator | 4336 | |
| product_code | string | Yes | A product code from /dominos/menu's items[].code -- a named/fixed item, or a build-your-own base (e.g. S_PIZZA) | S_PIZZA | |
| size | string | No | Build-your-own size code, from /dominos/menu's variants. Required together with base. | 14 | |
| base | string | No | Build-your-own crust code. Required together with size. | HANDTOSS | |
| toppings | array<string> | No | Repeatable. Topping codes to add to a build-your-own pizza. Only used together with size+base. | P | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/dominos/nutrition?store_id=4336&product_code=S_PIZZA" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"store_id": "4336",
"product_code": "F_PBITES",
"name": "16-Piece Parmesan Bread Bites",
"calories": "210 Calories / 4 pieces",
"source_url": "https://www.dominos.com/api/web-bff/graphql",
"fetched_at": "2026-09-04T00:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/dominos.nutritionResponseDoc
| 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 | dominos.NutritionResponse | No | ||||
| data.base | string | No | HANDTOSS | |||
| data.calories | string | No | 180 Calories / 1 slice (1/8 of pizza) | |||
| data.fetched_at | string | No | ||||
| data.name | string | No | Large (14") Hand Tossed Pizza | Name is the resolved product/configuration name Domino's itself returned -- for a named item this confirms which default variant was priced; for a build-your-own pizza it echoes the full description. | ||
| data.product_code | string | No | S_PIZZA | |||
| data.size | string | No | 14 | |||
| data.source_url | string | No | ||||
| data.store_id | string | No | 4336 | |||
| data.toppings | array | No | P | |||
| 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/dominos/nutrition?store_id=4336&product_code=S_PIZZA" \
-H "x-api-key: $CRAWLORA_API_KEY"