Grubhub Email Scraper avatar

Grubhub Email Scraper

Pricing

from $2.49 / 1,000 results

Go to Apify Store
Grubhub Email Scraper

Grubhub Email Scraper

Grubhub Email Scraper SD - Grubhub Email Scraper is a lead generation tool that extracts leads with public contact emails, account names and profile URLs from Grubhub results by keyword, location and email domain - Grubhub email extractor.

Pricing

from $2.49 / 1,000 results

Rating

0.0

(0)

Developer

Leads Scraper

Leads Scraper

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Grubhub Email Scraper

Grubhub Email Scraper collects publicly indexed restaurant contact emails from Grubhub listings using Google search, then pushes each lead straight to your Apify dataset.

It is built for teams doing restaurant lead generation: POS and online-ordering vendors, food distributors, packaging suppliers, hospitality recruiters and local marketing agencies.

Every row is a business contact attached to a restaurant that publishes an address so diners can arrange catering, large orders and reservations. Grubhub Email Scraper is a B2B prospecting tool, not a personal-data harvester.

In our own test run against a sample of about 10 parsed results, Grubhub Email Scraper was the strongest of the nine food-delivery Actors in this batch: 8 of 10 rows carried an account identity, 8 of 10 carried a profile URL, and the run produced 10 unique emails.

That is an observation from one measured run, not a guarantee. Results vary with your keywords, domains and location.

If you only have budget to test one delivery-marketplace source, Grubhub Email Scraper is the one we would start with.

Who Grubhub Email Scraper is for

Restaurant-tech vendors use Grubhub Email Scraper to build POS sales leads: every merchant on the platform already sells online, so the digital-intent filter is done for you.

Food distributors and wholesale suppliers use it for cuisine-segmented restaurant lead generation, one metro at a time.

Packaging, disposables and equipment suppliers use Grubhub Email Scraper to reach high-volume takeout kitchens, where containers and bags are a recurring line item.

Hospitality recruiters and local marketing agencies use it to assemble local restaurant leads that are territory-shaped rather than national.

If your current restaurant prospecting runs on a bought list, this is the cheaper and fresher alternative: you control the keywords, the city and the email domains.

What Grubhub Email Scraper collects and why Grubhub works well

Grubhub publishes every merchant under a /restaurant/{slug} path, and Google indexes those pages heavily.

Because that slug is a stable, URL-safe handle, Grubhub Email Scraper can usually recover a username and build a canonical profileUrl - which is exactly why handle coverage here is higher than on marketplaces that bury merchants behind city landing pages.

Grubhub is also US-centric, so countryCode: "US" is the sensible default for almost every run.

Its catering surface is unusually strong. The catering query modifier ships in the defaults because Grubhub restaurants openly advertise large-order and catering contacts, and those pages are where the best emails sit.

Grubhub Email Scraper never logs in, never calls a Grubhub API and never opens grubhub.com. It reads Google's public result blocks - titles, snippets and site labels - through the Apify GOOGLE_SERP proxy.

There is no browser, no JavaScript rendering, no authentication and no cookies. It is a Google SERP parsing tool pointed at one domain.

Key features of Grubhub Email Scraper

Everything below is behaviour Grubhub Email Scraper actually implements. Nothing here is aspirational.

FeatureWhat it does
site: operator targetingEvery query is scoped to grubhub.com, so results stay on-platform
Query expansionBase, quoted and intitle: phrasings plus one variant per query modifier; base queries run first
Catering-tuned modifiersShips with email, contact, catering, reservations, owner
Domain filteringOnly emails on your customDomains list are kept
Global email deduplicationOne email appears once across every query and every page
Obfuscated email decodingUnderstands name [at] domain [dot] com, name (at) domain, name @ domain.com, domain .com, zero-width characters and the @ full-width at sign
Junk filterRejects placeholders such as email@, yourname@, test@, xxx@ and single-character locals
Boundary-correct matching@gmail.com does not match inside @gmail.company or @gmail.com.br
Soft-wrap repairDrops a hit that is only the tail of another email in the same block
Concurrency controlAn asyncio worker pool with a shared stop signal on maxEmails
Retries with exponential backoffUp to 3 attempts per page, with a fresh proxy session per request
CAPTCHA detectionConsent pages and "unusual traffic" interstitials are detected and retried, not counted as empty
Failed-query requeueBlocked or failed queries are retried once at the end of the run
Resumable runsState is kept in the key-value store, keyed by an input hash, and saved on PERSIST_STATE, MIGRATING and ABORTING
Layout-change fallbackA whole-page parser degrades to "emails without account details" instead of "no emails"
Dataset exportEvery lead lands in the Apify dataset for CSV, JSON or Excel export
Run summaryLogs pages fetched, blocked pages, retries and emails per page

