← Use cases

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 websiteRestaurants
Any ordering, delivery or POS platform74
Toast32 (31 with a phone, 17 with an email)
DoorDash30 (23 of them with no Toast)
More than one platform21
No platform we recognise133

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