Endpoint Playground
Returns one Subway store's complete menu: every category, every product, and for each purchasable size (Footlong, 6-inch, etc.) its price, full nutrition panel (calories, fat, sodium, protein and more) and allergen disclosures. Store IDs come from a GET /subway/store result's store_id field. This endpoint currently covers US stores only: the menu is not available for non-US stores, which return 404 -- see GET /subway/combos for the bundle/combo categories that are available in other markets. Categories carry is_main_category: true for human-browsable menu sections (Sandwiches, Drinks, Salads, ...) and false for Subway's own internal build/customization groupings, which are included for completeness but are not meant to be shown as menu sections on their own.
14 Oct 2026: 94 categories; 4 fields had a value in every checked item and 2 varied between items.
Sample value profiles: name: “Snacks, Sides & Desserts” and 39 other values; is_main_category: true in 21 of 94; items: median 1 entry.
curl 'https://api.crawlora.net/api/v1/subway/menu?store_id=75376-0' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| store_id | string | Yes | 75376-0 | Store ID from a /subway/store result's store_id |
{
"code": 200,
"msg": "OK",
"data": {
"store_id": "75376-0",
"currency": "USD",
"category_count": 1,
"product_count": 1,
"categories": [
{
"id": "1187",
"name": "Steak",
"is_main_category": true,
"items": [
{
"id": "50080",
"name": "Steak Philly",
"slug": "steak-philly",
"variants": [
{
"id": "50081",
"name": "Steak Philly Sandwich (1DM)",
"size": "Footlong",
"price": 13.99,
"available": true,
"nutrition": [
{
"name": "CALORIES",
"value": 1010
},
{
"name": "TOTAL FAT (g)",
"value": 50
}
],
"allergens": [
{
"name": "Milk/Lactose",
"contains": true,
"may_contain": false
}
],
"image_asset_urn": "urn:aaid:aem:steak-philly-footlong"
}
]
}
]
}
],
"source_url": "https://www.subway.com/api/store-menu/75376-0?locale=en-us",
"fetched_at": "2026-09-02T12:00:00Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.