Tripadvisor Real-Time Data Scraper avatar

Tripadvisor Real-Time Data Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Tripadvisor Real-Time Data Scraper

Tripadvisor Real-Time Data Scraper

Get fresh Tripadvisor business data: restaurants, hotels & attractions with names, phones, addresses, ratings, review counts, cuisine, websites and contact emails. Filter leads, collect multiple markets at once, and deliver results to your tools instantly via webhook. Free plan: 2-result sample.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Emmanuel

Emmanuel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Tripadvisor Real-Time Data

Turn Tripadvisor into a clean, structured lead and market-intelligence feed. Collect restaurants, hotels and attractions across multiple markets in a single run — with phone numbers, addresses, coordinates, ratings, review counts, cuisines, descriptions, contact emails and websites — all delivered as clean JSON to your Apify dataset as the run progresses.

Built for lead-generation agencies, hospitality and travel teams, market researchers, and AI/LLM workflows that need reliable Tripadvisor data without maintaining a brittle scraper.

Free plan / paid plan: this Actor is intended for paid Apify plans. Runs on a free Apify account are restricted to a small sample of 2 results and log a clear message inviting you to upgrade. Upgrade to a paid plan for full, unlimited data. See Free plan & paid plans.


Why this Actor

Tripadvisor Real-Time DataTypical DIY scraper
SetupOrganized input UI, run immediatelyFragile scripts to maintain
Memory512 MB default — results written as they arrive2–4 GB+, everything held until the end
SpeedFast structured outputOften slow and unreliable
OutputConsistent, LLM-ready JSONInconsistent formats
ScaleLarge runs, many markets per runUsually one query at a time
Lead dataPhones, emails, websites, ratingsRarely normalized
DeliveryDataset + optional real-time webhookManual export
ReliabilityRuns reliably out of the boxNeeds constant babysitting

What you get

Every record is tagged with featureType (listing, place, or review) and scrapedAt, so you can filter, join and pipeline the data anywhere.

Business records — featureType: "listing" or "place"

FieldDescription
nameBusiness name
categoryrestaurant, hotel or attraction
urlTripadvisor listing link for the business
telephonePhone number when published
email, emails[]Contact email(s) when the business publishes one
website, websites[]External website(s)
address, city, region, postalCode, countryFull location breakdown
latitude, longitudeCoordinates for mapping and geo filters
rating, reviewCountReputation signals
priceRangePrice tier when shown
cuisine[]Cuisine tags (restaurants)
descriptionBusiness summary
geoId, placeIdTripadvisor identifiers
marketLabelThe market row that produced this record
sourceUrlThe business's Tripadvisor link
scrapedAtRecord timestamp

Review records — featureType: "review"

FieldDescription
businessName, businessUrlThe reviewed business
author, authorLocation, authorContributionsReviewer identity
ratingStar rating (1–5)
title, textReview headline and body
dateReview date
tripTypeTrip type when shown
helpfulVotesHelpful votes
scrapedAtRecord timestamp

New records are written to the dataset as they arrive — long runs stay light in memory and you can start consuming results before the run finishes.


Features

🏪 Listing Discovery — on by default

Discover restaurants, hotels or attractions for any number of markets in one run. Each market row is a category + location. Location accepts:

  • a common city name (e.g. New York, London, Paris, Las Vegas),
  • a numeric Tripadvisor geo ID (e.g. 60763) for any market worldwide, or
  • a full Tripadvisor market link.

🎯 Lead details

The Lead details switch collects the full profile for every business found — address details, coordinates, rating, description and contact details (phone, website, email where the business publishes one). Every business is always included in the results; a field simply stays empty when a business does not have that detail, so your dataset is always complete and predictable. Turn it off for a faster, lighter run with business names and links only.

📍 Place Details

Already have a list of Tripadvisor business links? Paste them in and each one is returned as a complete structured profile.

⭐ Reviews

Collect reviews for specific business links — author, rating, date, trip type, text and helpful votes. Each review is its own dataset row linked to the business, ideal for sentiment analysis and competitor monitoring.

🔔 Real-time webhooks

Every record is always saved to the dataset. Optionally add a webhook URL and each new record is also POSTed in real time to your CRM, Slack, Zapier, Make, n8n or Google Sheets. Choose json (full record) or slack (ready-to-post Slack message).

🌐 Connection

Runs use the built-in Apify residential proxy (US) by default, configurable in the Connection section if you need a different country or your own proxy URLs.


