DoorDash Scraper - Stores, Menus, Reviews & Leads avatar

DoorDash Scraper - Stores, Menus, Reviews & Leads

Pricing

from $3.30 / 1,000 results

Go to Apify Store
DoorDash Scraper - Stores, Menus, Reviews & Leads

DoorDash Scraper - Stores, Menus, Reviews & Leads

Scrape DoorDash restaurants by US city: store leads (name, rating, cuisines, delivery fee, address, ETA), full menus with item prices, and customer reviews. No login or API key.

Pricing

from $3.30 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Features

Limited permissions

Share

DoorDash Scraper — Restaurants, Menus, Reviews & Restaurant Leads

DoorDash Dataset Deep Pagination Export Formats Maintenance

Extract comprehensive restaurant leads, full itemized menus with pricing, customer reviews, and delivery logistics from DoorDash (doordash.com), the #1 food delivery marketplace in the United States. Scrape verified details including restaurant name, average star rating, number of reviews, cuisine classifications, price tier ($-$$$$), delivery fee estimates, estimated delivery time (ETA in minutes), full street address, and precise GPS coordinates (latitude & longitude).

With optional deep enrichment, you can extract every store's full catalog menu — item titles, descriptions, and numeric prices — alongside authentic customer reviews. Designed for food-tech innovators, restaurant supply sales teams, franchise operators, and market analysts, this actor turns complex food-delivery directories into clean, structured datasets in seconds.


⚡ At a glance

FeatureSpecification
Target Websitedoordash.com (DoorDash US Food Delivery)
Data FieldsName, rating, review count, cuisines, delivery fee, ETA, address, GPS lat/lng, menu items, reviews
Search CapabilitiesUS cities (City, ST), direct store URLs, or automatic national city sweeps
Scale & CapacityUnlocked deep multi-city extraction (1,000+ stores across metropolitan clusters)
Enrichment TogglesOptional itemized menu extraction and customer review harvesting
Typical Speed50 store leads per city in 20–30 seconds
Proxy RequirementApify Proxy enabled (US Residential proxy required for US marketplace compliance)
Export FormatsJSON, CSV, Excel (XLSX), XML, HTML Table, RSS
IntegrationsMake, Zapier, Webhooks, Google Sheets, Airbyte, Keboola, Python, Node.js API

🔎 Why scrape DoorDash?

DoorDash represents over 65% of the United States food delivery market share, featuring hundreds of thousands of active restaurants ranging from national chains to independent local culinary staples.

Scraping DoorDash delivers actionable intelligence across multiple business verticals:

  1. High-Converting Restaurant Leads: Equips sales teams selling POS hardware, kitchen automation, food packaging, commercial insurance, and culinary supplies with verified restaurant names, exact street addresses, and active operational statuses.
  2. Competitive Menu Pricing Intelligence: Track pricing elasticity on signature dishes, monitor inflationary menu adjustments across regional markets, and analyze bundle promotions ("2 for $X").
  3. Delivery Economics & Fee Audits: Benchmark consumer delivery fees and ETA promises across competitor delivery networks (Uber Eats, Grubhub).
  4. Local Market Sizing & Expansion: Evaluate restaurant density by cuisine type (e.g., Thai, Mexican, Pizza, Vegan) to uncover underserved delivery zones before opening new brick-and-mortar or ghost-kitchen locations.
  5. Customer Sentiment & Reviews: Extract qualitative feedback from verified delivery patrons to identify service friction points and top-selling dishes.

📊 Food Delivery Marketplace Comparison

DimensionDoorDash ScraperGrubhub ScraperUber Eats Scraper
US Market Share~66% (National Leader)~10–12% (Regional Pockets)~23% (Urban Hubs)
Leads Extraction Speed~50 stores / city in ~25s~30–40 stores / cityBrowser-dependent (~60s)
Address PrecisionFull printable address + Lat/LngZIP code + CityStreet + City
Delivery EconomicsDisplay fee + ETA minutesDelivery fee + Min orderFee + ETA range
Menu DepthItem name, description, priceItem name + priceItem name + price
Customer ReviewsVerified customer feedbackStar rating aggregateStar rating aggregate
Suburban Coverage🟢 Extremely High🟡 Moderate🟢 High

📊 Key Data Fields & Coverage

