TripAdvisor Restaurants · Emails, Phones & Socials avatar

TripAdvisor Restaurants · Emails, Phones & Socials

Pricing

from $3.50 / 1,000 restaurant with emails

Go to Apify Store
TripAdvisor Restaurants · Emails, Phones & Socials

TripAdvisor Restaurants · Emails, Phones & Socials

Paste a TripAdvisor restaurant page or a city listing. Get email, phone, official website, address, hours and ranking. Optionally add extra emails and/or Instagram / Facebook / TikTok from the restaurant site — two separate options. Public pages only. No login.

Pricing

from $3.50 / 1,000 restaurant with emails

Rating

0.0

(0)

Developer

Corentin Robert

Corentin Robert

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

TripAdvisor restaurant details

Turn a TripAdvisor restaurant URL or a city restaurants listing into CRM-ready rows: name, phone, email, official website, Instagram / Facebook / TikTok, address, hours, ranking, cuisine and price.

Paste one restaurant page, a city listing, or a mix. Each dataset row is one restaurant. Export CSV or JSON.

No login. No API key. No TripAdvisor account.

Free plan: 20 restaurants / run. Paid plans follow your PPE budget.


Also available

ActorUse when
TripAdvisor restaurant URL discoveryYou only need profile URLs, not emails/phones
This Actor — detailsRestaurant page or city listing → phone, email, website, Instagram / Facebook
Booking Pro HostHotel / apartment host contacts on Booking.com

Who is this for?

You are…Typical goalSuggested setup
Outbound / SDRPhone, email, website and Instagram for restaurant outreachCity listing URL · Max restaurants 25 · view Outreach — CRM
CRM / RevOpsStructured restaurant recordsBulk profile URLs · export CSV
F&B / POS / insurance salesRank, neighborhood, hours, closed flagFull JSON export
Market researchRatings, price band, cuisine mixView Restaurants · 20–50 URLs
Agency / local SEOCompetitor contacts in one cityPair with discovery on that city listing

What you get by default: name, TripAdvisor URL, location ID, phone, email when TripAdvisor or the restaurant website publishes it, extra mailboxes in emails[], official website, Instagram / Facebook / TikTok / etc. from the site, street / city / postal / country, neighborhoods, rating, review count, ranking, opening hours, closed flag, owner-verified, Travelers’ Choice when present, lat/lng.