How Grubhub Email Scraper works

Six steps, and nothing hidden behind them.

  1. Read input. Grubhub Email Scraper takes your keywords, location, email domains and limits.
  2. Build site: queries. Each keyword is combined with your domains and modifiers into Google queries scoped to grubhub.com.
  3. Fetch SERP pages. Pages are pulled asynchronously through the Apify GOOGLE_SERP proxy, with proxy rotation on every request.
  4. Parse each result block structurally. The parser locates the <h3> title, then walks up to the smallest surrounding block - it does not depend on Google's CSS class names.
  5. Extract emails. A domain-filtered regex runs over the block text, with snippet extraction feeding description, accountName and the Grubhub slug.
  6. Deduplicate and push. Emails are deduplicated globally and each lead is written to the dataset immediately, so you can watch a run fill up live.

Because parsing is structural rather than class-name based, a Google layout change degrades gracefully instead of breaking Grubhub Email Scraper outright.

Query expansion is the single most important setting. Google caps one query at roughly 300 results, so Grubhub Email Scraper works around that ceiling by asking many narrower questions instead of one broad one.

Blocked pages are handled rather than swallowed: CAPTCHA detection flags consent and "unusual traffic" pages, exponential backoff retries them, and anything still failing is re-queued once at the end of the run.

Input for Grubhub Email Scraper

These are the nine input fields, verbatim from the Actor's schema.

FieldTypeDefaultMeaning
keywordsarray (required)["restaurant","delivery"]Search terms (niche, job title, industry)
locationstring""Optional location phrase added to every query
customDomainsarray["@gmail.com","@yahoo.com"]Only emails on these domains are kept; @ optional
maxEmailsinteger 1-1000020Stop after this many unique emails
countryCodestring""Two-letter country for the search proxy (US, GB, DE...)
expandQueriesbooleantrueSearch each keyword x domain in several phrasings
queryModifiersarray["email","contact","catering","reservations","owner"]Extra words combined with each keyword when expansion is on
maxPagesPerQueryinteger 1-5030Page cap per query
maxConcurrencyinteger 1-205Parallel queries

A realistic catering-focused input for Grubhub Email Scraper:

{
"keywords": ["restaurant", "catering", "pizzeria"],
"location": "Chicago",
"customDomains": ["@gmail.com", "@yahoo.com"],
"maxEmails": 300,
"countryCode": "US",
"expandQueries": true,
"queryModifiers": ["email", "contact", "catering", "reservations", "owner"],
"maxPagesPerQuery": 30,
"maxConcurrency": 5
}

Getting location right

location is a plain string appended to every query, and it matters more here than anywhere else, because restaurant prospecting is inherently local.

Run one city per run. "Chicago", then "Manchester", each in its own run with its own dataset. A rep gets a territory-shaped list instead of a national blob.

Use the neighbourhood or borough in dense metros. "Brooklyn" and "Shoreditch" behave far better than a whole-city term where the market is huge.

Pair location with countryCode. For Grubhub that means "US", so the search proxy resolves the right Google locale.

Widen only when you must. If a city returns too little, step up to a state or region rather than dropping location entirely.

Remember it is matched as text. location matches words printed on the indexed page, so a city Grubhub does not print will simply narrow results to nothing.

Output of Grubhub Email Scraper

Every dataset item from Grubhub Email Scraper has all fourteen fields.

FieldMeaning
networkPlatform name
keywordThe keyword that produced the lead
queryThe exact Google query used
titleRaw result title
accountNameAccount label Google prints (handle, display name, or e.g. a subreddit)
fullNameDisplay name parsed from a profile-style title; empty for post captions
usernameURL-safe handle when the platform exposes one; otherwise null
profileUrlCanonical account URL when a handle is known; otherwise empty
urlDirect platform link when exposed, else the profile URL
descriptionBio/caption snippet, cleaned of labels and engagement counters
emailLower-cased email address
emailDomainThe matched domain (e.g. @gmail.com)
possiblyTruncatedtrue when Google's snippet ellipsis touched the email - verify before sending
foundAtISO 8601 UTC timestamp