Every output record represents a single restaurant listing with optional nested menu and review arrays.

🏪 Store Identity & Location

FieldTypeDescriptionCoverage
storeIdstringUnique persistent DoorDash store identifier🟢 High (100%)
namestringOfficial restaurant business name🟢 High (100%)
urlstringCanonical web listing URL🟢 High (100%)
addressstringFull formatted street address with ZIP code🟢 High (98%)
citystringMunicipal city name🟢 High (98%)
latitudenumberPrecise geographic latitude coordinate🟢 High (98%)
longitudenumberPrecise geographic longitude coordinate🟢 High (98%)
logostringHigh-resolution branding logo image URL🟢 High (90%)

📈 Delivery Economics & Ratings

FieldTypeDescriptionCoverage
averageRatingnumberCustomer star rating (1.0 to 5.0)🟢 High (95%)
numRatingsnumberTotal count of customer ratings received🟢 High (95%)
cuisinesarrayCuisines and food categories (e.g. ["Italian", "Pizza"])🟢 High (98%)
priceTiernumberPrice category index (1 = $, 2 = $$, 3 = $$$, 4 = $$$$)🟢 High (90%)
deliveryFeestringCurrent consumer delivery fee (e.g., "$1.99")🟢 High (95%)
etaMinutesnumberEstimated delivery fulfillment duration in minutes🟢 High (90%)
distancestringPhysical distance from target search center🟢 High (85%)
offersPickupbooleanWhether in-store pickup is supported🟢 High (100%)
isSponsoredbooleanWhether store is currently running paid placement🟢 High (100%)
popularItemsarrayHigh-velocity featured menu item titles🟢 High (85%)

🍽️ Itemized Menus (Optional includeMenu)

FieldTypeDescriptionCoverage
menuarrayArray of menu item objects🟡 Opt-in (100% when enabled)
menu[].namestringTitle of menu dish or beverage🟢 High
menu[].descriptionstringIngredient breakdown or dish description🟢 High
menu[].pricenumberNumeric parsed price (e.g., 14.95)🟢 High
menu[].priceDisplaystringExact on-screen pricing string (e.g., "$$14.95")🟢 High

⭐ Customer Reviews (Optional includeReviews)

FieldTypeDescriptionCoverage
reviewsarrayArray of recent customer review objects🟡 Opt-in (100% when enabled)
reviews[].reviewerstringDisplay name or initials of patron🟢 High
reviews[].ratingnumberIndividual star rating (1 to 5)🟢 High
reviews[].datestringISO publication timestamp of review🟢 High
reviews[].textstringFull customer commentary text🟢 High

🎯 Detailed Use Cases & Workflows

1. Restaurant Supply & B2B Sales Prospecting

  • Objective: Generate qualified outbound prospect lists for restaurant POS terminals, kitchen grease cleaning services, and eco-friendly food containers.
  • Workflow: Target top metropolitan areas (e.g., Chicago, IL, Dallas, TX, Miami, FL). Extract restaurant records with full addresses and phone coordinates. Filter for independent operators (priceTier >= 2 and numRatings < 500) to deliver high-converting sales leads to your BDRs.

2. Competitive Price Tracking & Menu Analytics

  • Objective: Monitor menu price inflation and competitive delivery markups across rival burger or sushi chains.
  • Workflow: Provide direct storeUrls for 20 regional locations and toggle includeMenu: true. Parse itemized prices weekly to calculate average entrée cost fluctuations.

3. Ghost Kitchen & Virtual Brand Market Feasibility

  • Objective: Identify market saturation and gaps before launching a virtual chicken wing or smashburger concept.
  • Workflow: Scrape all restaurants in target expansion cities. Analyze cuisines arrays to determine cuisine concentration, average delivery fees, and consumer ratings in each metro.

4. Local Market Expansion Audits

  • Objective: Map competitive restaurant footprints across major US states.
  • Workflow: Run a multi-city sweep across 25 major US cities. Ingest latitude and longitude coordinates into mapping software (Tableau, ArcGIS, or Google Earth) to visualize coverage voids.

⚙️ Input Configuration & Parameters

Every input parameter is optional. If executed with empty inputs, the scraper automatically sweeps top US cities for a fast lead generation sample.

