DoorDash Scraper — Restaurants, Menus, Prices & Reviews avatar

DoorDash Scraper — Restaurants, Menus, Prices & Reviews

Under maintenance

Pricing

Pay per usage

Go to Apify Store
DoorDash Scraper — Restaurants, Menus, Prices & Reviews

DoorDash Scraper — Restaurants, Menus, Prices & Reviews

Under maintenance

Extract DoorDash restaurants with menus, prices, ratings, delivery fees, delivery times, and cuisine types. Search by city or address. Filter by cuisine. Export to JSON, CSV, or Excel. Ideal for food delivery market research and competitive intelligence.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ricardo Akiyoshi

Ricardo Akiyoshi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Categories

Share

DoorDash Restaurant & Menu Scraper

Scrape DoorDash for restaurant listings with full menus, item prices, ratings, delivery fees, delivery times, cuisine types, and reviews. Search by city or address. Filter by cuisine. Export to JSON, CSV, or Excel.

What data can you extract?

For each restaurant, the scraper extracts:

FieldDescriptionExample
nameRestaurant name"Joe's Pizza"
addressStreet address"123 Broadway, New York, NY 10001"
ratingAverage rating (0-5)4.7
reviewCountNumber of ratings1234
deliveryFeeDelivery fee"Free" or "$2.99"
deliveryTimeEstimated delivery time"25-35 min"
priceRangePrice level"$$"
cuisineCuisine type(s)"Italian, Pizza"
menuFull menu with itemsArray of menu items
menuItemCountNumber of menu items45
urlDoorDash restaurant URL"https://www.doordash.com/store/..."
imageRestaurant header imageURL

Each menu item includes:

FieldDescriptionExample
nameItem name"Margherita Pizza"
descriptionItem description"Fresh mozzarella, tomato, basil"
priceItem price"$14.99"
imageItem image URLURL
categoryMenu section"Pizzas"
isPopularWhether marked as populartrue/false
caloriesCalorie count (if available)"850"

Use cases

  • Market research — Analyze food delivery trends, pricing, and competition across cities
  • Competitive intelligence — Track competitor restaurant menus, prices, and ratings
  • Pricing analysis — Compare delivery fees, item prices, and price ranges across restaurants
  • Lead generation — Build lists of restaurants in specific areas for B2B outreach
  • Data journalism — Analyze food delivery ecosystems and pricing patterns
  • Academic research — Study food deserts, pricing disparities, and restaurant distribution

Input configuration

Locations (required)

List of cities, addresses, or zip codes to search:

{
"locations": ["New York, NY", "Los Angeles, CA", "Chicago, IL"]
}

Supported formats:

  • City and state: "New York, NY"
  • Zip code: "90210"
  • Full address: "123 Main St, Chicago, IL"

Cuisine filter (optional)

Filter results by cuisine type:

{
"locations": ["New York, NY"],
"cuisine": "pizza"
}

Supported cuisines: pizza, chinese, mexican, sushi, japanese, burgers, thai, indian, italian, korean, vietnamese, mediterranean, american, seafood, wings, breakfast, desserts, vegan, healthy, sandwiches, chicken, bbq, ramen, pho, tacos, salads, soup, coffee, bakery, and more.

Max results

Maximum number of restaurants to scrape per location (default: 200):

{
"locations": ["New York, NY"],
"maxResults": 100
}

Set to 0 for unlimited results.

Include menus

Whether to scrape full menus for each restaurant (default: true):

{
"locations": ["New York, NY"],
"includeMenus": false
}

Disabling menus produces faster results with only restaurant-level data.

Proxy configuration

DoorDash has aggressive bot detection. Residential proxies are strongly recommended:

{
"locations": ["New York, NY"],
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Example output

{
"name": "Joe's Pizza",
"address": "7 Carmine St, New York, NY 10014",
"rating": 4.7,
"reviewCount": 2847,
"deliveryFee": "$1.99",
"deliveryTime": "20-30 min",
"priceRange": "$$",
"cuisine": "Pizza, Italian",
"menu": [
{
"name": "Cheese Pizza (Large)",
"description": "Classic New York style cheese pizza",
"price": "$22.00",
"image": "https://img.cdn.doordash.com/...",
"category": "Whole Pizzas",
"isPopular": true,
"calories": "2400"
},
{
"name": "Pepperoni Slice",
"description": "Hand-tossed pepperoni pizza slice",
"price": "$4.50",
"image": "https://img.cdn.doordash.com/...",
"category": "Pizza by the Slice",
"isPopular": true,
"calories": "350"
}
],
"menuItemCount": 28,
"url": "https://www.doordash.com/store/joes-pizza-new-york-123456/",
"image": "https://img.cdn.doordash.com/...",
"searchLocation": "New York, NY",
"searchCuisine": "pizza",
"resultPosition": 1,
"scrapedAt": "2026-03-01T12:00:00.000Z"
}

Performance and tips

  • Use proxies — DoorDash has strong anti-bot measures. Residential proxies are essential for reliable scraping.
  • Start small — Test with maxResults: 10 before running large scrapes.
  • Disable menus for speed — Set includeMenus: false for 3-5x faster scraping when you only need restaurant-level data.
  • One location at a time — For best results, start with a single location to verify your proxy setup works.
  • City format — Use "City, ST" format (e.g., "New York, NY") for best URL matching.

Pricing

This actor uses pay-per-event pricing:

  • $0.005 per restaurant scraped (including menu data when enabled)

This actor is designed for personal research and data analysis. Users are responsible for ensuring their use complies with DoorDash's Terms of Service and applicable laws. The actor respects rate limits and does not bypass authentication.

Support

Found a bug or have a feature request? Open an issue on GitHub or contact ricardo.yudi@gmail.com.

Built by Sovereign AI.

Integration — Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("sovereigntaylor/doordash-scraper").call(run_input={
"searchTerm": "doordash",
"maxResults": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item.get('title', item.get('name', 'N/A'))}")

Integration — JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('sovereigntaylor/doordash-scraper').call({
searchTerm: 'doordash',
maxResults: 50
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => console.log(item.title || item.name || 'N/A'));