Website: the mobile HTML often ships an empty Website button even when desktop shows the site. The Actor then calls the same public GraphQL used to hydrate that button (websiteUrlSource: graphql). A real href or JSON-LD link on the page still wins (page). If GraphQL is empty, a custom email domain is guessed (banquets@keens.comhttps://www.keens.com, source email-domain). Free mailboxes (Gmail, etc.) are not guessed. Two independent options then apply: extra emails from the site, and/or social profiles. Uncheck either — or both — if you only want TripAdvisor fields. emailSource is tripadvisor or website.

When a field is empty: it was not on the public page. Failed rows have error — they are not silent blanks.

Typical fill (NYC sample, 5 public profiles): 5/5 phone, 4/5 email, 5/5 name and address. Email and official website depend on what TripAdvisor publishes for that restaurant.


Quick start

  1. Paste a Restaurant_Review URL or a city Restaurants-g… listing (or a mix)
  2. Keep Max restaurants at 25 for a preview (raise it for a full city)
  3. Click Start
  4. Open dataset view Outreach — CRM for email, phone, Instagram, website, address and hours

Ready-made examples

Sixteen city/workflow presets are saved as Console tasks (New York, Paris, London, Barcelona, Rome, Los Angeles, Miami, Chicago, Berlin, Amsterdam, Lisbon, Dubai, Tokyo, Singapore, Sydney). They go live on the Store Examples tab after each task is published.

Until then, paste any Restaurant_Review URL or a city listing — the Keens Steakhouse prefill is a one-row smoke test.


What does it extract?

CategoryFields
Identityname, url, locationId, imageUrl
Contactemail, emails, emailSource, telephone, websiteUrl, websiteUrlSource, instagramUrl, facebookUrl, tiktokUrl, twitterUrl, youtubeUrl, linkedinUrl, pinterestUrl, socialUrls
Locationaddress, street, city, region, postalCode, countryCode, neighborhoods, latitude, longitude
Reputationrating, reviews, ranking, rankingPosition, rankingOutOf, travelersChoiceYear, travelersChoiceAward, hasVerifiedOwner
OpspriceRange, foodCategories, openingHours, isClosed, description, reviewsUrl

Dataset views: Restaurants (overview) and Outreach — CRM (email, phone, Instagram / Facebook / TikTok, website, address, hours).


How much does it cost to scrape TripAdvisor restaurants?

HTTP-only (no browser). You pay pay-per-event: a restaurant row (cheaper without email, higher with email) plus a socials add-on only if Collect Instagram / Facebook / TikTok is on and a profile is found. Actor-start is a few hundredths of a cent.

List price vs the Store: generic Tripadvisor listing scrapers are about $2.90–$5 / 1k (Apify official) plus $5+ / 1k for lead add-ons. Restaurant-lead Actors sit around $4 / 1k (flat) to $9.90 / 1k. This Actor is $3 / 1k without email, $5 / 1k with email, and +$2 / 1k when social profiles are found (FREE plan).

EventFREEBronzeGold
Restaurant without email$3 / 1k$2.70$2.10
Restaurant with email$5 / 1k$4.50$3.50
Social profiles (add-on)$2 / 1k$1.80$1.40
ScenarioFREE
25 profiles, ~80% email, ~80% socials~$0.16
1,000 profiles without email, no socials$3.00
1,000 profiles with email, no socials$5.00
1,000 profiles with email + socials$7.00
1,000 mixed (~80% email, ~70% socials)~$6.00

Residential proxy is not required by default. Platform compute on 1024 MB is extra and typically small next to PPE.


This Actor only reads public restaurant profile pages (the same HTML a visitor can open without an account) and, when enabled, public pages on the restaurant’s own website. It does not log in or open host dashboards.

Phones, emails, addresses and social profile URLs can be personal data. Use them under GDPR, CAN-SPAM and local marketing rules. See Apify's guide to web scraping legality.


Input

Console: paste TripAdvisor URL(s) (restaurant and/or city listing) and click Start.

{
"startUrls": [
"https://www.tripadvisor.com/Restaurants-g60763-New_York_City_New_York.html"
],
"maxItems": 25
}
ParameterConsoleDefaultDescription
startUrlsYesRestaurant Restaurant_Review URLs and/or city Restaurants-g… listings
maxItemsYes25Max restaurants to enrich. City listings paginate (~30/page) until this cap
crawlWebsiteYestrueExtra public emails from the restaurant website
collectSocialsYestrueInstagram / Facebook / TikTok from the website (+$2 / 1k if found)
maxConcurrencyHidden2Profiles in parallel
delayMsBetweenBatchesHidden600Pause between batches (ms)
maxRetriesHidden3Extra attempts per profile
resumeHiddenfalseSkip URLs already in the dataset
maxPagesPerWebsiteHidden6Same-domain pages crawled per site
proxyConfigurationHiddenno proxyOptional backup
verboseLogsHiddenfalseExtra diagnostics
navigationTimeoutSecsHidden60Wait per TripAdvisor page

Output example

{
"url": "https://www.tripadvisor.com/Restaurant_Review-g60763-d425330-Reviews-Keens_Steakhouse-New_York_City_New_York.html",
"name": "Keens Steakhouse",
"email": "banquets@keens.com",
"emails": ["banquets@keens.com", "info@keens.com"],
"emailSource": "tripadvisor",
"telephone": "+1 212-947-3636",
"websiteUrl": "https://www.keens.com/",
"websiteUrlSource": "graphql",
"instagramUrl": "https://www.instagram.com/keenssteakhouse/",
"facebookUrl": "https://www.facebook.com/keenssteakhouse",
"socialUrls": [
"https://www.instagram.com/keenssteakhouse/",
"https://www.facebook.com/keenssteakhouse"
],
"priceRange": "$$$$",
"foodCategories": "American, Steakhouse",
"reviews": "7030",
"rating": 4.5,
"address": "72 West 36th Street, New York City, New York, 10018, US",
"street": "72 West 36th Street",
"city": "New York City",
"region": "New York",
"postalCode": "10018",
"countryCode": "US",
"neighborhoods": "Midtown, Midtown West, Koreatown, Tenderloin",
"ranking": "#131 of 9,100 restaurants",
"openingHours": "Sunday 17:00-21:30; Monday 11:45-22:30; Tuesday 11:45-22:30; Wednesday 11:45-22:30; Thursday 11:45-22:30; Friday 11:45-22:30; Saturday 17:00-22:30",
"isClosed": false,
"hasVerifiedOwner": true
}

How it works

  1. You paste a restaurant page, a city listing, or both
  2. City listings are expanded into restaurant profile URLs (up to Max restaurants)
  3. The Actor reads each public TripAdvisor profile (and the desktop website GraphQL when the HTML button is empty)
  4. If a website is known and you left emails and/or socials checked, it opens that site for those fields
  5. Rows appear in the dataset as they complete — export CSV/JSON anytime

No TripAdvisor account. Empty fields mean they were not published.


Local development

npm ci
node --test tests/*.test.js
apify run --input-file=./published-tasks/inputs/01-keens-profile.json

Requires Apify CLI. Default INPUT.json in storage/ must include startUrls if you use apify run without --input-file.


FAQ

Do I need a proxy? Not for typical restaurant pages. Pass proxyConfiguration in JSON only if a run returns empty profiles.

Why was website missing before? The iPhone HTML leaves the Website button with an empty href. Desktop fills it after GraphQL hydration. The Actor now replays that public call (websiteUrlSource: graphql). email-domain remains a last-resort guess.

Where do extra emails and socials come from? Two Console checkboxes, independent. Extra emails: crawl contact pages (crawlWebsite). Socials: Instagram / Facebook / TikTok / etc. (collectSocials), billed $2 / 1k only when a profile is found. Uncheck socials if you only want inboxes. Uncheck emails if you only want socials (TripAdvisor email is still kept when present).

Can I paste a city URL? Yes. Use the city restaurants listing (Restaurants-g…). A city tourism page (Tourism-g…) is converted to that listing. Hotels pages are ignored.

Can I mix hotels? No. Only restaurant profiles and restaurant city listings.


Support

Issues tab, or corentin@outreacher.fr for a custom scraper or integration.