DoorDash Restaurant Menu & Prices Scraper avatar

DoorDash Restaurant Menu & Prices Scraper

Pricing

from $10.00 / 1,000 results

Go to Apify Store
DoorDash Restaurant Menu & Prices Scraper

DoorDash Restaurant Menu & Prices Scraper

Scrape DoorDash restaurants by store URL or city: name, address, geo, cuisines, price range, rating and the full menu with item names, descriptions and prices. Export to JSON, CSV or Excel.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

DoorDash Restaurant Menu & Prices Scraper

DoorDash Restaurant Menu & Prices Scraper

Here is one real result, with every field the actor returns:

{
"storeName": "Balthazar Restaurant",
"storeUrl": "https://www.doordash.com/store/balthazar-restaurant-new-york-45822/",
"storeId": "45822",
"cuisines": ["French", "Burgers", "Steak", "Chicken", "Dinner", "Lunch", "Sandwich", "Salads", "Appetizers", "Opens daily"],
"priceRange": "$$$",
"ratingValue": 4.6,
"ratingCount": 50,
"reviewCount": 50,
"streetAddress": "80 Spring Street",
"city": "New York",
"region": "NY",
"country": "US",
"latitude": 40.722693,
"longitude": -73.998285,
"imageUrls": ["https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws.com/media/restaurant/cover/BalthazarRestaurant.png"],
"reviewsSample": [
{ "author": "Katherine K", "rating": 4, "body": "I loved the Beef Stroganoff but was expecting a lot more meat especially one large piece was just cartilage. The quality was great and flavor was excellent but would not order again because of the portion size" }
],
"menuSectionCount": 8,
"menuItemCount": 91,
"menu": [
{
"section": "Most Ordered",
"items": [
{ "name": "Balthazar Cheeseburger", "description": "Classic bistro cheeseburger, cooked to your liking, with your choice of Cheddar or Gruyere cheese. Served with lettuce, tomato, and red onion on a sesame bun. Comes with a side of our pommes frites, which are fried in peanut oil.", "price": "$32.00", "priceUsd": 32 },
{ "name": "Steak Frites", "description": "10 oz Ribeye grilled to your liking and served with Maitre D' butter and pommes frites.", "price": "$49.00", "priceUsd": 49 },
{ "name": "NY Strip Steak \"Au Poivre\"", "description": "12 oz Striploin, cooked to your liking, coated in freshly crushed black pepper, sauteed and flamed with cognac and finished with a touch of cream. Served with pommes frites and sauteed spinach.", "price": "$63.00", "priceUsd": 63 }
]
},
{
"section": "Amuse Bouche",
"items": [
{ "name": "Croquette (5 ea)", "description": null, "price": "$16.00", "priceUsd": 16 },
{ "name": "Gougeres (6 ea)", "description": null, "price": "$16.00", "priceUsd": 16 }
]
}
],
"aiMenuSummary": null,
"aiCuisineTags": null,
"aiPopularDishes": null,
"aiPriceTier": null,
"aiDietaryTags": null,
"searchLocation": null,
"source": "DoorDash",
"observedAt": "2026-08-15T03:30:55.956Z",
"error": null
}

The most complete DoorDash menu scraper available. It returns every field a DoorDash store page exposes (name, address, geo, cuisines, price range, rating, review sample) plus the full menu with each item's name, description and price, and gives you six filters to target exactly the restaurants and dishes you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Platform Coverage Output Billing

Table of contents

What it does

Give it DoorDash store URLs or a list of cities, and it returns each restaurant with its full menu and prices. For every store you get the name, street address, latitude and longitude, cuisines and categories, price range, star rating, a sample of customer reviews, and the complete menu broken into sections with every item's name, description and price (both the raw string and a numeric priceUsd).

Filters let you narrow by cuisine, by keyword (across store names and menu items), and by item price range. Optional AI add-ons write a short menu summary and classify the menu into cuisine tags, likely signature dishes, a price tier and dietary tags.

Quickstart

Scrape specific restaurants, plus discover more from a city:

{
"storeUrls": ["https://www.doordash.com/store/balthazar-restaurant-new-york-45822/"],
"locations": ["Austin, TX"],
"maxStores": 10,
"withMenu": true
}

Input reference