Sample rows. The third shows what a row looks like when Google prints a display name but no usable slug.

[
{
"network": "Grubhub",
"keyword": "catering",
"query": "site:grubhub.com catering \"@gmail.com\" \"Chicago\"",
"title": "Mario's Trattoria - Chicago | Order Online | Grubhub",
"accountName": "Mario's Trattoria",
"fullName": "Mario's Trattoria",
"username": "marios-trattoria-chicago",
"profileUrl": "https://www.grubhub.com/restaurant/marios-trattoria-chicago",
"url": "https://www.grubhub.com/restaurant/marios-trattoria-chicago",
"description": "Family-run Italian kitchen. Catering and large orders: mario.catering@gmail.com",
"email": "mario.catering@gmail.com",
"emailDomain": "@gmail.com",
"possiblyTruncated": false,
"foundAt": "2026-05-14T09:22:41Z"
},
{
"network": "Grubhub",
"keyword": "restaurant",
"query": "site:grubhub.com restaurant owner \"@yahoo.com\" \"Chicago\"",
"title": "Northside Taqueria | Chicago | Grubhub",
"accountName": "Northside Taqueria",
"fullName": "Northside Taqueria",
"username": "northside-taqueria",
"profileUrl": "https://www.grubhub.com/restaurant/northside-taqueria",
"url": "https://www.grubhub.com/restaurant/northside-taqueria",
"description": "Tacos, burritos, party trays. Owner contact: northside.orders@yahoo.com",
"email": "northside.orders@yahoo.com",
"emailDomain": "@yahoo.com",
"possiblyTruncated": false,
"foundAt": "2026-05-14T09:23:07Z"
},
{
"network": "Grubhub",
"keyword": "delivery",
"query": "site:grubhub.com delivery contact \"@gmail.com\" \"Chicago\"",
"title": "Best delivery near Lincoln Park - Grubhub",
"accountName": "Golden Wok Express",
"fullName": "Golden Wok Express",
"username": null,
"profileUrl": "",
"url": "https://www.grubhub.com/",
"description": "Lunch specials and office catering - goldenwok.events@gmail.com",
"email": "goldenwok.events@gmail.com",
"emailDomain": "@gmail.com",
"possiblyTruncated": true,
"foundAt": "2026-05-14T09:24:12Z"
}
]

Export the dataset from Grubhub Email Scraper as CSV, JSON or Excel, or pull it through the Apify API straight into a CRM import.

For lead enrichment, description is often the most useful field after email: it carries the cleaned snippet, which frequently names the cuisine, the neighbourhood or the catering offer.

That snippet extraction is what turns a raw restaurant email list into something a rep can personalise, and it is why Grubhub Email Scraper keeps the text rather than discarding it.

Use cases for Grubhub Email Scraper

Grubhub Email Scraper suits any team whose ICP targeting is "independent restaurants that already sell online in a given city".

BuyerHow they use Grubhub Email Scraper
POS and online-ordering vendorsBuild a restaurant contact database per metro, then work POS sales leads city by city
Delivery and integration platformsTarget merchants already selling online - food delivery leads with proven digital intent
Food distributors and wholesalersSegment by cuisine keyword (pizzeria, taqueria, sushi) for territory-matched restaurant lead generation
Packaging and disposables suppliersReach high-volume takeout kitchens where containers and bags are a recurring spend
Equipment suppliersFind independent kitchens for a restaurant owner email list that is not just chains
Hospitality recruitersSource chef, GM and front-of-house openings by pairing location with cuisine keywords
Local marketing and SEO agenciesAssemble local restaurant leads for B2B restaurant outreach in a single postcode or borough
Catering platforms and event caterersUse the catering modifier to surface catering leads and large-order contacts directly

Example runs for Grubhub Email Scraper

Five recipes that cover most of what people actually do with Grubhub Email Scraper.

Catering leads in one borough. Keywords ["catering", "party trays"], location: "Brooklyn", countryCode: "US", maxEmails: 200.

This is the recipe Grubhub Email Scraper is best at, because catering pages print the large-order contact in plain text.

Cuisine segmentation for a distributor. Keywords ["pizzeria", "italian restaurant"], location: "Chicago", modifiers left at their defaults.