ParameterTypeDefaultDescription
locationarray["New York, NY"]List of US cities formatted as City, ST (e.g., Austin, TX, Seattle, WA).
storeUrlsarray[]List of specific DoorDash restaurant URLs to scrape directly.
includeMenubooleanfalseEnable to fetch and parse complete itemized menus with prices for every store.
includeReviewsbooleanfalseEnable to fetch and parse recent verified customer reviews.
maxStoresinteger0Total maximum restaurants to collect across all cities. 0 = auto/unlimited.
proxyConfigurationobject{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US"}Proxy configuration. US Residential proxy is pre-configured.

📝 Input Configurations for Common Scenarios

Scenario A: Fast Prefill Run (Demo)

{
"location": ["New York, NY"],
"includeMenu": false,
"includeReviews": false,
"maxStores": 50
}

Scenario B: Multi-Metro Restaurant Lead Generation (500+ Stores)

{
"location": [
"New York, NY",
"Los Angeles, CA",
"Chicago, IL",
"Houston, TX",
"Miami, FL",
"Atlanta, GA",
"Dallas, TX",
"Phoenix, AZ",
"Denver, CO",
"Seattle, WA"
],
"includeMenu": false,
"includeReviews": false,
"maxStores": 500
}

Scenario C: Deep Menu & Price Audit for Specific Competitors

{
"storeUrls": [
"https://www.doordash.com/store/shake-shack-new-york-24750/",
"https://www.doordash.com/store/sweetgreen-new-york-29381/"
],
"includeMenu": true,
"includeReviews": true,
"maxStores": 50
}

📦 Sample Output Record

{
"storeId": "24750",
"name": "Shake Shack (Madison Square Park)",
"url": "https://www.doordash.com/store/shake-shack-new-york-24750/",
"averageRating": 4.7,
"numRatings": 3410,
"cuisines": ["American", "Burgers", "Fast Food"],
"priceTier": 2,
"deliveryFee": "$1.99",
"etaMinutes": 25,
"distance": "0.8 mi",
"address": "Madison Ave & E 23rd St, New York, NY 10010, USA",
"city": "New York",
"latitude": 40.7415,
"longitude": -73.9881,
"offersPickup": true,
"isSponsored": false,
"popularItems": ["ShackBurger", "Crinkle Cut Fries", "Classic Shake"],
"logo": "https://img.cdn4dd.com/p/software/image/shake-shack-logo.png",
"menu": [
{
"name": "ShackBurger",
"description": "Cheeseburger topped with lettuce, tomato, and ShackSauce on a toasted potato bun.",
"price": 8.49,
"priceDisplay": "$8.49"
},
{
"name": "Crinkle Cut Fries",
"description": "Crispy crinkle cut fries salted to perfection.",
"price": 4.69,
"priceDisplay": "$4.69"
}
],
"reviews": [
{
"reviewer": "Michael R.",
"rating": 5,
"date": "2026-11-04T18:22:00.000Z",
"text": "Fries were still hot and the burger was incredible as always."
}
],
"searchLocation": "New York, NY",
"scrapedAt": "2026-11-10T13:46:00.000Z"
}

💻 Programmatic Usage & API Integration

Trigger runs and retrieve results via the official Apify Client in Python, JavaScript, or direct REST API requests.

Python Integration

from apify_client import ApifyClient
# Initialize client with your Apify API token
client = ApifyClient("YOUR_APIFY_TOKEN")
# Prepare actor input
run_input = {
"location": ["Austin, TX", "San Antonio, TX"],
"includeMenu": False,
"includeReviews": False,
"maxStores": 100
}
# Run actor and wait for completion
run = client.actor("haketa/doordash-scraper").call(run_input=run_input)
# Fetch results from default dataset
for store in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{store['name']} | Rating: {store['averageRating']} | Address: {store['address']}")

Node.js / JavaScript Integration

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: 'YOUR_APIFY_TOKEN',
});
const input = {
location: ["Chicago, IL"],
includeMenu: true,
maxStores: 25
};
const run = await client.actor('haketa/doordash-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((store) => {
console.log(`[${store.name}] Menu Items: ${store.menu?.length || 0} (${store.address})`);
});

Direct REST API Call

curl -X POST "https://api.apify.com/v2/acts/haketa~doordash-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"location": ["San Francisco, CA"],
"maxStores": 50
}'

