TacoBell API endpoint
Returns one Taco Bell US restaurant's entire menu -- every category and item in one call, each with its price, calories, product and food type, image, and whether it is currently carried and displayed at THIS store. Where GET /taco-bell/menu returns one category's items from the national default catalog, this is store-scoped: some items are absent or hidden at some restaurants, and this is the only endpoint that shows that per store. Also returns the store's current happy-hour discount window, published nowhere else in this family. The response can be cached at the edge for up to 24 hours, so treat it as a recent snapshot of what the store carries rather than a live per-second signal; for a store's serving-time windows (breakfast vs. Balance Of Day, etc.) use GET /taco-bell/store instead. Store numbers come from GET /taco-bell/stores.
/taco-bell/store-menuAlso returned: happier_hours, the store's current happy-hour discount window, if one is in effect. This is not published anywhere else in this family.
Cache caveat: the upstream response is cacheable at the edge for up to 24 hours. Treat this endpoint as a recent snapshot of what a restaurant carries, not a live per-second signal. For a store's actual serving-time windows (breakfast vs. Balance Of Day, etc.), use /taco-bell/store instead, which is not subject to that cache.
Query parameters:
store_number (required) — Taco Bell store number, e.g. 040890. These come from /api/v1/taco-bell/stores. Leading zeros are significant; pass the value back exactly as returned.An unknown store number returns a 404.
Response includes store_number, happier_hours (omitted when no happy hour is in effect), categories[], category_count, item_count, source_url, and fetched_at. Each category has code, name, and items[]; each item has code, name, price, calories, calories_text, product_type, food_type, item_type, category, image_url, modifiable, has_meatless, and available_in_store.
| Field | Filled in, of 17 checked | Values in the sample |
|---|---|---|
| code | 17 | |
| name | 17 | “Breakfast” and 16 other values |
| items | 17 | median 13 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| store_number | string | Yes | Taco Bell store number, from /taco-bell/stores | 040890 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/taco-bell/store-menu?store_number=040890" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"store_number": "040890",
"happier_hours": {
"starts_at": "2026-09-01T21:00:00Z",
"ends_at": "2026-09-02T00:00:00Z"
},
"categories": [
{
"code": "breakfast",
"name": "Breakfast",
"items": [
{
"code": "30179",
"name": "Cheesy Toasted Breakfast Burrito Bacon",
"price": {
"value": 1.99,
"currency": "USD",
"formatted": "$1.99"
},
"calories": 350,
"calories_text": "Cal",
"food_type": "Sellable_food",
"item_type": "Product",
"category": "breakfast",
"image_url": "https://www.tacobell.com/images/30179_cheesy_toasted_burrito_bacon_269x269.jpg",
"modifiable": true,
"has_meatless": false,
"available_in_store": true
}
]
}
],
"category_count": 17,
"item_count": 312,
"source_url": "https://www.tacobell.com/tacobellwebservices/v4/tacobell/products/menu/040890",
"fetched_at": "2026-09-01T18:42:39Z"
}
}Request schema
No body schema
Response schema
#/definitions/tacobell.storeMenuResponseDoc
| 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 | tacobell.StoreMenuResponse | No | ||||
| data.categories | array | No | ||||
| data.categories[].code | string | No | breakfast | |||
| data.categories[].items | array | No | MenuItem record, 16 fields: available_in_store, calories, calories_text, category, code, food_type, has_meatless, image_url, item_type, modifiable, name, price and 1 more. Described under Taco Bell Menu API. | |||
| data.categories[].name | string | No | Breakfast | |||
| data.category_count | integer | No | 17 | |||
| data.fetched_at | string | No | ||||
| data.happier_hours | object | No | HappierHours is this store's current happy-hour discount window, if one is in effect. Not published anywhere else in this family. | |||
| data.happier_hours.ends_at | string | No | 2026-09-02T00:00:00Z | |||
| data.happier_hours.starts_at | string | No | 2026-09-01T21:00:00Z | |||
| data.item_count | integer | No | 312 | |||
| data.source_url | string | No | ||||
| data.store_number | string | No | 040890 | |||
| 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/taco-bell/store-menu?store_number=040890" \
-H "x-api-key: $CRAWLORA_API_KEY"