Dunkin API endpoint
Returns Dunkin's national menu: item names, descriptions and photos grouped into categories (Iced Drinks, Hot Drinks, Frozen Drinks, Sandwiches & Wraps, Savory Bites, Donuts & Bakery, Snacks and Sides). Dunkin publishes one shared menu across every US store, so this takes no store parameter. Does not carry prices or nutrition -- pricing varies by market/franchisee and isn't part of this content.
/dunkin/menuDunkin publishes one shared menu across every US store — confirmed live across stores in different states referencing the same underlying menu id — so this endpoint takes no query parameters and no store id, and always returns the same catalog regardless of location.
There is no price or nutrition data. Pricing varies by market and franchisee and isn't part of this content; see /api/v1/dunkin/store's menu_url for a link to a specific store's own ordering page if pricing is needed.
Response includes name, item_count, sections[], source_url, and fetched_at. Each section has name, an optional description, and items[]. Each item has id, name, an optional description, and an optional photo_url.
| Field | Filled in, of 7 checked | Values in the sample |
|---|---|---|
| name | 7 | “Iced Drinks” and 6 other values |
| description | 6 | “Crisp. Cold. Delicious. Ask to try your favorite beverages…” and 5 other values |
| items | 7 | median 11 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/dunkin/menu" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"name": "Dunkin' Menu",
"item_count": 73,
"sections": [
{
"name": "Iced Drinks",
"description": "Crisp. Cold. Delicious. Ask to try your favorite beverages served over ice.",
"items": [
{
"id": "5404831120",
"name": "Original Blend Iced Coffee",
"description": "Freshly brewed and full of flavor, our Iced Coffee is the perfect pick-me-up any time of day or night, giving you the boost you need to keep on running.",
"photo_url": "http://a.mktgcdn.com/p/_eVZj_m43aeeVjh__EXs_l-QZ470m_DP0rOMgptQOCw/374x374.png"
}
]
}
],
"source_url": "https://cdn.yextapis.com/v2/accounts/me/menus/1167742?api_key=...&v=20220101",
"fetched_at": "2026-09-04T19:30:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/dunkin.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 | dunkin.MenuResponse | No | ||||
| data.fetched_at | string | No | ||||
| data.item_count | integer | No | 73 | |||
| data.name | string | No | Dunkin' Menu | Name is Yext's own name for this menu, e.g. "Dunkin' Menu". | ||
| data.sections | array | No | ||||
| data.sections[].description | string | No | Crisp. Cold. Delicious. Ask to try your favorite beverages served over ice. | |||
| data.sections[].items | array | No | ||||
| data.sections[].items[].description | string | No | Freshly brewed and full of flavor, our Iced Coffee is the perfect pick-me-up any time of day or night. | |||
| data.sections[].items[].id | string | No | 5404831120 | |||
| data.sections[].items[].name | string | No | Original Blend Iced Coffee | |||
| data.sections[].items[].photo_url | string | No | ||||
| data.sections[].name | string | No | Iced Drinks | |||
| 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 |
|---|---|---|
| 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/dunkin/menu" \
-H "x-api-key: $CRAWLORA_API_KEY"