doordash.com APIwww.doordash.com ↗
Access DoorDash restaurant listings, full menus with prices, delivery fees, ratings, and promotions via 2 endpoints. Covers restaurants across the US.
curl -X GET 'https://api.parse.bot/scraper/e3310be0-3731-4735-8c75-cec618e4ef6e/list_restaurants?limit=10&location=new-york-ny-restaurants' \ -H 'X-API-Key: $PARSE_API_KEY'
List restaurants available for delivery in a given city/location. Returns restaurant names, ratings, categories, delivery fees, estimated delivery times, and current promotions.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of restaurants to return |
| location | string | Location slug in format '{city}-{state}-restaurants' (e.g., 'new-york-ny-restaurants', 'los-angeles-ca-restaurants', 'chicago-il-restaurants') |
{
"type": "object",
"fields": {
"location": "string, the location slug used for the query",
"restaurants": "array of restaurant objects with store_id, name, slug, url, rating, rating_count, categories, delivery_fee, distance, delivery_time, and promotion",
"total_found": "integer, number of restaurants returned"
},
"sample": {
"data": {
"location": "new-york-ny-restaurants",
"restaurants": [
{
"url": "https://www.doordash.com/store/stuytown-marketplace-new-york-26247902/",
"name": "Stuytown Marketplace",
"slug": "stuytown-marketplace-new-york-26247902",
"rating": 4.4,
"distance": "100 ft",
"store_id": "26247902",
"promotion": null,
"categories": [
"Sandwiches",
"Quesadillas"
],
"delivery_fee": "$0 delivery fee",
"rating_count": "60+",
"delivery_time": "23 min"
}
],
"total_found": 10
},
"status": "success"
}
}About the doordash.com API
The DoorDash API provides structured access to restaurant and menu data across the US through 2 endpoints. Use list_restaurants to retrieve restaurant names, ratings, delivery fees, estimated delivery times, and active promotions for a given city or location, and use get_restaurant to pull a complete menu breakdown — including item-level pricing, pickup and delivery availability, store hours, and address details — for any specific DoorDash store.
Restaurant Discovery
The list_restaurants endpoint accepts a location parameter formatted as a city-state slug (e.g., new-york-ny-restaurants or los-angeles-ca-restaurants) and an optional limit to cap results. Each restaurant object in the response includes a store_id, name, slug, url, rating, rating_count, categories, delivery_fee, distance, and delivery_time. Active promotions are also surfaced per restaurant, making it straightforward to identify discounted delivery or current deals without fetching each store individually.
Restaurant Detail and Full Menus
The get_restaurant endpoint requires a store_id (available from list_restaurants results) and accepts optional fulfillment_type (Delivery or Pickup) and menu_id parameters. The response includes the restaurant's full menu structure: a menu object with id, name, display_hours, categories, and available_menus, plus a flat menu_items array organized by category, each containing category_id, category_name, and an array of items with prices. Separate delivery and pickup objects report real-time availability and estimated wait times.
Supporting Data Fields
Beyond menu data, get_restaurant returns a ratings object with average, count, display, and an is_new flag. The address object provides street, city, state, display_address, and lat/lng coordinates. The restaurant's phone number and categories array (cuisine types) are also included. This makes the endpoint useful for building location-aware or category-filtered restaurant directories without separate geocoding calls.
- Build a delivery fee comparison tool across multiple restaurants in a given city using
delivery_feeanddelivery_timefields fromlist_restaurants. - Aggregate menu item prices across competing restaurants in the same cuisine category for market analysis.
- Track active promotions and discounts on DoorDash by city to surface current deals in a consumer-facing app.
- Populate a restaurant directory with address coordinates, phone numbers, and cuisine categories from
get_restaurant. - Monitor pickup vs. delivery availability and estimated wait times for a set of store IDs.
- Extract structured menu data — including category breakdowns and item-level pricing — for restaurant analytics or competitive research.
- Identify newly listed restaurants on DoorDash using the
is_newflag in theratingsobject.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does DoorDash have an official developer API?+
What does `get_restaurant` return for menus, and can I request a specific menu version?+
menu object with id, name, display_hours, and an available_menus list. If you want a specific menu version — such as a breakfast or late-night menu — you can pass a menu_id from that available_menus list as an input parameter.Does the API cover DoorDash restaurants outside the United States?+
location parameter uses US city-state slugs. You can fork this API on Parse and revise it to add support for Canadian or Australian location slugs if DoorDash operates there in your target market.Are individual menu item reviews or customer photos available?+
ratings at the restaurant level (average, count, display) but does not expose per-item reviews, review text, or customer-uploaded photos. You can fork this API on Parse and revise it to add an endpoint targeting item-level review data if that surface is available.How does pagination work for `list_restaurants`?+
total_found integer indicating how many restaurants were returned. You can control the number of results with the limit parameter. There is no built-in offset or cursor parameter exposed — if you need to page through large result sets, you would fork the API on Parse and revise to add offset-based pagination.