Use cases

  • Restaurant lead generation — every restaurant in a city with phone, email, website, rating and cuisine.
  • Hospitality prospecting — hotels by market for suppliers, SaaS and service providers.
  • Attraction & tourism research — map attractions, their ratings and review volume per destination.
  • Multi-market expansion — one run across dozens of city + category combinations.
  • Competitor intelligence — compare ratings, review counts and price ranges across a category.
  • Review mining & sentiment — pull review text for LLM sentiment scoring, pain-point extraction and positioning.
  • Reputation monitoring — track review volume and rating for your own or competitors' locations.
  • Local market mapping — join coordinates to geographic/territory analysis.
  • Email outreach lists — filter to businesses with a discovered email, then push straight to your CRM.
  • Data enrichment — start from a link list and backfill structured business profiles.
  • AI & LLM pipelines — JSON records for RAG, scoring, outreach drafts and territory summaries.
  • Warehouse & BI feeds — scheduled runs feeding dashboards and data warehouses.

Scenario: restaurant lead list for a sales team

  1. Enable Listing Discovery with markets restaurants / Austin, restaurants / Dallas.
  2. Keep Lead details on, then filter by telephone/email in your CRM or spreadsheet after the run.
  3. Run. Stream the dataset into your CRM, or set a webhook for real-time delivery.

Scenario: hotel competitor benchmark

  1. Enable Listing Discovery with markets hotels / Las Vegas, hotels / Miami.
  2. Compare rating, reviewCount and priceRange across the markets.

Scenario: review sentiment for a destination

  1. Enable Reviews and paste business links.
  2. Set maxReviewsPerPlace to 100 and feed the review text into your LLM.

Output reference

Each dataset row is one record. Filter by featureType:

featureTypeDescription
listingBusiness found through Listing Discovery
placeBusiness enriched from a specific link (Place Details)
reviewA single review linked to a business

Traceability: marketLabel records which market row produced the business; sourceUrl is the business's Tripadvisor link.

Export formats: JSON, CSV, Excel, XML, RSS or via the Apify API.


Input reference

Enable only what you need — all features are independent.

InputTypeDefaultDescription
🏪 Listing Discovery
enableListingDiscoverybooleantrueDiscover businesses by category + market
listingTasksobject[]2 example rows{ category, location, maxItems? } per market
maxPagesPerTaskinteger20How deep to go per market (safety ceiling)
enrichListingsbooleantrueLead details — collect the full profile for every business, contact details included when published
📍 Place Details
enablePlaceDetailsbooleanfalseEnrich specific business links
placeUrlsstring[]—Tripadvisor business links
⭐ Reviews
enableReviewsbooleanfalseCollect reviews for specific links
reviewUrlsstring[]—Tripadvisor business links
maxReviewsPerPlaceinteger30Max reviews per business
⚙️ Output & limits
maxItemsinteger1000Global cap on dataset rows across all features
webhookUrlstring—Optional real-time POST URL (dataset is always written)
webhookFormatenumjsonjson (full record) or slack (Slack message)
🌐 Connection
proxyConfigurationobjectresidential USApify proxy settings

Full schema: see .actor/input_schema.json or the Input tab on Apify Console.


Webhook delivery (optional)

Every record is always saved to the Apify dataset first. If you set webhookUrl, each new record is also POSTed in real time to your endpoint — ideal for CRMs, Slack, Zapier, Make or custom pipelines.

SettingDescription
webhookUrlYour endpoint (http/https). Leave empty to use the dataset only.
webhookFormatjson — full business or review object. slack — compact Slack incoming-webhook message.

Webhook delivery is best-effort: a failed webhook never stops the run or prevents dataset writes.

Example — discovery with Slack alerts

{
"enableListingDiscovery": true,
"listingTasks": [{ "category": "restaurant", "location": "Austin", "maxItems": 50 }],
"webhookUrl": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL",
"webhookFormat": "slack"
}

Example — lead export with JSON webhook

{
"enableListingDiscovery": true,
"listingTasks": [{ "category": "restaurant", "location": "Chicago" }],
"enrichListings": true,
"webhookUrl": "https://your-crm.example.com/api/leads",
"webhookFormat": "json"
}

Quick start examples

Multi-market restaurant leads

{
"enableListingDiscovery": true,
"listingTasks": [
{ "category": "restaurant", "location": "Austin", "maxItems": 100 },
{ "category": "restaurant", "location": "Dallas", "maxItems": 100 }
],
"enrichListings": true
}

Hotels across destinations

{
"enableListingDiscovery": true,
"listingTasks": [
{ "category": "hotel", "location": "Las Vegas", "maxItems": 50 },
{ "category": "hotel", "location": "Miami", "maxItems": 50 }
],
"enrichListings": true
}

Attractions by geo ID (any market)

{
"enableListingDiscovery": true,
"listingTasks": [{ "category": "attraction", "location": "298184", "maxItems": 75 }]
}

Enrich a link list