NameTypeRequiredDescriptionExample
storeUrlsarrayone of storeUrls/locationsDoorDash store page URLs to scrape directly["https://www.doordash.com/store/balthazar-restaurant-new-york-45822/"]
locationsarrayone of storeUrls/locationsCities to discover restaurants in["New York, NY", "Austin, TX"]
maxStoresintegernoMax restaurants per run (free accounts capped at 10)10
cuisinestringnoKeep only restaurants whose cuisine list contains this term"Pizza"
keywordstringnoKeep only restaurants whose name or any menu item matches"burger"
minItemPriceintegernoDrop menu items priced below this amount (USD)10
maxItemPriceintegernoDrop menu items priced above this amount (USD)40
withMenubooleannoAttach the full menu to each record (default true)true
withAiMenuSummarybooleannoAI menu summary add-on (paid plans only, default false)false
withAiCategorizebooleannoAI cuisine/dish/dietary tagging add-on (paid plans only, default false)false

Output reference

NameTypeDescription
storeNamestringRestaurant name
storeUrlstringDoorDash store page URL
storeIdstringDoorDash numeric store identifier
cuisinesarrayCuisine and category tags served
priceRangestringPrice range indicator, e.g. $$ or $$$
ratingValuenumberAverage rating out of 5
ratingCountnumberNumber of ratings
reviewCountnumberNumber of reviews
streetAddressstringStreet address
citystringCity / locality
regionstringState / region
countrystringCountry code
latitudenumberLatitude
longitudenumberLongitude
imageUrlsarrayCover / header image URLs
reviewsSamplearraySample reviews: author, rating, body
menuSectionCountintegerNumber of menu sections
menuItemCountintegerTotal number of menu items
menuarraySections, each with items (name, description, price, priceUsd)
aiMenuSummarystringAI summary of the restaurant and menu (paid add-on)
aiCuisineTagsarrayAI cuisine / style tags (paid add-on)
aiPopularDishesarrayAI likely signature dishes (paid add-on)
aiPriceTierstringAI price tier: budget / mid / premium (paid add-on)
aiDietaryTagsarrayAI dietary tags present on the menu (paid add-on)
searchLocationstringCity input this store was discovered from, if any
sourcestringData source (DoorDash)
observedAtstringISO timestamp when scraped
errorstringError message for a failed record, if any

Example output record

See the hero record at the top of this page for a complete, real record with every field populated.

Run via API and CLI

Start a run with the API:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~doordash-menu-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "locations": ["Austin, TX"], "maxStores": 10 }'

Or with the Apify CLI:

apify call scrapers_lat/doordash-menu-scraper \
--input '{ "storeUrls": ["https://www.doordash.com/store/balthazar-restaurant-new-york-45822/"] }'

Fetch results

$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_TOKEN&format=json"

Replace DATASET_ID with the defaultDatasetId from the run. Add &format=csv or &format=xlsx for other formats.

Billing and limits

This actor uses pay per result. You are charged per event:

EventPrice (USD)When
result0.010Per restaurant record returned
menu0.012When a full menu is captured for that restaurant
ai_menu_summary0.012Only when the AI summary add-on returns usable output
ai_categorize0.012Only when the AI categorization add-on returns usable output
  • Free Apify accounts are capped at 10 restaurants per run; AI add-ons are disabled on free accounts.
  • No charge on failure: records that error out are never billed.
  • The spend cap you set as maxTotalChargeUsd is respected; the actor stops emitting billable results once it is reached.

FAQ and troubleshooting

Do I need a DoorDash account or API key? No. Provide store URLs or cities and run.

How do I get a store URL? Open the restaurant on doordash.com and copy the /store/... URL, or just pass a city and let the actor discover restaurants for it.

Why do some restaurants show 91 items? DoorDash renders a large sample of the menu per store page; very large menus can be truncated by DoorDash to their most relevant items.

Are live delivery fees and per-item modifiers included? No. Those are loaded dynamically per user session and are not part of the stable public store data. This actor focuses on the complete, reliable menu with item names, descriptions and prices.

Which countries? DoorDash US store pages and city listings.

More scrapers at scrapers.lat

Browse the full catalog of company, e-commerce, real estate and marketplace scrapers at scrapers.lat.