McDonalds API endpoint
Returns the same published nutrition detail as GET /mcdonalds/item for up to 20 items in one call, plus the per-component ingredient and allergen breakdown that the single-item endpoint does not expose -- a composite item's overall allergen statement is the union of its parts' (a burger's bun, patty, cheese and condiment each carry their own ingredient statement and allergens), so this is the source to use when the full breakdown matters, not just the item-level summary. Item ids come from GET /mcdonalds/menu and are market-specific, so pass the same country back. The response echoes the requested ids so a caller can tell which ones McDonald's returned nothing for.
/mcdonalds/item-listPrices are not available — McDonald's does not publish them on this surface.
A composite item's overall allergen statement is the union of its parts', not a single fact: a burger's bun, patty, cheese and condiment each carry their own ingredient statement and allergens. components[] on this endpoint exposes that breakdown directly; /mcdonalds/item only carries the whole-item statement. Use this endpoint when the per-component detail matters, or when fetching nutrition for several items at once (e.g. a whole category) without one request per item.
Query parameters:
item_ids (required) — comma-separated McDonald's numeric product ids, up to 20, e.g. 200463,200466,200476. Duplicates are collapsed.country (optional, default us) — which market. One of us, ca, au, ie, nz, ch, se. Same market restriction as /mcdonalds/item — Great Britain has a menu but no nutrition surface, and item ids are not portable across markets.Response includes country, items[], count, requested[], source_url, and fetched_at. requested[] echoes the id list as asked for, so a caller can tell which ids McDonald's returned nothing for.
Each entry in items[] has item_id, name, description, nutrients[] (same shape as /mcdonalds/item), allergens, ingredients, components[], and image_url. components[] is absent for a single-part item; each entry has ingredients and allergens for that one part.
| Field | Filled in, of 2 checked | Values in the sample |
|---|---|---|
| item_id | 2 | |
| name | 2 | “Big Mac” and 1 other value |
| description | 2 | median 857 characters |
| nutrients | 2 | median 21 entries |
| allergens | 2 | “Wheat, Sesame., Beef Patty Ingredients: 100% Pure Usda Insp…” and 1 other value |
| ingredients | 2 | median 819 characters |
| components | 2 | median 7 entries |
| image_url | 2 | s7d1.scene7.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| item_ids | string | Yes | Comma-separated McDonald's numeric product ids, up to 20 | 200463,200466,200476 | |
| country | string | No | Market (default us). One of us, ca, au, ie, nz, ch, se. Must match the market the item ids came from. Allowed values: us, ca, au, ie, nz, ch, se. | us | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/mcdonalds/item-list?item_ids=200463%2C200466%2C200476&country=us" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"country": "us",
"items": [
{
"item_id": "200466",
"name": "Quarter Pounder with Cheese",
"nutrients": [
{
"name": "Calories",
"key": "calories",
"value": "520",
"unit": "Cal."
},
{
"name": "Sodium",
"key": "sodium",
"value": "1140",
"unit": "mg",
"daily_value": "50"
}
],
"components": [
{
"ingredients": "Ingredients: 100% Pure USDA Inspected Beef; No Fillers, No Extenders."
},
{
"ingredients": "Ingredients: Enriched Flour (wheat Flour, Malted Barley Flour...), Water, Sugar, Yeast.",
"allergens": "Wheat, Sesame."
},
{
"ingredients": "Ingredients: Milk, Cream, Water, Sodium Citrate, Salt, Cheese Cultures.",
"allergens": "Milk, Soy."
}
],
"image_url": "https://s7d1.scene7.com/is/image/mcdonalds/h-mcdonalds-Quarter-Pounder-with-Cheese"
}
],
"count": 1,
"requested": [
"200466"
],
"source_url": "https://www.mcdonalds.com/dnaapp/itemList?country=US&language=en&showLiveData=true&item=200466()&nutrient_req=N",
"fetched_at": "2026-09-01T09:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/mcdonalds.itemListResponseDoc
| 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 | mcdonalds.ItemListResponse | No | ||||
| data.count | integer | No | 3 | |||
| data.country | string | No | us | |||
| data.fetched_at | string | No | ||||
| data.items | array | No | ||||
| data.items[].allergens | string | No | ||||
| data.items[].components | array | No | Components is the per-part ingredient/allergen breakdown -- e.g. a burger's bun, patty, cheese and condiment each carry their own statement. Absent for a single-part item. | |||
| data.items[].components[].allergens | string | No | ||||
| data.items[].components[].ingredients | string | No | ||||
| data.items[].description | string | No | ||||
| data.items[].image_url | string | No | ||||
| data.items[].ingredients | string | No | ||||
| data.items[].item_id | string | No | 200466 | |||
| data.items[].name | string | No | Quarter Pounder with Cheese | |||
| data.items[].nutrients | array | No | Nutrient record, 5 fields: daily_value, key, name, unit, value. Described under McDonald's Item API. | |||
| data.requested | array | No | Requested echoes the id list as asked for, so a caller can tell which ids McDonald's returned nothing for. | |||
| data.source_url | string | No | ||||
| 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/mcdonalds/item-list?item_ids=200463%2C200466%2C200476&country=us" \
-H "x-api-key: $CRAWLORA_API_KEY"