{
"enableListingDiscovery": false,
"enablePlaceDetails": true,
"placeUrls": [
"https://www.tripadvisor.com/Restaurant_Review-g60763-d7890999-Reviews-Kuu_Ramen-New_York_City_New_York.html"
]
}

Review sentiment feed

{
"enableListingDiscovery": false,
"enableReviews": true,
"reviewUrls": [
"https://www.tripadvisor.com/Restaurant_Review-g60763-d7890999-Reviews-Kuu_Ramen-New_York_City_New_York.html"
],
"maxReviewsPerPlace": 100
}

API quick start

curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enableListingDiscovery": true,
"listingTasks": [
{ "category": "restaurant", "location": "New York", "maxItems": 100 },
{ "category": "hotel", "location": "London", "maxItems": 100 }
],
"enrichListings": true
}'

Dataset items: GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json


LLM & MCP integration

Output is JSON Lines–friendly structured data — ideal for ChatGPT, Claude, Gemini, LangChain, LlamaIndex and custom agents.

  1. Run the Actor with the features you need.
  2. Fetch dataset items via the Apify API or export JSON/CSV.
  3. Pass records to your LLM with a system prompt, or index them into a vector store.

Example: one business for an LLM prompt

{
"featureType": "listing",
"name": "Kuu Ramen",
"category": "restaurant",
"address": "20 John St, New York City, New York, 10038, US",
"telephone": "+1 212-571-7177",
"emails": ["contact@example.com"],
"rating": 4.6,
"reviewCount": 308,
"priceRange": "$",
"cuisine": ["Japanese", "Asian", "Soups"],
"url": "https://www.tripadvisor.com/Restaurant_Review-g60763-d7890999-Reviews-Kuu_Ramen-New_York_City_New_York.html",
"marketLabel": "Restaurants | New York"
}

Apify MCP (Model Context Protocol)

Use the Apify MCP server so AI assistants can run this Actor from natural language, read its dataset directly in chat, and chain it with other Actors (enrich → score → outreach).

User: "Find highly rated restaurants in Austin with phone numbers and summarize each for outreach"
→ MCP runs the Actor with listingTasks=[{category:"restaurant", location:"Austin"}], enrichListings=true
→ MCP reads dataset items
→ LLM summarizes and drafts emails

Connection & performance

  • Apify's built-in residential proxy (US) is enabled by default — no extra setup.
  • Default memory is 512 MB, enough headroom for large runs. Increase memory for very large multi-market jobs.
  • Records are delivered to the dataset as they arrive, so long runs do not accumulate data in memory.
  • A business that cannot be loaded is skipped, so one bad record never stops the run.

Free plan & paid plans

This Actor is designed for paid Apify plans. Free-plan runs never crash or return a system error — they finish cleanly and explain the limit.

PlanWhat you get
Free planA small sample of up to 2 results per run, plus a clear log message inviting you to upgrade.
Paid plan (Bronze and above)Full, uncapped output with every feature.

The restriction is always stated transparently: the run log shows the limit and the run summary (OUTPUT) reports the paywall state (detected, isPaying, pricingTier, limited), so the upgrade path is visible without any guesswork.


Limitations & compliance

  • Data is limited to what Tripadvisor publicly displays for each business.
  • Contact emails are returned only when a business publicly exposes one; not every business has an email.
  • Some markets may return fewer businesses than requested.
  • Not affiliated with, endorsed by, or sponsored by Tripadvisor. Use responsibly and comply with applicable laws and Tripadvisor's Terms of Service. Always respect rate limits and local regulations when collecting business data.

FAQ

I got fewer results than maxItems. maxItems is a ceiling. Each market also has its own maxItems and maxPagesPerTask cap, and some markets list fewer businesses. Filtering to only businesses that have a phone, email or website happens on your side after the run — every business is always included in the dataset.

Why is a business missing an email? Emails are only returned when the business publicly publishes one. Keep Lead details on (enrichListings: true) for the best chance.

Can I collect from a city that isn't in the common list? Yes — use its numeric Tripadvisor geo ID, or paste the market's Tripadvisor link. Common city names are supported out of the box.

Does the webhook replace the dataset? No. The dataset is always written. The webhook is an additional real-time push.

Can I run this on a schedule? Yes. Create an Apify Schedule with your saved input and results land in a fresh dataset each run.


Contact & custom work

Need something beyond this Actor? I build custom scrapers, data pipelines, and full-stack web applications for startups and enterprises.

Reach out for:

  • Custom Apify Actors (any website or data source)
  • Tripadvisor / hospitality / local lead-gen data projects at scale
  • LLM & MCP integrations with your data stack
  • Web apps, dashboards and automation tools

Tripadvisor Real-Time Data · by DrunkCodes