Use case
Find Restaurants by the Online-Ordering Platform They Use
Every restaurant in Walnut Creek, CA in one run, sorted by the ordering platform on its website: 32 on Toast, 30 on DoorDash, 133 with none we could see.
Say you sell restaurant ordering software, and your quarter is a switch campaign in Walnut Creek, California: restaurants already paying a commission to a delivery marketplace, and restaurants on a rival’s ordering system, are your best prospects. Your manager wants a list sorted by what each place uses today, with a phone number to call. Google Maps will tell you a restaurant exists; it will not tell you which platform its “Order online” button goes to. For that you open each restaurant’s website and look.
The manual way, and what it costs
Search Google Maps for “restaurant in Walnut Creek”, open each result, click through to its website, and note where the order button points. Then repeat for “cafe”, “bar”, “bakery” and “fast food”, because each search finds places the others miss. Our run counted 363 food and drink places in the city, 207 restaurant websites among them. At a minute or two per website that is a few working days for one city.
The manual way is fine for a short list: if you only need the ten restaurants on one street, open their sites. It stops being reasonable at a whole city, and Google’s limit of about 150 places per search means the busiest ZIP code is never fully listed by a single search anyway.
The faster way
Restaurant, Cafe & Bar Scraper: Email, Phone & Address searches the city ZIP code by ZIP code, reads each place’s own website, and returns the platforms the site uses or links to, in the same row as the phone and email.
{
"state": "CA",
"cities": ["Walnut Creek"],
"placeType": "restaurant",
"includeEmails": true,
"maxResults": 5000
}
“Walnut Creek” covers the city’s four ZIP codes. placeType “restaurant” is the default and means
every food and drink place; you filter to restaurants afterwards with the business_type column.
The email lookup has to stay on, because the same website visit that finds the email also finds the
ordering platform. maxResults is raised from 1,000 so the city is not cut short.
What comes back
Our run on 2026-10-30 returned 363 places: 210 restaurants, 75 cafes, 37 bakeries, 23 bars and 18 fast-food places (labelled by Google’s main category). A real row, trimmed to the columns this job uses:
{
"name": "Burma 2",
"business_type": "restaurant",
"phone": "(925) 261-8580",
"email": "buramtwo@gmail.com",
"website": "https://www.burma2.com/",
"online_ordering": ["Toast", "DoorDash", "Uber Eats", "Grubhub"],
"reservation_platform": null,
"address": "1616 N Main St, Walnut Creek, CA 94596",
"city": "Walnut Creek",
"county": "Contra Costa",
"zip_code": "94596",
"categories": ["Burmese restaurant", "Asian fusion restaurant", "Bar", "Caterer"],
"rating": 4.5,
"review_count": 684,
"place_id": "ChIJySD_2YphhYARvFAmhViCxmA"
}
For the 228 restaurants and fast-food places, 207 list a website, and this is what those websites showed:
| On the restaurant’s website | Restaurants |
|---|---|
| Any ordering, delivery or POS platform | 74 |
| Toast | 32 (31 with a phone, 17 with an email) |
| DoorDash | 30 (23 of them with no Toast) |
| More than one platform | 21 |
| No platform we recognise | 133 |
The rest of the 74 are spread over ezCater, Square, Olo, GloriaFood, SpotOn, ChowNow and a few others.
online_ordering is the column that closes the loop: it is the platform question answered for
every row at once. A restaurant with DoorDash and no Toast is paying a marketplace commission on its
own website’s orders, which is the opening line of a switch call; a restaurant on Toast already runs
a rival’s system.
What you’d do with it
Export the dataset to CSV and split it on online_ordering: one sheet for Toast, one for DoorDash
without Toast, one for no platform. Sort each by review_count, since the busiest kitchens move the
most orders, and start at the top. Keep place_id in your CRM so next quarter’s run shows which
restaurants changed platform and which are new.
Worth knowing
“No platform we recognise” is not “takes no orders online”. The actor reads the homepage and the
contact and about pages, and lists the ordering, delivery and POS platforms those pages link to or
load scripts from. An order button that only appears after a click, or a platform not on our list,
reads as none. Chain locations often show the chain’s own app. A blank online_ordering is a
question for the call, not an answer.
The run took about 7.5 minutes on our machine (2,837 searches, because the city’s busiest ZIP code had to be split into smaller map squares, plus the 324 website visits). It cost $1.09 for the 363 places plus $0.22 for the 109 emails found: $1.31, with Apify’s platform usage on top per your plan.
Run it yourself: How to run Restaurant, Cafe & Bar Scraper: Email, Phone & Address walks the whole thing step by step.
Selling to nail salons instead? The Nail Salon & Spa Scraper builds the same kind of list for nail shops. Already have the websites from somewhere else? The Business Email, Phone & Contact Details Scraper takes a list of URLs directly.
Last updated 2026-10-30