DoorDash Scraper - Extract Restaurant & Store Data with Menus
Pricing
from $0.01 / 1,000 results
DoorDash Scraper - Extract Restaurant & Store Data with Menus
Scrape comprehensive data from DoorDash including restaurants, stores, menus, pricing, and ratings. Perfect for market research, competitive analysis, and food industry intelligence. Analyze Menu Pricing Research Markets Monitor Competition Build Restaurant Databases Franchise Research
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
The Howlers
Maintained by CommunityActor stats
0
Bookmarked
127
Total users
2
Monthly active users
7 days ago
Last modified
Categories
Security
Limited permissionsShare
DoorDash Store Scraper
Scrape DoorDash for restaurant and store listings, menus, prices, ratings, and delivery info. Extract data for food delivery market analysis. Built by John Rippy (https://www.linkedin.com/in/johnrippy/).
BYOK (Bring Your Own Key) -- you provide your own API credentials.
Before You Start
This actor requires your own API credentials to fetch real data.
Where to get your key: Your Firecrawl API key for enhanced scraping with better bot bypass. Without this, Crawlee with residential proxies will be used. Get a key at https://firecrawl.dev
This actor runs in Demo Mode by default, so a default free run returns sample data (free, no key needed) to show you the output format. Set demoMode to false to fetch real data.
Quick Start
Test with Demo Mode (free, no API key needed)
{"demoMode": true,"storeUrl": "https://www.doordash.com/store/mcdonald-s-san-francisco-16173/"}
Run with real data
{"demoMode": false,"scrapeType": "menu","storeUrl": "https://www.doordash.com/store/mcdonald-s-san-francisco-16173/","searchTerm": "burger","location": "San Francisco, CA","storeType": "all","includeMenu": true,"maxResults": 10,"firecrawlApiKey": "YOUR_API_KEY_HERE","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Input Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
scrapeType | string | "menu" | No | What type of data to scrape |
storeUrl | string | - | No | Direct DoorDash store page URL (required for store_profile and menu scrape types) |
searchTerm | string | "burger" | No | Store type, cuisine, or restaurant name (for search mode) |
location | string | "San Francisco, CA" | No | City and state for search context |
storeType | string | "all" | No | Filter by store type |
includeMenu | boolean | true | No | Extract menu items and prices from each store |
maxResults | integer | 10 | No | Maximum number of stores to scrape (search mode only) |
firecrawlApiKey | string | - | Yes* | Your Firecrawl API key for enhanced scraping with better bot bypass. Without this, Crawlee with residential proxies will be used. Get a key at https://firecrawl.dev |
proxyConfiguration | object | {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]} | No | Proxy settings for Crawlee scraping (used when Firecrawl API key is not provided) |
demoMode | boolean | true | No | Return sample data without actual scraping (for testing only - does NOT scrape real menus) |
webhookUrl | string | - | No | Optional webhook URL to receive data when scraping completes |
*Required when Demo Mode is off.
Pricing
This actor uses pay-per-event billing:
| Event | When it is charged | Price |
|---|---|---|
| Actor start | Once when the run starts, one event per GB of memory (minimum one). At the default 4 GB of memory a run starts at $0.40 | $0.10 per GB |
| Store Listing | Each store listing scraped | $0.003 |
| Menu Item | Each menu item scraped | $0.001 |
| Result | Each item written to the default dataset | $0.00001 |
Demo mode is free -- no charges for sample data.
Troubleshooting
"API key is required"
You have Demo Mode turned off but didn't provide an API key. Either:
- Turn Demo Mode on to test with sample data
- Add your API key in the input
"API error 403" or "Unauthorized"
Your API key is invalid, expired, or doesn't have access to this specific API endpoint. Double-check your key and account permissions.
"API error 429" or "Rate limit"
Too many requests. Wait a minute and try again, or reduce the number of items per run.
No results or empty dataset
Check the run log for error messages. Common causes:
- Invalid input format (check the examples above)
- API key without proper permissions
- The target data doesn't exist or is too small to track
How do I test without an API key?
Enable Demo Mode in the input. This returns realistic sample data so you can verify the output format works for your workflow.
Built by John Rippy | Actor Arsenal