Cuisine segmentation gives a sales team a story to open with, which beats a generic restaurant email list every time.

Wide-domain sweep. Set customDomains to ["@gmail.com", "@yahoo.com", "@outlook.com", "@hotmail.com"] to catch owner-operators who never set up a branded inbox.

Independent restaurants very often run on a free mailbox, so widening domains is the single cheapest way to grow a restaurant contact database.

It is also the fastest way to turn thin food delivery leads into a workable list without touching keywords at all.

High-throughput territory build. maxEmails: 2000, maxConcurrency: 8, maxPagesPerQuery: 30, one run per city.

Keep concurrency moderate; pushing it does not defeat Google's ~300-results-per-query ceiling, query expansion does.

Small verification run. maxEmails: 20 with the defaults, to see what Grubhub Email Scraper returns for your niche before committing budget.

City-level prospecting is the pattern that ties all five together: one city per run, one dataset per city, one rep per dataset.

Run this way and a restaurant owner email list stays clean, attributable and easy to refresh, which matters more for B2B restaurant outreach than raw volume does.

Responsible use

Grubhub Email Scraper collects business addresses published so diners can arrange catering, large orders and reservations. Treat them that way.

Identify yourself and your company in the first line, and say plainly why you are contacting that business address.

Give a working unsubscribe link, honour opt-outs immediately and keep them suppressed. That is a CAN-SPAM baseline, not a nicety.

Under GDPR, keep a record of your lawful basis - usually legitimate interest for B2B contact - and be ready to explain it. Do not send to consumers.

This is not legal advice. Check your own obligations in every market you email into, and adjust your process accordingly.

Limitations of Grubhub Email Scraper

Read these before you plan a campaign around the output.

  1. Public index only. Grubhub Email Scraper only finds emails that are publicly visible in Google's index. An email that appears only inside a logged-in Grubhub page will not be found.
  2. The ~300-result ceiling. Google caps a single query at roughly 300 results. That is precisely why query expansion exists and why it is on by default.
  3. possiblyTruncated: true. Google's snippet ellipsis may have cut the address short. Verify those rows before sending.
  4. Apify GOOGLE_SERP proxy required. Grubhub Email Scraper cannot run without Apify proxy credentials.
  5. Free-plan cap. Free Apify plans are capped at 100 emails per run. Paid plans are uncapped.
  6. Handles are not always available. username and profileUrl are only populated when the platform exposes a handle in the Google result; otherwise you get accountName and fullName with an empty handle. This is a Google limitation, not a bug.
  7. No volume guarantee. Results vary with keywords, domains and location. Our measured sample is an observation, not a promise.

Grubhub Email Scraper FAQ

How many results should I expect?

In our own test run on a sample of about 10 parsed results, Grubhub Email Scraper returned 8 rows with an account identity, 8 with a profile URL and 10 unique emails. That was the strongest showing in this batch of nine, but it is one measured sample, not a guarantee.

Which delivery-marketplace Actor should I run first?

Grubhub, on this evidence. The Seamless Email Scraper shares Grubhub's merchant catalogue and scored the same in our test, so it adds few distinct pages - while Uber Eats Email Scraper and DoorDash Email Scraper cover different merchants and are worth running alongside for coverage rather than instead.

Why is handle coverage so good on Grubhub?

Grubhub exposes each merchant at /restaurant/{slug}, and Google indexes those URLs. A stable slug is a usable handle, so username and profileUrl fill in far more often than on platforms that surface city or cuisine landing pages.

Does it log into Grubhub or use the Grubhub API?

No. Grubhub Email Scraper does not log in, does not use any Grubhub API and does not open grubhub.com. It parses public Google results through the Apify GOOGLE_SERP proxy.

Is it affiliated with Grubhub?

No. This is an independent tool with no affiliation to or endorsement from Grubhub.

What country should I set?

Grubhub is US-centric, so countryCode: "US" is the sensible default. Pair it with a US city in location.

Can I get more catering contacts specifically?

Yes - keep catering in queryModifiers and add catering-flavoured keywords such as party trays or office catering. Catering pages are where large-order contacts are printed.

Why only @gmail.com and @yahoo.com by default?

Independent restaurant owners overwhelmingly use free mailboxes. Add @outlook.com, @hotmail.com or a branded domain to customDomains if you want broader restaurant contact database coverage.

