Wendys API endpoint
Returns every item in one category of Wendy's national menu: id, name, slug, Wendy's own displayed price and calorie strings, whether it is a combo (its GET /wendys/item response returns combo_slots instead of components/variants), a limited-time-offer flag, and whether it has required customization (e.g. a salad's dressing choice). Category slugs come from GET /wendys/categories.
/wendys/menuQuery parameters:
category (required) — category slug from /api/v1/wendys/categories, e.g. hamburgers.Response includes category, items[], count, source_url, and fetched_at. Each item has item_id, name, slug, price (Wendy's own displayed price string), calories, is_combo, is_limited_time_offer, has_required_modifiers, image_url, and url.
is_combo marks an item whose /api/v1/wendys/item response returns combo_slots instead of components/variants. A combo's own calories field is blank here since calories vary by what is chosen in each slot — call /api/v1/wendys/item for the composition.
| Field | Filled in, of 14 checked | Values in the sample |
|---|---|---|
| item_id | 14 | |
| name | 14 | “Dave's Single®” and 13 other values |
| slug | 14 | |
| price | 14 | “$9.10” and 12 other values |
| calories | 14 | “560 Cal” and 13 other values |
| is_combo | 14 | true in 0 of 14 |
| is_limited_time_offer | 14 | true in 0 of 14 |
| has_required_modifiers | 14 | true in 0 of 14 |
| image_url | 14 | app.wendys.com |
| url | 14 | order.wendys.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| category | string | Yes | Category slug from /wendys/categories | hamburgers | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/wendys/menu?category=hamburgers" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"category": "hamburgers",
"items": [
{
"item_id": "31419",
"name": "Parmesan Caesar Salad",
"slug": "parmesan-caesar-salad",
"price": "$7.99",
"calories": "520 Cal",
"is_combo": false,
"is_limited_time_offer": false,
"has_required_modifiers": true,
"image_url": "https://app.wendys.com/unified/assets/menu/pg-cropped/1323_medium_US_en.png",
"url": "https://order.wendys.com/us/en/national/menu/hamburgers/parmesan-caesar-salad"
}
],
"count": 12,
"source_url": "https://order.wendys.com/us/en/national/menu/hamburgers",
"fetched_at": "2026-09-01T00:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/wendys.menuResponseDoc
| 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 | wendys.MenuResponse | No | ||||
| data.category | string | No | hamburgers | |||
| data.count | integer | No | 12 | |||
| data.fetched_at | string | No | ||||
| data.items | array | No | ||||
| data.items[].calories | string | No | 760 Cal | |||
| data.items[].has_required_modifiers | boolean | No | ||||
| data.items[].image_url | string | No | ||||
| data.items[].is_combo | boolean | No | IsCombo marks an item whose /wendys/item response returns combo_slots instead of components/variants. | |||
| data.items[].is_limited_time_offer | boolean | No | ||||
| data.items[].item_id | string | No | 31009 | |||
| data.items[].name | string | No | Dave's Combo | |||
| data.items[].price | string | No | $7.29 | Price is Wendy's own displayed price string. It is a string, not a number, because a size-variant item (e.g. fries) displays a "from" price for its default variant here -- GET /wendys/item returns the exact per-variant numeric price. | ||
| data.items[].slug | string | No | daves-combo | |||
| data.items[].url | string | No | ||||
| 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 |
| 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/wendys/menu?category=hamburgers" \
-H "x-api-key: $CRAWLORA_API_KEY"