Property & travel · Live on Apify

Tripadvisor Scraper: Hotels, Restaurants and Reviews

Get public Tripadvisor places and reviews from a search, a link or a place ID. A place row can have the rating, review count, rank, address and opening hours. A review row has the text, rating and trip type.

About $2.70 for 1,000 results$0.0027 per result + $0.0036 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

recordTypeplace
placeId12283373
nameLonghorn Steakhouse & Grill

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: restaurants in Place types. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Tripadvisor Scraper turns a search, a place link or a place ID into rows of hotels, restaurants, attractions and reviews from public Tripadvisor pages, with no login. Use the rows to compare places in a city or to study guest feedback. A first run with 10 places takes about 20 to 35 seconds and costs about $0.03.

  • Search for places finds hotels, restaurants and attractions from a search like Pattaya restaurants.
  • Place details reads one place or a list of places.
  • Reviews collects reviews of the places you choose, with filters.

Good for

  • You compare restaurants, hotels or attractions in one city.
  • You read what guests say about your place or a competitor.
  • You check hotel prices for your stay dates.
  • You feed fresh place data to a spreadsheet, a database or an AI agent.

Who uses it

Hotel and restaurant owners

Read what guests say about your place or a rival.

Travel researchers

Compare restaurants, hotels or attractions in one city.

Data teams

Feed fresh place data to a sheet or a database.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Place$0.0017 (from $0.00119 on paid Apify plans)One place result saved. The place check is charged separately.
Review$0.0027 (from $0.00189 on paid Apify plans)One matching review saved in the dataset.
Review page$0.0005 (from $0.00035 on paid Apify plans)One review page answered by Tripadvisor, including pages scanned for date or rating filters. Failed requests are free.
Start fee$0.0036 (from $0.00252 on paid Apify plans)Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.
Place check$0.001 (from $0.0007 on paid Apify plans)One place answered by Tripadvisor, including places that no longer exist. Failed requests are free.

Examples

  • One result: about $0.0063.
  • 1,000 results: about $2.70.
  • Every day 100 results, for 30 days: about $8.21 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 1,800 results.

Prices checked on 8 November 2026. See the current price on Apify.

Questions

Do I need a Tripadvisor account or an API key?

No. The Actor reads public pages. You need only an Apify account.

Is this a Tripadvisor API?

No. It is a scraper that you can start through the Apify API.

Why are some fields empty?

Tripadvisor does not show every value for every place. For example, attractions have no cuisines.

Can I get all reviews of a place?

Set maxReviews and maxResults above the review count, and set a long enough timeout. We measured up to 700 reviews from one place in one run. The count on the page can differ from the rows you get.

What do I pay when nothing is found?

You pay the start fee. If a place was opened, you also pay the place check and the review pages. Status rows are free.

How fresh is the data?

Each row shows the read time in fetchedAt. The Actor does not keep history between runs.

Details

Step by step on Apify
  1. Open the Input tab and keep What to collect on Search for places (box 1).
  2. Keep Pattaya restaurants in Search query or place ID, or type your own city and place type (box 2).
  3. Keep Maximum places at 10 (box 3).
  4. Click Start at the bottom of the page (below the form, not in the picture).
  5. When the run ends, open the Output tab and keep the Places view (box 5).
  6. Check name, type, rating and reviewsCount (box 6).
  7. Check ranking to see the place's position in its city (box 7).
Use cases
TaskInputYou getKey fieldsNext step
Compare restaurants in a citymode: search, queryPlacename, rating, reviewsCount, ranking, priceLevelCSV or Excel export
Study guest feedbackmode: reviews, placeUrlsReviewrating, title, text, publishedDate, tripTypeSpreadsheet or AI agent
Check hotel prices for your datesmode: place, placeUrls, checkInDate, checkOutDatePlacename, offers, priceRange, roomCountAPI
Find top attractions for a trip planmode: search, query, placeTypesPlacename, ranking, tags, openingHours, awardsSlack or Notion summary
Watch new reviews of your placemode: reviews, placeUrls, recentDaysReviewpublishedDate, rating, text, ownerResponseApify schedule
Tips for better results
  • Use a search like Pattaya restaurants to list places in a city.
  • The default 300 second timeout fits about 40 places. Raise it for more.
  • Use recentDays on a schedule to get recent reviews.
Limits and good to know
  • Public pages only: there is no login, no private data and no email search
  • Speed: up to one request per second. A place usually takes 2 to 7 seconds, and reviews come at 11 to 16 per second. When Tripadvisor refuses a page, retries can stretch one place to about 45 seconds
  • Time limit: the Actor stops 20 seconds before your timeout and keeps the saved rows. The default 300 seconds fits about 40 places. 100 London restaurants took from 200 to 534 seconds, and one run saved only 94 places in 600 seconds. Tripadvisor pages load at different speeds, so use a 900-second timeout for 100 places
  • Direct inputs: up to 100 links in placeUrls, up to 100 in startUrls, and up to 100 rows in sourceDatasetId. A link can have up to 2,048 characters. You need read access to this dataset
  • City lists: the Actor reads the list as the source shows it. It does not split a big city into smaller areas, so a list can end before all places are read
  • Hotel offers: the list can be empty on a complete row. Offers for your dates have no provider name. Occupancy is fixed at 2 adults and 1 room
  • Page size: a single response over 8 MB is refused
  • Failures: 3 failed inputs in a row stop the run, and saved rows stay in the dataset. If no input works, the run shows as failed

Troubleshooting