🔗 Integrations & Data Pipelines

Connect your scraped DoorDash dataset directly into your sales CRM or business intelligence suite:

  • Google Sheets: Pipe fresh restaurant leads directly into shared spreadsheets for immediate sales rep outreach.
  • HubSpot / Salesforce: Import restaurant business records with addresses, ratings, and price tiers directly into your CRM.
  • Airtable: Create an interactive regional restaurant database with automated status tracking.
  • Zapier & Make: Forward newly discovered restaurants matching specific cuisine criteria directly to communication channels.
  • BigQuery & Snowflake: Maintain longitudinal tables of menu price movements across nationwide restaurant brands.

🛠️ Step-by-Step Getting Started Guide

  1. Open the Actor: Navigate to haketa/doordash-scraper on the Apify Console.
  2. Enter Cities or Store URLs: Add target locations (e.g., Los Angeles, CA, Miami, FL) or paste specific restaurant profile URLs.
  3. Choose Enrichment Level:
    • For fast leads: Leave includeMenu and includeReviews unchecked (scrapes ~50 stores per city in ~25s).
    • For full data: Enable includeMenu and/or includeReviews.
  4. Set Store Volume: Set maxStores to your desired count (e.g. 50 for quick testing, or 1,000+ for large market sweeps).
  5. Click Start: Hit the green Start button in the Console.
  6. Export Your Records: Download your results in the Dataset tab as CSV, Excel, or JSON.

💡 Best Practices & Pro Tips

  • Leads First, Menus Second: For broad market coverage, run leads-only (includeMenu: false) to pull hundreds of restaurant leads in under a minute. Then, isolate high-priority target stores and run with includeMenu: true.
  • Formatting City Names: Always use City, ST syntax (e.g. Denver, CO or Miami, FL) rather than informal nicknames to ensure precise marketplace resolution.
  • Keep Residential Proxy Enabled: DoorDash enforces strict regional geographical boundaries. Operating through US residential proxies ensures uninterrupted access.
  • De-duplication Guarantee: Overlapping metropolitan regions are automatically deduplicated by unique storeId.

❓ Frequently Asked Questions

How many restaurants can I extract in a single run?

There is no hard limitation. Each US city listing returns ~50 active restaurants. By supplying 20+ cities and configuring maxStores: 1000+, you can extract thousands of de-duplicated restaurant records in a single execution.

Why is a US residential proxy required?

DoorDash is an exclusively US and North American service that restricts non-US or datacenter traffic. The pre-configured US residential proxy ensures maximum reliability and consistent data extraction.

Can I extract menus and prices for specific chains?

Yes. Paste individual DoorDash restaurant URLs directly into the storeUrls parameter and toggle includeMenu: true to extract full itemized menus and prices.

Are phone numbers included?

DoorDash does not publish direct telephone numbers on public web consumer pages. However, the scraper provides full formatted street addresses and GPS coordinates, making external phone enrichment straightforward.

How frequently is pricing data updated?

The scraper reads live page payloads at the exact time of execution, capturing real-time delivery fees, ETA calculations, and active menu prices.

What export formats are supported?

You can export results directly from the Apify Console as JSON, CSV, Excel (XLSX), XML, or HTML Table.


📋 Changelog

v1.2 — 2026-11

  • 1,000+ Deep Multi-City Pagination Unlocked: Removed restrictive 20-store caps on fallback runs and added multi-city automated expansion to support 1,000+ store sweeps seamlessly.
  • Fast Prefill Optimization: Streamlined default prefill parameters to execute clean 50-store lead runs in under 30 seconds.
  • Enhanced Address Parsing: Improved extraction of structured street addresses and geographic coordinates.
  • Comprehensive Documentation: Added multi-platform marketplace comparison tables, visual shields badges, and complete Python and Node.js SDK snippets.

v1.1 — 2026-10

  • Added itemized menu catalog extraction with numeric price normalization.
  • Added verified customer review extraction.
  • Optimized hybrid session persistence for accelerated HTTP throughput.

v1.0 — 2026-10

  • Initial production release.
  • Extraction of restaurant name, rating, review count, cuisines, delivery fee, ETA, address, and GPS coordinates.
⌂ 换网址