Restaurant and menu price monitoring
Use DoorDash endpoints to turn restaurant and menu price monitoring into repeatable API requests with documented inputs and JSON responses.
Turn public DoorDash mobile pages into structured restaurant data — discovery feeds, location search with autocomplete, dish keyword search, full store detail and menus with prices, menu item details, customer ratings & reviews, and fulfillment schedules as normalized JSON. Credential-free.
Extract DoorDash discovery feed, restaurant search, dish search, store detail, menus, item details, reviews, and fulfillment options as structured JSON.
Endpoint families
4
Documented params
58
Examples
12
Live catalog snapshot
Active endpoints
12
Methods
GET
Required params
46
Schema refs
12
{
"platform": "DoorDash",
"endpoint": "doordash-search",
"method": "GET",
"path": "/doordash/search",
"auth": "apiKey"
}Use cases
Extract DoorDash discovery feed, restaurant search, dish search, store detail, menus, item details, reviews, and fulfillment options as structured JSON.
Use DoorDash endpoints to turn restaurant and menu price monitoring into repeatable API requests with documented inputs and JSON responses.
Use DoorDash endpoints to turn customer review and rating analytics into repeatable API requests with documented inputs and JSON responses.
Use DoorDash endpoints to turn location discovery & dish search intelligence into repeatable API requests with documented inputs and JSON responses.
Use DoorDash endpoints to turn fulfillment & delivery schedule tracking into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live DoorDash endpoint catalog — 12 endpoints, 58 documented request parameters, and 12 published response schemas — the same catalog Docs and Playground run against.
12 documented DoorDash endpoints, grouped into 4 request families — Store, Search and Explore, plus 1 more.
58 request parameters are documented across those DoorDash endpoints, 46 of them required — the full input contract is public before you write any integration code.
12 of the 12 DoorDash endpoints ship a recorded example response, and 12 carry a documented response schema — you can code against the real JSON before the first request.
DoorDash endpoints document their error responses (400, 404, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
12 hosted MCP tools back the DoorDash endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/doordash/store/{store_id}
/doordash/search
/doordash/explore
/doordash/feed
Endpoint catalog
/doordash/feedReturns nearby stores for a location from the Android mobile guest experience: store ID, name, cover image and tags, plus rating, price range, delivery fee and ETA when the upstream feed surface reports them. Those metric fields are omitted rather than estimated when it does not, so treat their absence as "not reported". No DoorDash account or caller-supplied token is required.
Response notes
Returns store cards containing store ID, name, cover image and tags. Rating, rating count, price range, delivery fee and ETA are returned only when the upstream feed surface supplies them. The consumer feed surface is frequently unavailable to anonymous guest sessions. When it is, this endpoint degrades to nearby stores drawn from the same catalog that backs `/doordash/search`, which carries store identity, cover image and tags but no rating, price range, delivery fee or ETA. Those fields are omitted in that case rather than estimated, so **treat their absence as "not reported", never as a zero or a default**. Callers that need rating and price range for a specific store should follow up with `/doordash/store/{store_id}`. Missing or out-of-range coordinates return `400`; no usable store data from either surface returns `503` rather than an empty successful response. Example response: ```json {"code":200,"msg":"OK","data":{"stores":[{"storeId":"207343","name":"Green Island Restaurant","coverImageUrl":"https://img.cdn4dd.com/example.jpg","tags":["Chinese","Noodles"]}]}} ```
MCP tool doordash_feed
/doordash/searchSearches the Android mobile guest catalog for pickup restaurants near a location and supports optional result filters. No DoorDash account or caller-supplied token is required.
MCP tool doordash_search
/doordash/search/itemsSearches menu items across nearby merchants from the Android mobile guest experience. Nearby candidate stores are selected first, then their menus are read and every item whose name or description matches the query is returned with its parent store. At most five proximity-ranked stores are inspected per request, and a store whose menu cannot be read is skipped, so results are best-effort across that candidate set. An empty result array means no candidate store menu matched, not that no nearby merchant sells the item. No DoorDash account or caller-supplied token is required.
Response notes
The query first selects nearby candidate stores, then each of those stores' menus is read and every item whose name or description contains the query text is returned with its parent store's identity and distance. Because candidate stores come from the same upstream-capped catalog that backs `/doordash/search`, at most five stores are inspected per request, ranked by proximity. A store whose menu cannot be read is skipped rather than failing the request, so results are best-effort across the candidate set. An empty `results` array means no nearby candidate store's menu matched the query; it is not evidence that no merchant nearby sells the item. `itemId` is not populated: DoorDash's anonymous menu surface exposes no stable per-item identifier. Use `name` together with `storeId` against `/doordash/store/{store_id}/item/{item_id}`. Missing required parameters return `400`. Example response: ```json {"code":200,"msg":"OK","data":{"query":"duck","results":[{"name":"Roasted Duck","description":"With duck sauce","price":"$22.99","storeId":"26282644","storeName":"Eats","distance":"1.2 mi"}]}} ```
MCP tool doordash_search_items
/doordash/search/autocompleteReturns pickup restaurant matches from the Android mobile guest search experience near a location. No DoorDash account or caller-supplied token is required.
MCP tool doordash_search_autocomplete
/doordash/search/filtersReturns the cuisines and filter values supported by the Android mobile guest search experience for a location. No DoorDash account or caller-supplied token is required.
MCP tool doordash_search_filters
/doordash/store/{store_id}Returns location-aware DoorDash store metadata through the Android mobile guest flow. No DoorDash account or caller-supplied token is required.
Response notes
The location selects the availability and menu that the DoorDash mobile app would show there. The response includes the store name, canonical lookup URL, available images, and menu section/item counts. Address, coordinates, and price range are populated when the mobile response supplies them. Missing or out-of-range coordinates return `400`; an unavailable or blocked mobile response returns `503` rather than partial data. Example response: ```json {"code":200,"msg":"OK","data":{"storeId":"26282644","name":"Eats","url":"https://www.doordash.com/store/x-26282644/","images":["https://img.cdn4dd.com/example.jpg"],"address":{},"menuSectionCount":2,"menuItemCount":35}} ```
MCP tool doordash_store
/doordash/store/{store_id}/menuReturns the location-aware DoorDash mobile menu, grouped into sections with item names, descriptions, and displayed prices. No DoorDash account or caller-supplied token is required.
Response notes
The location selects the availability and menu that the DoorDash mobile app would show there. Menu items are grouped into the sections DoorDash displays. Prices are returned as displayed strings so the currency symbol and formatting are preserved. Missing or out-of-range coordinates return `400`; missing or malformed menu data returns `503` rather than an empty successful response. Example response: ```json {"code":200,"msg":"OK","data":{"storeId":"26282644","storeName":"Eats","url":"https://www.doordash.com/store/x-26282644/","sections":[{"name":"Picked for you","items":[{"name":"Two Egg Breakfast (gf)","description":"Two eggs and buttered toast with fried potatoes or salad.","price":"$18.40"}]}]}} ```
MCP tool doordash_store_menu
/doordash/store/{store_id}/item/{item_id}Returns details for a specific menu item from the Android mobile guest experience. The item is matched by name, case-insensitively, against the store menu: DoorDash's anonymous menu surface exposes no stable per-item identifier, so use a name returned by the store menu or item search. A name that is not on the menu returns 404; no substitute item is returned. No DoorDash account or caller-supplied token is required.
Response notes
Returns item name, description, unit price, and store URL. Missing parameters return `400`. An item name that does not appear on the store's menu returns `404` — no substitute item is ever returned under the requested name. Example response: ```json {"code":200,"msg":"OK","data":{"storeId":"26282644","itemId":"Roasted Duck","name":"Roasted Duck","description":"With duck sauce","price":"$22.99","url":"https://www.doordash.com/store/x-26282644/"}} ```
MCP tool doordash_store_item
/doordash/store/{store_id}/reviewsReturns store ratings and customer reviews from the Android mobile guest experience for a location. No DoorDash account or caller-supplied token is required.
Response notes
Returns store average rating, total rating count, and customer review items. Missing or out-of-range coordinates return `400`; missing review data returns `503` rather than an empty successful response. Example response: ```json {"code":200,"msg":"OK","data":{"storeId":"26282644","storeName":"Eats","url":"https://www.doordash.com/store/x-26282644/","averageRating":4.8,"ratingCount":"1,200+","reviews":[{"reviewerName":"Alice W.","rating":5,"text":"Amazing food!","reviewerReviewsCount":"15 reviews"}]}} ```
MCP tool doordash_store_reviews
/doordash/store/{store_id}/fulfillmentReturns store fulfillment methods, delivery fee info, and scheduling details from the Android mobile guest experience. No DoorDash account or caller-supplied token is required.
Response notes
Returns store fulfillment methods, delivery title, delivery subtitle, schedule description, and free delivery status. Missing or out-of-range coordinates return `400`; missing fulfillment data returns `503` rather than an empty successful response. Example response: ```json {"code":200,"msg":"OK","data":{"storeId":"26282644","storeName":"Eats","url":"https://www.doordash.com/store/x-26282644/","fulfillmentMethod":"FULFILLMENT_METHOD_DELIVERY","deliveryTitle":"Standard Delivery","deliverySubtitle":"20-30 min","scheduleDescription":"Deliver now","isFreeDelivery":true}} ```
MCP tool doordash_store_fulfillment
/doordash/exploreReturns DoorDash's location-based "nearby stores" browse feed from the Android mobile guest experience. Unlike search or autocomplete, no search query is required. No DoorDash account or caller-supplied token is required.
Response notes
Returns nearby pickup-available stores with cuisines/tags, price range, average rating, rating count, DashPass eligibility, cover image, ASAP/pickup availability, display status, and a short list of top menu items with photos and prices. Only pickup-fulfillment results are populated for guest sessions; delivery results require a saved address and are not returned. Missing or out-of-range coordinates return `400`; missing explore data returns `503` rather than an empty successful response. Example response: ```json {"code":200,"msg":"OK","data":{"stores":[{"storeId":"926706","name":"Shake Shack","tags":["Burgers","Chicken","Milk Shakes","American"],"priceRange":2,"averageRating":4.4,"numberOfRatings":29449,"dashPassEligible":true,"coverImageUrl":"https://img.cdn4dd.com/example.jpg","asapAvailable":true,"pickupAvailable":true,"displayStatus":"Open","displayAsapTime":"37 min","topItems":[{"itemId":"5159816073","name":"ShackBurger","imageUrl":"https://img.cdn4dd.com/example-item.jpg"}]}]}} ```
MCP tool doordash_explore
/doordash/store/{store_id}/infoReturns a lightweight store info card (map coordinates, address, phone number) from the Android mobile guest experience. This is a distinct upstream contract from the full store endpoint and reliably includes address and coordinates. No DoorDash account or caller-supplied token is required.
Response notes
Returns business name, street, city/region, full address, coordinates, and phone number where available. `store_id` values that do not exist return `404`. Missing or out-of-range coordinates return `400`; missing store info data returns `503` rather than an empty successful response. Example response: ```json {"code":200,"msg":"OK","data":{"storeId":"26282644","url":"https://www.doordash.com/store/x-26282644/","businessName":"Eats","street":"50 Clement Street","cityRegion":"San Francisco, CA","address":"50 Clement St, San Francisco, CA 94118, USA","latitude":37.783268,"longitude":-122.460039,"phone":"4157518000","hasPhone":true,"hasWebsite":false}} ```
MCP tool doordash_store_info
Related APIs
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
Company coverage
DoorDash, Inc. · DASH
DoorDash is operated by DoorDash, Inc. (DASH). Crawlora's SEC endpoints take the same company's CIK, so filings, financials, insider transactions and 13F holdings come from the same API key as the DoorDash endpoints above.
SEC filings & financials API →How to scrape DoorDash
DoorDash surfaces restaurant listings, discovery feeds, customer reviews, and menus through its mobile guest app. Crawlora's DoorDash endpoints return location discovery feeds, search results, dish keyword matches, autocomplete suggestions, filter options, customer reviews, fulfillment schedules, and full store detail with menu sections and item details as normalized JSON — no account or caller-supplied token.
A latitude/longitude with an optional search term, or a specific store ID.
Pass parameters to /doordash/feed, /doordash/search, /doordash/search/items, /doordash/store/{store_id}/reviews, /doordash/store/{store_id}/fulfillment, or /doordash/store/{store_id}/item/{item_id}.
Receive normalized store metadata, customer ratings & reviews, delivery/pickup schedules, dish matches, or full menu item customization options.
Feed competitive dashboards and AI pipelines, or re-run to track ratings, fulfillment options, and price changes over time.
FAQ
Send a latitude/longitude (with an optional keyword) or a store ID to Crawlora's DoorDash endpoints and get discovery feeds, restaurant search, dish search, store reviews, fulfillment options, and full store menus as structured JSON — no account.
Yes. /doordash/store/{store_id}/reviews returns customer rating breakdowns and reviews, while /doordash/store/{store_id}/menu returns current menu item prices per store — re-run on a schedule to track changes over time as JSON.
Collecting publicly accessible restaurant, menu, review, and search data is generally permissible if you respect DoorDash's terms of use, robots directives, rate limits, and applicable law.
Not for general use. DoorDash's Marketplace integration pipeline is currently at capacity and not accepting new partners, and production access to its Drive API is restricted with no certification timeline given even after development is complete — both require a technical account manager relationship, not self-serve signup. Crawlora's DoorDash endpoints return store discovery, search, menus, reviews, and fulfillment data as structured JSON with a single API key, no partner approval required.