SymptomLikely reasonCheckAction
One row with status: not_found and NO_RESULTSThe search found no placesThe words in queryUse a city plus a place type, or a link
A place that does not look like your searchTripadvisor search matched one word of your queryThe words in queryUse a city plus a place type, or a link
status: not_found and NOT_FOUNDThe place link or ID does not existOpen the link in a browserFix the link or the ID
status: not_found and NO_MATCHING_REVIEWSNo review passes your filtersYour review filtersRemove a filter
status: invalid_urlThe link is not from TripadvisorThe link in the rowUse a Tripadvisor link
"An input field has a wrong value: placeUrls."The field breaks a limit, such as over 100 links in placeUrls or startUrls. A name such as placeUrls.1 points to one item, counted from 0The field or item named in the messageSplit the links into smaller runs, or shorten that item
"Add a search query, a Tripadvisor URL, or a source dataset."All inputs are emptyThe input formFill in one input
"The run reached its time limit."The timeout was too shortThe run optionsRaise the timeout, and run again

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "recordType": "place",
  "status": "complete",
  "placeId": 12283373,
  "name": "Longhorn Steakhouse & Grill",
  "type": "restaurant",
  "rating": 4.7,
  "reviewsCount": 597,
  "ranking": "#30 of 1,515 Restaurants in Pattaya",
  "address": "216/47-48 Pattaya 2nd Rd Inside Plaza Arcade, 20150, TH",
  "phone": "+66 81 860 1575",
  "latitude": 12.930813,
  "longitude": 100.88198,
  "priceLevel": "$$ - $$$",
  "cuisines": ["Steakhouse", "European"],
  "awards": [{ "type": "COE", "year": 2026 }],
  "description": null,
  "menuUrl": null,
  "source": "Tripadvisor"
}

Use it from code

Actor ID: cliqtomedia/tripadvisor-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/tripadvisor-scraper").call(run_input={
    "mode": "search",
    "query": "Pattaya restaurants"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~tripadvisor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "search", "query": "Pattaya restaurants"}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/tripadvisor-scraper")
result = tool.invoke({"run_input": {"mode": "search", "query": "Pattaya restaurants"}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (40)
FieldTypeMeaning
recordTypestringRow type: place, review, placeWithReviews, or status.
statusstringResult state: complete on data rows; not_found (nothing matched), failed (this input could not be read), or invalid_url (this URL was refused) on free status rows.
placeIdintegerTripadvisor identifier of the place.
locationIdintegerTripadvisor location identifier; same value as placeId.
idintegerTripadvisor review identifier.
namestringName of the place.
typestringPlace type: hotel, restaurant, or attraction.
ratingnumberOverall place rating, or the review star rating on review rows.
reviewsCountintegerTotal reviews reported for the place.
addressstringPublished business address.
priceLevelstringPrice category shown by Tripadvisor.
urlstringPublic Tripadvisor URL for this result.
latitudenumberLatitude of the place.
longitudenumberLongitude of the place.
descriptionstringDescription published for the place.
websitestringOfficial business website when provided.
phonestringPublic business phone number.
aiReviewSummarystringAI review summary published by Tripadvisor, when requested and available.
titlestringReview title.
textstringFull public review text.
datestringReview submission timestamp in ISO 8601 UTC.
publishedDatestringReview submission timestamp in ISO 8601 UTC.
travelDatestringReported stay or visit month, or date when known.
tripTypestringTraveler group reported by the reviewer.
languagestringOriginal review language.
originalLanguagestringOriginal language reported by Tripadvisor.
helpfulVotesintegerHelpful votes reported for the review.
sourcestringName of the source: Tripadvisor.
fetchedAtstringTime the source was read, in ISO 8601 UTC.
reasonstringWhy a status row was written, such as NO_RESULTS, NO_MATCHING_REVIEWS, NOT_FOUND, INVALID_URL, or SOURCE_BLOCKED.
cuisinesarrayCuisine labels published for the restaurant.
amenitiesarrayAmenities published for the place.
tagsarrayCuisine, amenity, and attraction type tags.
photosarrayPublic photo URLs; no image files are downloaded.
nearbyPlacesarrayNearby places shown by the source.
openingHoursarrayOpening and closing times published for the restaurant or attraction.
awardsarrayAwards of this place shown by the source: type (COE for Travelers' Choice, BOTB for Best of the Best) and year.
subratingsarrayRatings for individual aspects of a review or place.
reviewsarrayMatching reviews when grouped output is selected.
placeInfoobjectPlace details repeated on each review row.
Input settings (25)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
What to collectmodestring"search"
Search query or place IDquerystring"Pattaya restaurants"
Place or listing URLsplaceUrlsarray
Start URLsstartUrlsarray
Source datasetsourceDatasetIdstring
Maximum placesmaxItemsinteger10
Maximum reviews per placemaxReviewsinteger100
Maximum reviews in totalmaxResultsinteger1000
Place typesplaceTypesarray["restaurants", "hotels", "attractions"]
Review languagesreviewLanguagesarray
Review ratingsreviewRatingsarray[]
Traveler typestravelerTypesarray[]
Months of visitmonthsOfVisitarray[]
Review keywordkeywordstring
Reviews sincesincestring
Reviews untiluntilstring
Recent daysrecentDaysinteger0
Review ordersortBystring"mostRecent"
Include reviewer informationscrapeReviewerInfobooleantrue
Include AI review summaryincludeAiReviewsSummarybooleanfalse
Include nearby placesincludeNearbyResultsbooleanfalse
Include tagsincludeTagsbooleantrue
Maximum place photosmaxPhotosPerPlaceinteger0
Photo contributorsphotosTypestring"fromEveryone"
Hotel check-in datecheckInDatestring

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure