Dunkin API endpoint
Returns Dunkin restaurants within a radius of a latitude/longitude, ordered nearest first, each with its distance in miles and kilometres, full address, phone, coordinates, the published week of hours, whether it's permanently closed, amenities, payment methods, pickup/delivery service types, which third-party delivery platforms are active, its Google Place id, timezone, and website/menu/order URLs. This is the proximity search the directory browse cannot do -- GET /dunkin/directory walks a state to city to store tree, which requires knowing the administrative path in advance. Each result carries the store id as `path`, which GET /dunkin/store also takes, so the two chain directly. `total_in_radius` reports how many stores fall inside the radius overall, which is usually far more than one page; use `offset` to walk it. A coordinate with no Dunkin nearby returns an empty list rather than an error.
/dunkin/nearbyThis is the proximity search the directory browse cannot do. /api/v1/dunkin/directory walks a state → city → store tree, which means knowing the administrative path in advance; this answers "what is near this point" directly and gives each result's distance.
Each store carries the same path (a store id) that /api/v1/dunkin/store takes, so the two chain without any string surgery: search here, then fetch the detail record by path.
total_in_radius is how many stores fall inside the radius overall, which is usually far more than one page — 308 within 5 miles of lower Manhattan at time of writing. Page through it with offset.
Query parameters:
latitude (required) — search center latitude, e.g. 40.7128.longitude (required) — search center longitude, e.g. -74.0060. A genuinely-zero coordinate is accepted; it is distinguished from an omitted one.radius (optional, default 25, max 100) — search radius in miles.limit (optional, default 10, max 50) — maximum stores to return.offset (optional, default 0) — result offset, for paging through total_in_radius.Response includes stores[], count, total_in_radius, radius, source_url, and fetched_at. Each store has store_id, name, address, phone_number, latitude, longitude, distance_miles, distance_kilometers, hours[], closed, features[], amenities[], payment_options[], pickup_delivery_services[], delivery_platforms[], google_place_id, website_url, menu_url, order_url, faq[], photos[], timezone, and path. See /api/v1/dunkin/store's docs for what each of those carries.
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| store_id | 10 | |
| name | 10 | Dunkin' (7), Dunkin' - Closed (2), Jimmy John's (1) |
| address | 10 | |
| phone_number | 10 | |
| latitude | 10 | |
| longitude | 10 | |
| distance_miles | 10 | 0.11 to 0.28, median 0.21 |
| distance_kilometers | 10 | 0.18 to 0.45, median 0.34 |
| hours | 10 | median 7 entries |
| closed | 10 | true in 2 of 10 |
| features | 9 | median 4 entries |
| amenities | 9 | median 3 entries |
| payment_options | 8 | median 10 entries |
| pickup_delivery_services | 8 | median 2 entries |
| delivery_platforms | 7 | median 3 entries |
| google_place_id | 10 | |
| website_url | 10 | dunkindonuts.com and 2 other hosts |
| menu_url | 9 | dunkindonuts.com and 1 other host |
| order_url | 10 | ulink.prod.ddmprod.dunkindonuts.com and 2 other hosts |
| timezone | 10 | America/New_York in all 10 |
| faq | 7 | median 10 entries |
| photos | 10 | median 17 entries |
| path | 10 | “307107” and 9 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| latitude | number | Yes | Search center latitude | 40.7128 | |
| longitude | number | Yes | Search center longitude | -74.006 | |
| radius | integer | No | Search radius in miles, 1-100 (default 25) | 25 | |
| limit | integer | No | Maximum stores to return, 1-50 (default 10) | 10 | |
| offset | integer | No | Result offset for paging through total_in_radius (default 0) | 0 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/dunkin/nearby?latitude=40.7128&longitude=-74.006&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"stores": [
{
"store_id": "307107",
"name": "Dunkin'",
"address": {
"line1": "250 Broadway",
"line2": "Park Pl Between Church & B'Way",
"city": "New York",
"region": "NY",
"postal_code": "10007",
"country": "US"
},
"phone_number": "+12127320406",
"latitude": 40.712975,
"longitude": -74.007829,
"distance_miles": 0.11,
"distance_kilometers": 0.18,
"hours": [
{
"day_of_week": "Monday",
"closed": false,
"opens": "05:30",
"closes": "18:00"
}
],
"closed": false,
"features": [
"ON-THE-GO_MOBILE_ORDERING",
"FREE_WIFI",
"K-CUP_PODS"
],
"amenities": [
"free_wifi",
"k_cup_pods",
"turbo_oven"
],
"payment_options": [
"AMERICANEXPRESS",
"APPLEPAY",
"CASH",
"VISA"
],
"pickup_delivery_services": [
"CURBSIDE_PICKUP",
"DELIVERY"
],
"delivery_platforms": [
"doordash",
"grubhub",
"ubereats"
],
"google_place_id": "ChIJK0N8WshbwokRny3Z1vf-ZDs",
"website_url": "https://www.dunkindonuts.com/locations/us/ny/new-york/250-broadway/store-307107/",
"timezone": "America/New_York",
"path": "307107"
}
],
"count": 1,
"total_in_radius": 308,
"radius": 5,
"source_url": "https://cdn.yextapis.com/v2/accounts/me/entities/geosearch?api_key=...&v=20220101&location=40.7128%2C-74.006&radius=5&limit=1",
"fetched_at": "2026-09-02T17:10:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/dunkin.nearbyResponseDoc
| 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.NearbyResponse | No | ||||
| data.count | integer | No | 10 | |||
| data.fetched_at | string | No | ||||
| data.radius | integer | No | 25 | |||
| data.source_url | string | No | ||||
| data.stores | array | No | ||||
| data.stores[].address | dunkin.StoreAddress | No | StoreAddress record, 6 fields: city, country, line1, line2, postal_code, region. Described under Dunkin Store API. | |||
| data.stores[].amenities | array | No | ||||
| data.stores[].closed | boolean | No | false | |||
| data.stores[].delivery_platforms | array | No | ||||
| data.stores[].distance_kilometers | number | No | 0.18 | |||
| data.stores[].distance_miles | number | No | 0.11 | DistanceMiles is measured from the requested coordinate. | ||
| data.stores[].faq | array | No | FAQ is Yext's own auto-generated per-store question/answer content. | |||
| data.stores[].faq[].answer | string | No | Dunkin' is open Monday to Friday from 5:30 AM to 6:00 PM, and on Saturday and Sunday from 6:00 AM to 4:00 PM. | |||
| data.stores[].faq[].question | string | No | What are the operating hours of Dunkin' at 250 Broadway, New York, NY? | |||
| data.stores[].features | array | No | ||||
| data.stores[].google_place_id | string | No | ||||
| data.stores[].hours | array | No | StoreHours record, 4 fields: closed, closes, day_of_week, opens. Described under Dunkin Store API. | |||
| data.stores[].latitude | number | No | 40.712975 | |||
| data.stores[].longitude | number | No | -74.007829 | |||
| data.stores[].menu_url | string | No | ||||
| data.stores[].name | string | No | Dunkin' | |||
| data.stores[].order_url | string | No | ||||
| data.stores[].path | string | No | Path is the store id -- pass it to /dunkin/store to chain directly. | |||
| data.stores[].payment_options | array | No | ||||
| data.stores[].phone_number | string | No | +12127320406 | |||
| data.stores[].photos | array | No | Photos is this store's photo gallery. StorePhoto record, 4 fields: description, height, url, width. Described under Dunkin Store API. | |||
| data.stores[].pickup_delivery_services | array | No | ||||
| data.stores[].store_id | string | No | 307107 | |||
| data.stores[].timezone | string | No | America/New_York | |||
| data.stores[].website_url | string | No | ||||
| data.total_in_radius | integer | No | 754 | TotalInRadius is how many stores fall inside the radius overall, which is usually far more than one page. Use it with `offset` to page. | ||
| 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/dunkin/nearby?latitude=40.7128&longitude=-74.006&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"