Tony Wang4 Min. LesezeitDoorDash-Restaurant- und Menu-Daten scrapen in 2026 (API & Python)
DoorDash-Restaurant-Suche, -Menus und -Reviews 2026 scrapen — DIY, No-Code oder eine strukturierte API für DoorDashs App-Backend — samt rechtlichen Grundlagen.
Am schnellsten scrapst du DoorDash-Restaurant- und Menu-Daten 2026, indem du eine strukturierte API aufrufst, die normalisiertes JSON zurückgibt — Pickup-Suche, Store-Menus, Item-Details, Fulfillment-Infos und Reviews — statt DoorDashs Mobile-App-Backend selbst zu reverse-engineeren. Dieser Guide behandelt alle drei Ansätze, was jeder liefert, wo jeder scheitert, und die rechtlichen Grundlagen.
Warum DoorDash scrapen?
DoorDash zentralisiert Restaurant-Discovery, Menus und Delivery-/Pickup-Logistik für einen riesigen Anteil des US-Food-Delivery-Markts, was es nützlich macht für:
- Restaurant- & Menu-Intelligence — verfolge Menu-Items, Preise und Verfügbarkeit über einen Markt hinweg.
- Delivery-Marktforschung — Cuisine-Abdeckung, DashPass-Berechtigung und Pickup- vs. Delivery-Mix nach Gegend.
- Review- & Reputations-Monitoring — verfolge das Rating und Review-Volumen eines Restaurants über die Zeit.
- Wettbewerbs-Pricing — vergleiche Gerichtspreise für dieselbe Cuisine über nahegelegene Stores hinweg.
Ist es legal, DoorDash zu scrapen?
Option 1: DIY in Python (und warum es scheitert)
DoorDashs Website und App rendern Search, Menus und Reviews aus einer internen API, die durch Anti-Bot-Abwehr geschützt ist:
import requests
# DoorDash's public search page calls an internal API behind anti-bot defenses
resp = requests.get("https://www.doordash.com/search/store/pizza/?lat=37.7825&lng=-122.461")
Es funktioniert in der Demo und scheitert dann:
- Keine offizielle öffentliche API. DoorDash veröffentlicht keine Developer-API für Drittanbieter-Zugriff auf Search, Menu oder Reviews, also gibt es keinen dokumentierten Endpoint und keinen Key — du replizierst die privaten Calls der Consumer-App.
- Standortgebundene Responses. Verfügbarkeit, Pricing und Menus sind alle auf eine Delivery-/Pickup-Location bezogen, ein Scraper braucht also ein echtes Koordinatenpaar pro Request und kann keine Response über Märkte hinweg cachen.
- Anti-Bot-Abwehr. Wiederholte automatisierte Requests an Search- und Store-Endpoints ziehen Rate-Limits und Blocks nach sich, was realistische Header, Proxys und ständige Pflege erfordert.
- Driftendes internes Schema. Die Response-Form des privaten App-Backends ändert sich ohne Vorwarnung und bricht replizierte Queries.
Option 2: No-Code-Tools
"DoorDash-Scraper"-Actors aus Marketplaces exportieren CSV/JSON und eignen sich für einmalige Abrufe, aber in einer geplanten Pipeline sind sie umständlich und erben dieselbe Fragilität der internen API.
Option 3: Eine strukturierte DoorDash-API
Für wiederholbare Workflows ruft eine DoorDash scraping API denselben anonymen Android-Mobile-Guest-Flow auf, den DoorDashs eigene App nutzt, und liefert normalisiertes JSON — ohne DoorDash-Account, Cookie oder Token. Suche Pickup-Restaurants in der Nähe eines Standorts:
curl "https://api.crawlora.net/api/v1/doordash/search?query=pizza&latitude=37.7825&longitude=-122.461" \
-H "x-api-key: $CRAWLORA_API_KEY"
Löse dann eine Store-id auf und hol dessen Menu, Fulfillment-Infos und Reviews in Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/doordash"
loc = {"latitude": 37.7825, "longitude": -122.461}
results = requests.get(f"{base}/search", headers=h,
params={"query": "pizza", **loc}).json()["data"]["results"]
store_id = results[0]["storeId"]
menu = requests.get(f"{base}/store/{store_id}/menu", headers=h, params=loc).json()["data"]
reviews = requests.get(f"{base}/store/{store_id}/reviews", headers=h, params=loc).json()["data"]
fulfillment = requests.get(f"{base}/store/{store_id}/fulfillment", headers=h, params=loc).json()["data"]
Eine Search-Response ist normalisiertes JSON, das du direkt speichern kannst (echte Felder):
{
"code": 200,
"msg": "OK",
"data": {
"query": "pizza",
"results": [
{ "storeId": "123", "name": "Pizza Place", "url": "https://www.doordash.com/store/pizza-place-123/", "tags": ["Pizza"], "asapAvailable": true, "pickupAvailable": true, "dashPassEligible": true, "distance": "1.2 mi", "address": { "city": "San Francisco", "region": "CA" } }
]
}
}
Menu-Preise behalten DoorDashs eigene Display-Formatierung bei:
{ "storeId": "26282644", "name": "Eats", "sections": [{ "title": "Popular Items", "items": [{ "name": "ShackBurger", "price": "$8.99" }] }] }
Über Search hinaus erreicht derselbe Key /doordash/search/autocomplete (Type-ahead-Vorschläge), /doordash/search/filters (Cuisine-Kategorien und Filteroptionen für einen Standort), /doordash/search/items (Suche nach Gericht über nahegelegene Händler hinweg), /doordash/explore und /doordash/feed (standortbasiertes Browsen ohne Query — dieselbe Oberfläche, die die App zeigt, bevor du irgendetwas eingegeben hast), /doordash/store/{id}/info (Adress-/Telefon-Card) und /doordash/store/{id}/item/{item_id} (Detail zu einem einzelnen Menu-Item). Speichere eine Zeile pro Store oder Item und ziehe die Daten nach Zeitplan neu.
Was du sammeln kannst
Öffentliche Felder: Pickup-Search-Ergebnisse (store id, name, url, tags, distance, address, ASAP-/DashPass-/Pickup-Flags); Autocomplete-Vorschläge; Cuisine-Kategorien und Filter; itembasierte Suche über Händler hinweg; Store-Menus (sections, items, prices als Display-Strings); Detail zu einzelnen Items; Fulfillment-Methoden und Delivery-Fenster; Store-Kontaktdaten (address, phone, coordinates); und Store-Reviews (average rating, count, review text).
Grenzen und typische Herausforderungen
- Keine offizielle API für beliebige Restaurant-Daten. Drittanbieter-Zugriff auf Search, Menu und Reviews bedeutet, DoorDashs internes App-Backend zu scrapen, was eine strukturierte API hinter einem Key erledigt.
- Alles ist standortbezogen. Menus, Pricing und Verfügbarkeit ändern sich nach Delivery-/Pickup-Koordinate — übergib pro Request einen echten Standort statt eines einzelnen gecachten.
- Reviews sind personenbezogene Daten. Rezensentennamen und Review-Text sind nach DSGVO/CCPA personenbezogen — sammle öffentliche, faktische Felder mit einer Rechtsgrundlage.
- Preise und Menus ändern sich. Ziehe die Daten nach Zeitplan neu, statt für Preisrecherche einem einmaligen Snapshot zu vertrauen.
Wo das eingesetzt wird
- Restaurant- & Menu-Intelligence — verfolge Pricing und Sortiment über einen Delivery-Markt hinweg. Siehe den Use Case ecommerce product intelligence.
- Review- & Reputations-Monitoring — verfolge das Rating und Sentiment eines Restaurants über die Zeit. Siehe den Use Case review & reputation monitoring.
- Delivery-Marktforschung — Cuisine-Dichte, DashPass-Abdeckung und Pickup- vs. Delivery-Mix nach Gegend.
Sources
Loslegen mit dem Sammeln
Probier es zuerst kostenlos aus: schick eine beliebige öffentliche URL durch den Free Web Scraper, oder prüfe mit dem Anti-Bot Checker, ob eine Site Bots blockiert — ohne Anmeldung.
Teste den Search-Endpoint im Playground, prüfe das Schema in den API docs und sieh dir das pricing an. Siehe auch how to scrape Uber Eats für die andere Seite des Delivery-Markts, how to scrape Yelp für lokale Business-Ratings, mobile app APIs explained dafür, wie diese Daten tatsächlich fließen, und is web scraping legal.
Häufig gestellte Fragen
Hat DoorDash eine offizielle API?
Keine öffentliche Developer-API für Drittanbieter-Zugriff auf Search, Menu oder Reviews. Das Sammeln von DoorDashs Restaurant-Daten bedeutet also, dessen internes App-Backend zu scrapen — was eine strukturierte API hinter einem Key erledigt, indem sie denselben anonymen Android-Mobile-Guest-Flow aufruft, den die App nutzt.
Wie adressiere ich einen DoorDash-Store?
Stores werden über eine numerische Store-id adressiert, die von /doordash/search, /doordash/explore oder /doordash/feed zurückgegeben wird. Jeder Store- und Search-Endpoint braucht außerdem eine latitude/longitude, da Menus und Verfügbarkeit standortbezogen sind.
Kann ich nach einem bestimmten Gericht statt nach einem Restaurant suchen?
Ja. /doordash/search/items sucht nach Gerichten oder Menu-Items über nahegelegene Händler hinweg und liefert passende Items mit ihrer übergeordneten Store-id und Distanz — getrennt vom restaurant-basierten /doordash/search.
Welche DoorDash-Daten kann ich sammeln?
Öffentliche Felder: Pickup-Search-Ergebnisse und Autocomplete-Vorschläge; Cuisine-Kategorien und Filter; itembasierte Suche; Store-Menus mit display-formatierten Preisen; Detail zu einzelnen Menu-Items; Fulfillment-Methoden und Delivery-Fenster; Store-Kontaktdaten; und Store-Reviews (rating, count, text).
Sind DoorDash-Reviews personenbezogene Daten?
Ja. Rezensentennamen und Review-Text sind personenbezogene Daten nach DSGVO/CCPA — sammle nur öffentliche, faktische Felder mit einer Rechtsgrundlage und veröffentliche Rezensenten-Identitäten nicht erneut.
Wie oft kann ich aktualisieren?
Menus, Pricing und Verfügbarkeit ändern sich, ziehe die Daten also nach Zeitplan innerhalb deines Plans und der Responsible-Use-Limits neu, statt kontinuierlich zu pollen.