Tripadvisor Scraper avatar

Tripadvisor Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Tripadvisor Scraper

Tripadvisor Scraper

Find TripAdvisor listings of restaurants, hotels and attractions by name and city: URL, name, street, city, bubble rating, review count, price range, ranking. Phone, website and reviews only when TripAdvisor serves the listing page (rare).

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

The Howlers

The Howlers

Maintained by Community

Actor stats

0

Bookmarked

28

Total users

1

Monthly active users

7 days ago

Last modified

Security

Limited permissions

Share

TripAdvisor Business Scraper

Scrape TripAdvisor business listings for restaurants, hotels, attractions and vacation rentals: listing URL, TripAdvisor id, name, street, city, state, bubble rating, review count, price range and ranking. Find the TripAdvisor listing of any business from its name and city, for citation and NAP checks. Built by John Rippy (https://www.linkedin.com/in/johnrippy/ | https://johnrippy.link/).

Note: this actor runs in Demo Mode by default, so a default run returns labeled sample data and charges no task events (the Actor start fee still applies). Set demoMode to false to fetch real data.


How it reads TripAdvisor

TripAdvisor shows most automated browsers a CAPTCHA, and this actor never solves CAPTCHAs. It finds listings through Google's public index of TripAdvisor (Apify's Google SERP proxy), which gives each listing's URL, name, street, city, bubble rating, review count and price range. When Google hides a result's link, the actor follows Google's own click-through link to learn the listing URL. It then tries the listing page itself in a Camoufox stealth browser over Apify residential proxies: when TripAdvisor serves the page, the row adds the phone, website, full address, coordinates and reviews from it. Each row says where its data came from (dataSource) and which fields could not be read (unreadFields).

What to expect. TripAdvisor almost never serves its listing pages to automated sessions: in our November 2026 tests it served 0 pages in 11 runs. So on nearly every run phone, website, address.postalCode, coordinates, reviews and photos are null or empty, and NAP checks should compare name, street and city only. address.street is null when Google's index does not show it. A lookup usually takes 20 to 90 s with openListingPages off and 60 to 160 s with it on. Set openListingPages to false to skip the listing-page attempt.

Google's results vary between requests, so when the first two queries find nothing, a lookup asks twice more with differently worded queries before it reports not_found.


Quick Start

Test with Demo Mode (no task events)

{
"demoMode": true
}

Find one business (lookup)

{
"demoMode": false,
"scrapeType": "lookup",
"searchTerm": "Joe's Pizza",
"location": "New York, NY",
"includeReviews": false
}

Returns one row: the matching listing, or a not_found row when no TripAdvisor listing for the business shows. Other listings with the same name in the area are in otherListings.

Search listings

{
"demoMode": false,
"scrapeType": "search",
"searchTerm": "pizza",
"location": "New York, NY",
"businessType": "restaurants",
"maxResults": 20,
"includeReviews": false
}

A listing by URL

{
"demoMode": false,
"scrapeType": "business_profile",
"businessUrl": "https://www.tripadvisor.com/Restaurant_Review-g60763-d425707-Reviews-Joe_s_Pizza-New_York_City_New_York.html"
}

Input Parameters

ParameterTypeDefaultRequiredDescription
scrapeTypestring"business_profile"Nolookup, business_profile, search or reviews
businessUrlstring-NoTripAdvisor listing URL (business_profile, reviews)
searchTermstring-NoLookup: the business name. Search: a keyword
locationstring-NoCity and state, for example Nashville, TN
phonestring-NoLookup: phone of the business, compared with the listing when its page is read
businessTypestring"all"Noall, hotels, restaurants, attractions or vacation_rentals
minRatingnumber0NoMinimum bubble rating
priceLevelarray[]NoPrice levels to keep
includeReviewsbooleantrueNoReviews from the listing page, when TripAdvisor serves it (rare; see above)
maxReviewsPerBusinessinteger20NoMaximum reviews per listing
includePhotosbooleanfalseNoPhoto URLs from the listing page, when TripAdvisor serves it (rare; see above)
maxResultsinteger50NoMaximum number of listings
openListingPagesbooleantrueNoTry each listing page for phone, website, full address and reviews
sortBystring"relevance"Norelevance, rating, review_count, price_low or price_high
proxyConfigurationobject{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}NoProxy for listing pages
demoModebooleantrueNoReturn sample data without scraping
webhookUrlstring-NoURL to POST results when scraping completes
webhookPlatformstring"custom"NoTarget platform for webhook payload formatting
webhookHeadersobject{}NoCustom HTTP headers to send with the webhook

Output

FieldDescription
name, businessNameListing name
url, tripAdvisorUrl, tripAdvisorId, geoIdListing URL and TripAdvisor ids
businessTypeRestaurant, Hotel, Attraction or Vacation Rental
address{street, city, state, country, postalCode}; a part that was not shown is null. fullAddress is the same on one line
phone, website, coordinatesFrom the listing page when it was read; null otherwise (most runs)
rating, reviewCount, priceLevel, rankingBubble rating, number of reviews, price range, ranking
reviews, photosFrom the listing page, when it was read and asked for (rare)
dataSourcelisting_page or search_engine (Google's index of TripAdvisor)
unreadFieldsFields that could not be read because the listing page was not served
matchLookup only: how the listing was matched, with name score and city and phone checks

A lookup with no match returns status: "not_found". When Google shows a matching listing but hides its link, the row has status: "unverified". When the search could not run, the row has status: "blocked". These rows charge no task events (the Actor start fee still applies).


Pricing

This actor uses pay-per-event billing:

EventWhen it is chargedPrice
Actor startOnce when the run starts, one event per GB of memory (minimum one). At the default 2 GB of memory a run starts at $0.20$0.10 per GB
Listing ScrapedPer business scraped$0.03
ResultEach item written to the default dataset$0.00001

Demo mode charges no task events: sample rows are never billed. Every run, a demo run included, still pays the Actor start fee and the small per-result fee shown above.


Troubleshooting

A lookup returned not_found

TripAdvisor lists restaurants, hotels, attractions and rentals; most other local businesses have no TripAdvisor listing. Check the spelling and the city TripAdvisor files the business under (it often uses the metro city, such as New York City for Brooklyn).

phone is null

TripAdvisor did not serve the listing page to the run (it showed a CAPTCHA, which the actor never solves). The listing URL, name, street, city, rating and review count still come from Google's index of TripAdvisor; unreadFields lists what is missing.

How do I test without paying for results?

Enable Demo Mode in the input. It returns labeled sample data so you can check the output format, and charges no task events; you pay only the Actor start fee and the per-result fee.


Built by John Rippy | Actor Arsenal