DoorDash Scraper — Store Reviews & Ratings
Pricing
from $3.50 / 1,000 reviews
DoorDash Scraper — Store Reviews & Ratings
[💰 $3.5 / 1K] Extract every public customer review from any DoorDash store page. Get star ratings, full review text, verified-order flags, review photos, reviewer profiles and the menu items each review names. Export to JSON, CSV or Excel.
Pricing
from $3.50 / 1,000 reviews
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pull every public customer review from any DoorDash store — star ratings, full review text, verified-order flags, customer photos, reviewer profiles and the exact menu items each review names. Built for restaurant groups, delivery-market analysts, and brand and reputation teams who need the whole review history of a store in one table, instead of the five reviews the store page is willing to show and a copy-paste job for the rest.
Why This Scraper?
- Every public review, not the preview — a DoorDash store page shows 5 reviews. This returns the store's complete public list: 107 of 107 on one store, 95 of 95 on another, 18 of 18 on a third.
- 17 fields on every review row — rating, label, full text, review date, verified-order flag, helpful votes, mentioned menu items, reviewer identity, reviewer badge, photos and source, all flat and ready for a spreadsheet.
- DoorDash's own sentiment label —
ratingLabelships asLoved,LikedorDidn't like, a closed three-value set that is an exact function of the 1–5 star count. Group by it without writing your own rating buckets. - The dishes each review actually names —
mentionedItemscarries the menu items a reviewer called out (Whopper,French Fries,Chopped Salad), so you can rank sentiment per item instead of per store. - Verified orders are flagged —
verifiedseparates reviews written after a confirmed DoorDash order from the rest, so you can weight or filter on real purchase evidence. - Reviewer context on every row — display name, profile URL and DoorDash's own contributor note (
Local Expert - 42 contributions), which tells a one-off complaint apart from a 200-review regular. - Customer photos, at full CDN resolution —
photoUrlsreturns every image attached to a review, the same shots buyers see under the ratings tab. - Coverage you can check, not coverage we claim —
id,urlandstoreIdon 100% of rows, andrating,ratingLabel,reviewText,reviewedAtandverifiedon at least 98% — measured over 462 reviews spanning 6 cities, 6 US states plus a Canadian province, and 6 cuisine categories.
Use Cases
Restaurant & Brand Operations
- Track complaint themes store by store — cold food, missing items, long waits — and see which locations they cluster in.
- Rank individual menu items by sentiment using
mentionedItemsplus the star rating on the same row. - Measure whether a menu change, a new packaging supplier or a kitchen retrain moved the rating, by comparing
reviewedAtwindows before and after. - Pull the full review history of a location before an audit or a franchise review, instead of the five most recent.
Competitive & Market Research
- Benchmark your locations against nearby competitors on the same delivery platform, using the same rating scale.
- Study how a cuisine category performs in a metro area — the sample here spans burgers, breakfast, sushi, burritos, sweets and dinner.
- Spot which competitors are winning on food quality versus delivery experience by reading what reviewers actually mention.
- Track a new market entrant's review volume and rating trajectory week over week.
Reputation Management
- Alert on new 1- and 2-star reviews as they appear, routed to Slack or email through Apify's integrations.
- Prioritise responses by reviewer weight — a
Local Expertwith 200 contributions carries more reach than a first-time reviewer. - Separate verified-order complaints from unverified ones before escalating to an operations team.
- Build a monthly reputation report per location, with photo evidence attached.
Data Science & AI
- Train or evaluate sentiment and aspect-extraction models on labelled restaurant reviews — the star rating and DoorDash's own
Loved/Liked/Didn't likelabel ship as ground truth on the same row. - Build retrieval corpora for a restaurant or food-delivery assistant, with reviews spanning 2021 to 2026.
- Mine review photos for food-presentation and packaging computer-vision datasets.
Data Enrichment & Integration
- Enrich an internal store master with live review counts and ratings, joined on
storeId. - Feed reviews into a BI dashboard or warehouse on a schedule, straight from the dataset.
- Push new reviews into a CRM or ticketing system as they land, using webhooks.
Getting Started
One store, capped at 100 reviews
{"searchUrls": ["https://www.doordash.com/store/11611/"],"maxItems": 100}
Paste a store URL straight from your address bar
Open the store on doordash.com and copy the URL. Both the long form with the restaurant name in it and the short numeric form address the same store.
{"searchUrls": ["https://www.doordash.com/store/panda-express-46386/"],"maxItems": 100}
Several stores, every review each one has
maxItems: 0 removes the per-store cap and collects the store's whole public list.
{"searchUrls": ["https://www.doordash.com/store/11611/","https://www.doordash.com/store/25126830/","https://www.doordash.com/store/13937/"],"maxItems": 0,"proxyConfiguration": { "useApifyProxy": true }}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | array | example store | DoorDash store page URLs, one per store you want reviews for. Copy them from doordash.com — https://www.doordash.com/store/panda-express-46386/ and https://www.doordash.com/store/46386/ both work. |
maxItems | integer | 100 | Maximum reviews per store URL (0 = collect every review the store has). The opening status message states the run total. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
concurrency | integer | 8 | How many requests to run in parallel, 1–10. Lower this if you see failures. |
proxyConfiguration | object | Apify Proxy | Proxy settings for the run. |
Output
Every review is one dataset row. There is a single record type — no second table to join.
The example below is a real captured review. The reviewer's name and profile identifiers have been replaced with placeholders; your dataset contains the actual published values.
{"id": "d59941b4-c012-4981-a62d-e3058e4c354c","url": "https://www.doordash.com/store/11611/","storeId": "11611","rating": 5,"ratingLabel": "Loved","reviewText": "Everything is delicious and consistently good here! The BLT and chopped Chopped Salad were awesome. The drip Coffee was strong. Their soups are great whether it's the tomato soup or the daily special. We love this place. Especially the quiche. They even have quality Napkins and Utensils.","reviewedAt": "2024-04-07T18:17:03.736+00:00","verified": true,"helpfulCount": 0,"mentionedItems": ["Chopped Salad","Napkins and Utensils"],"reviewerName": "REVIEWER NAME","reviewerId": "000000000","reviewerProfileUrl": "https://www.doordash.com/consumer/profile/000000000","reviewerProfileNote": "109 contributions","photoUrls": ["https://img.cdn4dd.com/u/media/46d6a230-f0a1-4da6-8037-a6370c7adef9.png"],"reviewerAvatarUrl": "https://doordash-cx-profile.cdn4dd.com/media/2ab7b694-df7b-46ee-acd7-3687293d9892.png","reviewSource": "DoorDash"}
The Review
| Field | Type | Description |
|---|---|---|
id | string | Unique review ID. Stable across runs, so it doubles as your de-duplication key. |
url | string | The store page the review is published on. |
storeId | string | Numeric DoorDash store ID — the join key back to your own store list. |
rating | number | Star rating, 1–5. |
ratingLabel | string | DoorDash's own label: Loved (5 stars), Liked (4 stars) or Didn't like (1–3 stars). |
reviewText | string | The full written review. |
reviewedAt | string | When the review was written, ISO 8601 in UTC. |
verified | boolean | true when the review follows a confirmed DoorDash order. |
helpfulCount | number | How many people marked the review helpful. |
mentionedItems | array | Menu items the review names, e.g. ["Whopper", "French Fries"]. |
The Reviewer
| Field | Type | Description |
|---|---|---|
reviewerName | string | Public display name as shown on DoorDash. |
reviewerId | string | DoorDash's reviewer ID — group a person's reviews across stores. |
reviewerProfileUrl | string | Absolute link to the public reviewer profile. |
reviewerProfileNote | string | DoorDash's contributor line, e.g. Local Expert - 42 contributions or 9 contributions. |
Media & Source
| Field | Type | Description |
|---|---|---|
photoUrls | array | Full-resolution URLs of every photo attached to the review. |
reviewerAvatarUrl | string | The reviewer's profile picture. |
reviewSource | string | Which DoorDash surface the review came from. |
Tips for Best Results
maxItemsis per store, not per run. Ten store URLs atmaxItems: 100is up to 1,000 rows. The opening status message quotes the run total before anything is collected, so read it once when you scale a run up.- Set
maxItems: 0for a complete history. Stores here carry roughly 18–110 public reviews each, so an uncapped run on a handful of stores is small and predictable. - Written reviews are far rarer than star ratings. One sampled store had 7,711 ratings but only 58 written reviews — this actor returns the written ones, which is the text you can actually analyse. Size your volume estimates on the written count, not the headline rating count.
- Sort on
reviewedAtyourself if you need chronological output. Reviews arrive in DoorDash's own display order, which is roughly newest-first but not strictly ordered. The values are ISO 8601 in UTC (2024-04-07T18:17:03.736+00:00), so a plain string sort is correct. - Absent means absent.
photoUrls,reviewerAvatarUrlandmentionedItemsdepend entirely on what the reviewer attached — most reviews carry no photo. A review without one carries no key at all rather than an empty list, soif "photoUrls" in rowis a reliable filter and never a false positive. - Rows identify the store by ID and URL, not by name. You get
storeIdand the store page URL, never the restaurant's name, address or overall rating. One store's URL produces one set of rows, so keep your own store list beside the run and join onstoreId. - Re-run a store to catch new reviews, then de-duplicate on
id. IDs are stable, so a nightly run with a lowmaxItemsgives you fresh reviews cheaply without re-collecting the archive.
Pricing
From $3.50 per 1,000 results.
| Results | Price |
|---|---|
| 100 | $0.35 |
| 1,000 | $3.50 |
| 10,000 | $35.00 |
| 100,000 | $350.00 |
Those are the rates on Gold and above. Higher-volume plans pay less per result:
| Your Apify plan | Price |
|---|---|
| No discount | $4.20 |
| Bronze | $3.95 |
| Silver | $3.70 |
| Gold and above | $3.50 |
Per 1,000 results.
A "result" is any review row in the output dataset. If the same review appears twice in one run — say you list a store under both its long and its short URL — it is de-duplicated before it reaches the dataset, so you are never charged twice for it. Platform fees (compute, storage) are additional and depend on your Apify plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This is an unofficial scraper. It is not affiliated with, endorsed by, or connected to DoorDash, DoorDash, Inc., or any of its brands in any way. All trademarks belong to their respective owners.
This actor is intended for legitimate market research, restaurant analytics, and reputation management. You are responsible for complying with applicable laws and with DoorDash's Terms of Service.
Reviews include personal data — display names, profile links, profile pictures and the photos people chose to publish. Treat them accordingly: do not use them for spam, harassment, profiling of individuals, or any unlawful purpose, and follow applicable privacy rules when storing or processing them.