DoorDash Scraper - Restaurants, Menus & Prices avatar

DoorDash Scraper - Restaurants, Menus & Prices

Pricing

from $5.00 / 1,000 restaurant scrapeds

Go to Apify Store
DoorDash Scraper - Restaurants, Menus & Prices

DoorDash Scraper - Restaurants, Menus & Prices

Scrape DoorDash restaurants & menus by city: name, full address, cuisine, price tier, menu items with prices, rating, reviews and geo. Optional full menu & review enrichment and monitoring. No login or API key.

Pricing

from $5.00 / 1,000 restaurant scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

DoorDash Scraper — Restaurants, Menus, Prices & Reviews

Scrape DoorDash — the #1 US food-delivery marketplace — into clean, structured data. Pull every restaurant in a city with name, full street address, cuisine, price tier, logo, and a menu preview with prices. Turn on store details for the complete menu (every section, item & price), star rating, review count, customer reviews and geo coordinates. Built-in monitor mode returns only new restaurants between runs.

No API key, no login, no browser automation — fast HTTP straight to the source, with a 0–100 quality score on every restaurant.

Why this DoorDash scraper?

Most food-delivery scrapers give you a list of names, then break or stop at the listing card. This actor reads DoorDash's own structured (JSON-LD) data and ships the full record — including the data that powers menu-pricing and competitive-intelligence use cases:

DataTypical scrapersThis actor
Restaurant name + store URL
Full street address + city/statepartial
Cuisine(s) + price tier ($–$$$$)partial
Logo / cover image
Menu preview (popular items + prices)
Full menu — every section, item, description & price (store details)
Star rating + review count (store details)
Customer reviews (author, stars, text) (store details)
Geo (lat/long) (store details)
Filter by city, cuisine, price, ratingpartial
Monitor mode — only new restaurants
Quality score (0–100)

Who uses DoorDash data?

  • Restaurant-tech, POS, online-ordering & delivery SaaS — build prospect lists of restaurants by city and cuisine, with address and menu.
  • Food brands, distributors & suppliers — find and segment restaurants that could carry your products.
  • Menu & price intelligence — benchmark competitor menus, item pricing and price tiers across a market.
  • Ghost kitchens & virtual brands — map the competitive landscape and white space by cuisine.
  • Market researchers & analysts — restaurant density, cuisine mix, ratings and pricing trends by city.
  • Investors & real-estate teams — gauge food-service supply and demand in a trade area.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the DoorDash Scraper, enter one or more cities ("Austin, TX"), optionally add cuisines, and click Start.
  3. Watch results stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"cities": ["Austin, TX", "New York, NY"],
"cuisines": ["pizza", "mexican"],
"includeStoreDetails": true,
"includeReviews": true,
"maxReviewsPerStore": 10,
"priceTiers": ["1", "2"],
"maxResults": 100
}
FieldTypeDescription
citiesarrayCities to scrape, as "City, ST" (e.g. "Austin, TX").
cuisinesarrayOptional cuisine filters — each is scraped separately per city (~50 restaurants each) to expand coverage.
startUrlsarrayDoorDash city pages or single /store/<id>/ URLs (auto-routed; store URLs always pull full details).
maxResultsintegerCap on restaurant records (default 100).
includeStoreDetailsbooleanOpen each store page for the full menu, rating, reviews and geo.
includeReviewsbooleanInclude customer reviews when store details are on.
maxReviewsPerStoreintegerMax reviews per restaurant.
cuisineFilterarrayOutput filter: keep only matching cuisines.
priceTiersarrayOutput filter: 1 = $, 2 = $$, 3 = $$$, 4 = $$$$.
minRating / minReviewsintegerOutput filters (require store details).
withMenuOnlybooleanOnly restaurants that have menu items.
monitorModebooleanEmit only restaurants not seen in previous runs.
proxyConfigurationobjectDefaults to Apify Residential, US (recommended).

Output

Each restaurant is one row tagged type: "restaurant":

{
"type": "restaurant",
"storeId": "62014",
"name": "The Cheesecake Factory",
"url": "https://www.doordash.com/store/the-cheesecake-factory-austin-62014/",
"cuisines": ["American", "Dessert"],
"primaryCuisine": "American",
"priceRange": "$$",
"priceTier": 2,
"street": "10000 Research Boulevard",
"city": "Austin",
"state": "TX",
"rating": 4.5,
"reviewCount": 50,
"latitude": 30.39098,
"longitude": -97.747569,
"menu": [
{ "section": "Most Ordered", "items": [
{ "name": "Whole Wheat Loaf", "price": 3.5, "priceText": "$3.50" }
] }
],
"menuSectionCount": 9,
"menuItemCount": 91,
"reviews": [
{ "author": "Miguel R", "rating": 5, "body": "...delicious!" }
],
"leadScore": 88,
"scrapedAt": "2026-06-24T01:00:00.000Z"
}

Without store details, each row carries the city-feed data: name, street/city/state, cuisines, priceRange, imageUrl, and a menuPreview (popular items with prices).

Monitor mode

Turn on monitorMode to remember every restaurant (storeId) across runs and emit only restaurants not seen before — perfect for tracking new restaurant openings in a market. State lives in a named key-value store (monitorStoreName, default doordash-scraper-monitor); use a different name per tracked market. This is orthogonal to Apify Schedules — the schedule decides when to run, monitor mode decides what's new.

Automate & schedule

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/doordash-scraper').call({
cities: ['Austin, TX'],
includeStoreDetails: true,
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new restaurant leads straight into your CRM.
  • Slack — get notified when a monitored city has new restaurants.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "list the top-rated pizza restaurants in Austin with their menu prices" and let it run this scraper for you.

More scrapers from scrapesage

Tips

  • Wider coverage per city: add several cuisines (pizza, mexican, sushi, burgers…) — each pulls ~50 more restaurants for the same city.
  • Cheapest runs: leave includeStoreDetails off — the city feed already gives name, address, cuisine, price tier and a menu preview.
  • Menu/price benchmarking: turn on includeStoreDetails to capture every menu item and price across a market.
  • Track new openings: combine Schedules with monitorMode.

FAQ

Do I need a DoorDash API key or login? No. This actor reads the public city and store pages — no key, no login, no browser.

Can I target a specific city? Yes — the city is set by the URL, so results are reliably localized to the city you enter (unlike IP-based scrapers).

Does it get restaurant phone numbers? DoorDash routes contact through its platform and does not publish restaurant phone numbers, so phone is not available. You get the full street address, which pairs well with the Google Maps Scraper for phone/email enrichment.

Why Residential proxy? DoorDash serves clean pages over US residential IPs but challenges datacenter IPs. The default is Apify Residential (US); blocked requests retry automatically on a fresh IP.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.


Not affiliated with or endorsed by DoorDash. Use responsibly and in accordance with applicable laws and terms. Scrapes only publicly available data.