What if a run returns very little?

Widen location from a neighbourhood to a city or state, add cuisine keywords, add more domains, and leave expandQueries on. Those four levers cover most thin runs.

Can I resume an interrupted run?

Yes. Grubhub Email Scraper keeps resumable state in the key-value store, keyed by a hash of the input, and persists it on Apify's PERSIST_STATE, MIGRATING and ABORTING events.

How do I get the data into my CRM?

Export the dataset as CSV, JSON or Excel, or read it through the Apify API. Most teams map email, accountName, profileUrl and description for lead enrichment and ICP targeting before a cold email outreach sequence.

Does it handle obfuscated addresses?

Yes. Grubhub Email Scraper applies obfuscated email decoding covering [at], (at), spaced @, spaced .com, zero-width characters and the full-width @ sign.

Will I get the same email twice?

No. Email deduplication is global across every query and every page in a run, so each address is written to the dataset once.

Does raising maxConcurrency get me more leads?

Not by itself. Concurrency control changes how fast Grubhub Email Scraper works through the queue; query expansion and broader domains are what change total yield.

ActorWhat it collects
Grubhub Email and Phone Number ScraperEmails and phone numbers from Grubhub
Grubhub Phone Number ScraperPublic phone numbers from Grubhub
Airbnb Email ScraperPublic contact emails from Airbnb
Booking.com Email ScraperPublic contact emails from Booking.com
Caviar Email ScraperPublic contact emails from Caviar
ChowNow Email ScraperPublic contact emails from ChowNow
Contiki Email ScraperPublic contact emails from Contiki
Craigslist Email ScraperPublic contact emails from Craigslist
Delivery.com Email ScraperPublic contact emails from Delivery.com
DoorDash Email ScraperPublic contact emails from DoorDash
EatStreet Email ScraperPublic contact emails from EatStreet
G Adventures Email ScraperPublic contact emails from G Adventures
GetYourGuide Email ScraperPublic contact emails from GetYourGuide
Hostelbookers Email ScraperPublic contact emails from Hostelworld
HotelsCombined Email ScraperPublic contact emails from HotelsCombined
Intrepid Travel Email ScraperPublic contact emails from Intrepid Travel
Just Eat Email ScraperPublic contact emails from Just Eat
Klook Email ScraperPublic contact emails from Klook
OpenTable Email ScraperPublic contact emails from OpenTable
Resy Email ScraperPublic contact emails from Resy
TheFork Email ScraperPublic contact emails from TheFork
Toast Restaurant Email ScraperPublic contact emails from Toast
TourRadar Email ScraperPublic contact emails from TourRadar
Traveloka Email ScraperPublic contact emails from Traveloka
Tripadvisor Attractions Email ScraperPublic contact emails from Tripadvisor
Tripadvisor Hotels Email ScraperPublic contact emails from Tripadvisor
Tripadvisor Restaurants Email ScraperPublic contact emails from Tripadvisor
Uber Eats Email ScraperPublic contact emails from Uber Eats
Viator Email ScraperPublic contact emails from Viator
Wanderlog Email ScraperPublic contact emails from Wanderlog
Wego Email ScraperPublic contact emails from Wego
Zomato Email ScraperPublic contact emails from Zomato
Airbnb Email and Phone Number ScraperEmails and phone numbers from Airbnb
Booking.com Email and Phone Number ScraperEmails and phone numbers from Booking.com
Caviar Email and Phone Number ScraperEmails and phone numbers from Caviar
ChowNow Email and Phone Number ScraperEmails and phone numbers from ChowNow
Contiki Email and Phone Number ScraperEmails and phone numbers from Contiki
Craigslist Email and Phone Number ScraperEmails and phone numbers from Craigslist
Delivery.com Email and Phone Number ScraperEmails and phone numbers from Delivery.com
DoorDash Email and Phone Number ScraperEmails and phone numbers from DoorDash
EatStreet Email and Phone Number ScraperEmails and phone numbers from EatStreet
G Adventures Email and Phone Number ScraperEmails and phone numbers from G Adventures

Leave a review

If the Grubhub Email Scraper saved you time, please leave a star rating and a short review on the Actor page.

Reviews are how other buyers judge whether a tool works, and they tell us which features to build next.

If something did not work, email neurodata.apify@gmail.com instead - bugs get fixed faster than they get complained about.