DoorDash Scraper
Pricing
from $0.50 / 1,000 customer reviews
DoorDash Scraper
🍕 Scrape DoorDash store 🍕 listings, full menus, featured items, and customer 💬 Reviews. Supports location-aware search, multi-URL input, star distribution, delivery fees, pickup ETAs, and optional review extraction with item tagging.
Pricing
from $0.50 / 1,000 customer reviews
Rating
4.0
(1)
Developer
FlowExtract API
Maintained by CommunityActor stats
3
Bookmarked
67
Total users
18
Monthly active users
13 days ago
Last modified
Categories
Share
🍔 DoorDash Scraper
Scrape store listings, full menus, featured items, and customer reviews from DoorDash with location-aware search, multi-URL support, and optional review extraction.
🎬 Video Tutorial
Key Features
Comprehensive Store Data Extraction
- Store Identity name, description, cuisine type, business entity, and tag taxonomy with priority scores
- Ratings & Reviews average rating, total count, star distribution (1★–5★ breakdown), review count
- Pricing & Fees price range, delivery fee, pickup fee, surge indicators, DashPass eligibility
- Availability delivery ETA, pickup ETA, open/closed status, and full unavailability reasons
- Capabilities delivery, pickup, group order, scheduling, catering, drone delivery flags
- Location full address, GPS coordinates, distance from your delivery address, timezone
- Media header image, cover image, and all UGC photo assets with UUIDs
Menu Extraction
- Featured Items DoorDash's algorithmic "Featured Items" carousel with grid positions, recommendation signals, and badges (e.g.
#1 Most liked) - Menu Categories all menu categories including the "Most Ordered" section, with per-item ratings, badges, and card position signals
- Menu Hours daily open/close times per menu
Customer Reviews (Optional)
- Full review text, star rating, verification status, and timestamps
- Complete reviewer metadata display name, contribution count, reviewer tier
marked_up_review_textreview text with<<taggedItemId=>>markup linking mentions to specific menu items by ID- Extracted
tagged_item_idsfor direct joins back to menu data
Two Scraping Modes
- Search mode paste any DoorDash search URL and scrape multiple stores at once
- Store mode paste a direct store URL and get full detail for that one store
Quick Start
Search for stores by keyword
{"address": "350 5th Ave, New York, NY","startUrls": [{ "url": "https://www.doordash.com/search/store/pizza?event_type=search" }],"maxResults": 10}
Scrape a specific store
{"address": "350 5th Ave, New York, NY","startUrls": [{ "url": "https://www.doordash.com/store/joes-pizza-145565" }]}
Scrape stores with reviews
{"address": "350 5th Ave, New York, NY","startUrls": [{ "url": "https://www.doordash.com/search/store/sushi?event_type=search" }],"maxResults": 5,"fetchReviews": true,"maxReviews": 20}
Multiple URLs in one run
{"address": "Chicago, IL","startUrls": [{ "url": "https://www.doordash.com/search/store/burgers?event_type=search" },{ "url": "https://www.doordash.com/store/shake-shack-12345" }],"maxResults": 10,"fetchReviews": true,"maxReviews": 0}
📋 Input Configuration
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array | ✅ | One or more DoorDash search or store URLs | |
address | string | ❌ | 233 S Wacker Dr, Chicago, IL 60606 | Full street address the results are scoped to. See below this decides which stores you get. |
maxResults | integer | ❌ | 10 | Max stores per URL. 0 = no limit. Ignored in store mode. Run total = this × number of URLs. |
includeMenu | boolean | ❌ | true | Keep every menu category and item. Turn off for a much smaller dataset featured items are kept either way. |
fetchReviews | boolean | ❌ | false | Fetch customer reviews for each store |
maxReviews | integer | ❌ | 10 | Max reviews per store. 0 = all reviews. Only used when fetchReviews is enabled. |
Address Field Why It Matters
DoorDash results are entirely location-dependent. A search for "pizza" in New York returns completely different stores from the same search in Los Angeles along with different fees, delivery ETAs and open/closed status.
Use a full street address. DoorDash resolves this field through a street-address lookup, not a city lookup. A city name on its own is matched against nearby business names and can silently place your run in another state Chicago, IL resolves to a business called "Chicago Illinois" in Bloomfield Hills, Michigan.
| Input | What DoorDash actually uses |
|---|---|
Chicago, IL | ❌ Bloomfield Hills, MI |
Paris, France | ❌ Santa Ana, CA |
233 S Wacker Dr, Chicago, IL 60606 | ✅ Chicago, IL |
Every run logs the location it actually used, and warns when the resolved area doesn't match what you typed so you can always tell which city your data describes.
DoorDash operates in the US, Canada, Australia and New Zealand. An address outside those falls back to the closest match DoorDash recognises.
Leave the field blank to use the default Chicago street address.
Supported URL Formats
| Mode | Example URL |
|---|---|
| Search | https://www.doordash.com/search/store/pizza?event_type=search |
| Search with filters | https://www.doordash.com/search/store/sushi?filterQuery-star_rating=4.6 |
| Store (with slug) | https://www.doordash.com/store/joes-pizza-new-york-145565 |
| Store (numeric ID) | https://www.doordash.com/store/145565 |
| Store (full URL) | https://www.doordash.com/store/145565?cursor=... |
| Locale-prefixed | https://www.doordash.com/en-US/store/145565 https://www.doordash.com/en-CA/search/store/pizza |
Without https:// | www.doordash.com/store/145565 /store/145565 |
| Link to a file of URLs | Any public .txt with one DoorDash URL per line (the Link to a file with URLs option) |
DoorDash filter parameters in the URL (star rating, price range, DashPass, ETA, etc.) are honored automatically.
Full DoorDash store URLs containing cursor, ranking context, or other query parameters are fully supported. Extra parameters are ignored unless relevant.
📤 Output Structure
The Actor produces two record types in the same dataset, identified by the record_type field.
Store Record (record_type: "store")
One record per store. Contains store identity, ratings, fees, availability, location, media, featured items, and full menu categories all embedded in a single document.
{"record_type": "store","store_id": "27544161","name": "Lena's Italian Kitchen","description": "Italian","business": {"id": "29040069","name": "Lena's Italian Kitchen","vertical_id": 1},"tags": [{ "id": "96", "name": "Italian", "priority": 99 },{ "id": "9", "name": "Salads", "priority": 90 },{ "id": "37", "name": "Casual Dining", "priority": 89 }],"rating": 4.6,"num_ratings": 1167,"num_ratings_display": "1k+","stars_distribution": { "one": 20, "two": 27, "three": 27, "four": 200, "five": 893 },"num_reviews": 31,"num_reviews_display": "30+ public reviews","price_range": 2,"price_range_display": "$$","currency": "USD","is_dashpass": true,"delivery_fee_display": "$0 delivery fee","delivery_fee_is_surging": false,"pickup_fee_display": "No fees","is_open": false,"asap_minutes": null,"asap_status": {"is_available": false,"unavailable_status": "UNAVAILABLE_CLOSED","unavailable_reason": "CLOSED","display_reason": "Your address is not in this store's delivery area"},"asap_pickup_minutes": 15,"asap_pickup_status": {"is_available": false,"display_status": "Ready by 11:50 AM","operating_summary": { ... }},"offers": {"delivery": true,"pickup": true,"group_order": true,"scheduling": true,"catering": false,"cannabis": false,"drone_delivery": false},"flags": {"is_newly_added": false,"is_convenience": false,"fulfills_own_deliveries": false},"address": "168 Mulberry St, New York, NY 10013, USA","city": "New York","state": "NY","country": "US","lat": 40.71956,"lng": -73.99734,"distance_from_consumer": "1.2 mi","timezone": "America/New_York","header_image": "https://img.cdn4dd.com/...","cover_image": "https://img.cdn4dd.com/...","cover_square_image": "https://img.cdn4dd.com/...","additional_images": [{ "url": "https://img.cdn4dd.com/u/media/...", "photo_uuid": "abc123" }],"photo_count": "18 photos","current_menu_id": "64599346","menu_hours": [{"id": "64599346","name": "Menu","open_hours": [{ "open_time": "11:00:00", "close_time": "20:40:00" }],"display_hours": "11:00 AM - 8:40 PM"}],"featured_items": {"collection_id": "recommended_items_for_you","collection_name": "Featured Items","collection_type": "mixed_grid_carousel","num_rows": 2,"num_columns": 13,"total_items": 25,"items": [{"item_id": "11839454237","name": "Pasta Fiorentina","price_display": "$18.95","price_cents": 1895,"image_url": "https://img.cdn4dd.com/...","rating_pct": 94,"rating_count": 87,"badges": [{ "text": "#1 Most liked", "type": "most_liked_1", "placement": "ITEM" }],"recommendation": {"container": "recommended_items_for_you","card_position": 0,"row": 0,"col": 0,"menu_id": "64599346","category_id": "228676533"}}]},"menu_categories": [{"category_id": "popular-items","category_name": "Most Ordered","is_popular": true,"collection_type": "item_list","collection_position": 2,"visible_item_count": 5,"total_items": 12,"items": [{"item_id": "11839454237","name": "Pasta Fiorentina","description": "Spinach, mushroom, roasted garlic in a light cream sauce","price_display": "$18.95","price_cents": 1895,"image_url": "https://img.cdn4dd.com/...","quick_add_eligible": true,"has_customization": true,"rating_pct": 94,"rating_count": 87,"badges": [{ "text": "#1 Most liked", "type": "most_liked_1", "placement": "ITEM" }],"card_position": 0,"cell_type": "SQUARE","menu_id": "64599346","category_id": "228676533"}]}],"url": "https://www.doordash.com/store/27544161","_source": "doordash-scraper","_scrapedAt": "2026-05-12T10:49:34.000Z"}
Review Record (record_type: "review")
One record per customer review. The original DoorDash review payload is preserved intact, with dataset metadata and convenience fields added on top.
{"record_type": "review","store_id": "27544161","review_id": "a0d43b28-a5f4-4914-8ed3-8528e5f709e4","reviewer_name": "Max G","rating": 5,"tagged_item_ids": ["11839454237", "17241668102"],"consumer_review_uuid": "a0d43b28-a5f4-4914-8ed3-8528e5f709e4","reviewer_display_name": "Max G","star_rating": 5,"reviewed_at": "2026-04-27T02:23:34.680827Z","review_text": "Lena's has great, big portions and the food is overall very tasty...","is_verified": true,"experience": "DOORDASH","review_source": "DOORDASH","reviewer_data": {"display_name": "Max G","description": "Emerging Expert • 15 contributions","profile_image": { "url": "" },"is_verified": false,"creator_profile_uri": "/consumer/profile/1553580317","consumer_id": "1553580317"},"consumer_review_source": "CONSUMER_REVIEW_SOURCE_DOORDASH","marked_up_review_text": "Lena's has great, big portions... <<taggedItemId=11839454237>>Chicken Marsala<</taggedItemId>> was hearty...","_source": "doordash-scraper","_scrapedAt": "2026-05-12T10:49:34.000Z"}
Store Record Field Reference
| Field | Type | Description |
|---|---|---|
record_type | string | Always "store" |
store_id | string | DoorDash internal store identifier |
name | string | Store display name |
description | string | Cuisine type or short description |
business | object | Business entity id, name, vertical_id |
tags | array | Tag taxonomy with id, name, priority score |
rating | number | Average star rating (0–5) |
num_ratings | integer | Total number of ratings |
num_ratings_display | string | Display string e.g. "1k+" |
stars_distribution | object | Rating breakdown by star level (one–five) |
num_reviews | integer | Total number of written reviews |
price_range | integer | 1=$, 2=$$, 3=$$$, 4=$$$$ |
price_range_display | string | Display string e.g. "$$" |
is_dashpass | boolean | DashPass partner status |
delivery_fee_display | string | Delivery fee display string |
delivery_fee_is_surging | boolean | Whether delivery fee is surging |
pickup_fee_display | string | Pickup fee display string |
is_open | boolean | Whether store is currently open for delivery |
asap_minutes | integer | Estimated delivery time in minutes |
asap_status | object | Full delivery availability object with reason |
asap_pickup_minutes | integer | Estimated pickup time in minutes |
asap_pickup_status | object | Full pickup availability object |
offers | object | Capability flags delivery, pickup, group order, scheduling, catering, cannabis, drone |
flags | object | Store flags newly_added, convenience, fulfills_own_deliveries |
address | string | Full street address |
city / state / country | string | Location components |
lat / lng | number | GPS coordinates |
distance_from_consumer | string | Distance from the input delivery address |
timezone | string | Store timezone |
header_image | string | Header image URL |
cover_image | string | Cover image URL |
cover_square_image | string | Square cover image URL |
additional_images | array | UGC photos with url and photo_uuid |
photo_count | string | Display string e.g. "18 photos" |
menu_hours | array | Daily open/close times per menu |
featured_items | object | Featured items carousel with grid positions and recommendation signals |
menu_categories | array | All menu categories with full item detail, badges, and position signals |
url | string | DoorDash store URL |
_source | string | Always "doordash-scraper" |
_scrapedAt | string | ISO 8601 scrape timestamp |
Review Record Field Reference
| Field | Type | Description |
|---|---|---|
record_type | string | Always "review" |
store_id | string | Join key back to the store record |
review_id | string | Alias for consumer_review_uuid |
reviewer_name | string | Alias for reviewer_display_name |
rating | integer | Alias for star_rating (1–5) |
tagged_item_ids | array | Item IDs extracted from marked_up_review_text |
consumer_review_uuid | string | Original DoorDash review UUID |
star_rating | integer | Original star rating field (1–5) |
review_text | string | Plain review text |
marked_up_review_text | string | Review text with <<taggedItemId=N>> item markup |
is_verified | boolean | Whether the review is from a verified order |
reviewed_at | string | ISO 8601 review timestamp |
reviewer_data | object | Full reviewer object display name, description, profile URI, consumer ID |
review_source | string | Source platform e.g. "DOORDASH" |
experience | string | Experience type e.g. "DOORDASH" |
_source | string | Always "doordash-scraper" |
_scrapedAt | string | ISO 8601 scrape timestamp |
📊 Pre-Configured Dataset Views
1. Stores
All store records in a flat table identity, ratings, fees, availability, and embedded menu/featured data.
Fields: photo, store ID, name, cuisine, rating, ratings count, reviews count, price range, DashPass, open status, delivery ETA, delivery fee, pickup ETA, pickup fee, city, state, address, distance, featured items, menu categories, link
2. Reviews
All review records in a flat table one row per customer review.
Fields: record type, store ID, review ID, star rating, reviewer name, review text, reviewed at, verified status, tagged item IDs, marked-up text, reviewer info, experience, source
💰 Pricing
This Actor uses pay-per-event pricing: you pay for the records you actually receive, not for runtime. There is no platform-usage charge on top compute is included in the prices below.
What you pay for
| Event | When it is charged | Free | Bronze | Silver | Gold+ |
|---|---|---|---|---|---|
| Store Result | One per store saved to the dataset | $0.006 | $0.004 | $0.003 | $0.002 |
| Customer Review | One per review saved to the dataset | $0.001 | $0.0008 | $0.0006 | $0.0005 |
Reviews are only charged when Fetch reviews is enabled.
What it costs in practice
| What you want | Events | Free tier | Gold tier |
|---|---|---|---|
| 100 stores, no reviews | 100 stores | $0.60 | $0.20 |
| 1,000 stores, no reviews | 1,000 stores | $6.00 | $2.00 |
| 100 stores + 10 reviews each | 100 stores + 1,000 reviews | $1.60 | $0.70 |
| 1 store with all its reviews (~250) | 1 store + 250 reviews | $0.256 | $0.127 |
You are only charged for delivered records
- A store is charged once, when its record is written to the dataset. Stores that turn out to be unavailable, blocked, or missing are skipped and never charged.
- Duplicate stores across overlapping search URLs are removed before charging, so the same store is never billed twice in a run.
- If a URL can't be used, the run ends with a short explanation record and no charge.
includeMenudoes not change the price. A store costs the same with or without its menu, so switch the menu off when you don't need it: the record drops from roughly 100 KB to 22 KB with no change to your bill.
Capping your spend
Set Max total charge on the run and the Actor reads that limit before it starts fetching, then scrapes only what the budget covers rather than stopping part-way through.
Max total charge: $0.02 → Budget guard: $0.02 covers 3 store(s) — lowering the target from 10 to 3
Every store you are charged for is delivered the run stops at the limit, it never bills for a record it doesn't write.
⚠️ Important Notes
Data Accuracy
- Store availability, fees, and menus change frequently re-run the Actor for up-to-date data
- Reviews are a combination of preview reviews embedded in the store detail response and results from the paginated reviews endpoint, deduplicated by review UUID
Review Extraction Behavior
- When
fetchReviewsis disabled, no review records are pushed not even preview reviews - When
fetchReviewsis enabled, up tomaxReviewsreviews are pushed per store (set to0for all) - Reviews are billed as their own event, separately from stores see Pricing
Legal Considerations
This Actor extracts publicly available data from DoorDash. Users must:
- Comply with DoorDash's Terms of Service
- Follow applicable data protection laws (GDPR, CCPA, etc.)
- Use extracted data responsibly and ethically
The Actor creator is not responsible for how users utilize the extracted data.
💬 Support & Contact
Get Help
- 🌐 Website: flowextractapi.com
- 📧 Email: flowextractapi@outlook.com
- 🙋 Apify Profile: FlowExtract API
- 💬 GitHub Issues: FlowExtractAPI
Social Media
- 💼 LinkedIn: flowextract-api
- 🐦 Twitter: @FlowExtractAPI
- 📱 Facebook: flowextractapi
🌟 Related Actors by FlowExtract API
🍽️ Food & Delivery
DoorDash Scraper Scrape store listings, menus, featured items, and customer reviews from DoorDash.
🏠 Real Estate Data
Realtor.com Scraper Extract US property listings from Realtor.com. Pricing, agent contacts, tax history, AVM estimates, nearby schools, flood and noise data, and full listing history.
PropertyFinder Scraper Extract property listings from PropertyFinder across UAE, Saudi Arabia, Bahrain, Egypt, and Qatar.
Idealista Scraper API Advanced Idealista property data extraction with API access.
Idealista Scraper Extract Spanish real estate listings from Idealista.
Leboncoin.fr Scraper Extract French classified listings from Leboncoin real estate, vehicles, jobs, and more.
AI Contact Intelligence Extractor Extract emails, phones, contacts & custom data using AI.
🎬 Video & Media Tools
YouTube Transcript & Metadata Extractor Extract complete video transcripts with timestamps and comprehensive metadata.
YouTube Full Channel, Playlists, Shorts, Live Extract complete playlist information with all video details from any YouTube playlist.
Zoom Scraper | Downloader & Transcript Extract Zoom meeting recordings, transcripts, and metadata.
Loom Scraper | Downloader & Transcript Download Loom videos and extract transcripts.
🛠️ Developer & Security Tools
Screenshot Fast, reliable webpage screenshots with customizable options.
Ultimate Screenshot Advanced screenshot tool with full-page capture, custom viewports, and quality controls.
Network Security Scanner Scan websites for security vulnerabilities and get comprehensive security reports.
📱 Social Media Tools
Facebook Ads Scraper Pro Extract Facebook ads data for competitor analysis and market research.
LinkedIn Ad Library Scraper Extract comprehensive advertising data from LinkedIn's Ad Library.
Ready to extract DoorDash data? Start using DoorDash Scraper now!