{
  "data": {
    "id": "ZjovOOA8WlEoaTuGe",
    "actId": "Dgmncd5oCzxnIeFH1",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-10-21T19:59:30.237Z",
    "finishedAt": "2026-10-21T19:59:40.938Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 10611,
      "runTimeSecs": 10.611,
      "computeUnits": 0.01179,
      "imageSizeBytes": 311581184
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"TripAdvisor Reviews Scraper Input\",\n  \"description\": \"Extract guest reviews from TripAdvisor hotels, restaurants, attractions and tours by URL or location ID.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"startUrls\": {\n      \"title\": \"Place URLs or IDs\",\n      \"type\": \"array\",\n      \"description\": \"TripAdvisor place URLs or numeric location IDs. Hotel, restaurant, attraction, activity/tour, single-review and country-domain links are supported.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"prefill\": [\n        \"https://www.tripadvisor.com/Hotel_Review-g60763-d675616-Reviews-The_Plaza_New_York-New_York_City_New_York.html\"\n      ]\n    },\n    \"maxReviews\": {\n      \"title\": \"Maximum reviews per place\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of reviews to collect from each place. The run also stops when the source runs out.\",\n      \"default\": 100,\n      \"prefill\": 5,\n      \"minimum\": 1,\n      \"maximum\": 10000\n    },\n    \"sortBy\": {\n      \"title\": \"Sort reviews by\",\n      \"type\": \"string\",\n      \"description\": \"Order in which reviews are collected. 'detailed' prioritizes longer reviews; 'insightful' is accepted but currently returns the same order as 'most recent' on tested places.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"mostRecent\",\n        \"detailed\",\n        \"insightful\"\n      ],\n      \"enumTitles\": [\n        \"Most recent\",\n        \"Most detailed\",\n        \"Most insightful\"\n      ],\n      \"default\": \"mostRecent\",\n      \"prefill\": \"mostRecent\"\n    },\n    \"ratingFilter\": {\n      \"title\": \"Star ratings\",\n      \"type\": \"array\",\n      \"description\": \"Only collect reviews with these star ratings. Leave empty for all ratings.\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"1\",\n          \"2\",\n          \"3\",\n          \"4\",\n          \"5\"\n        ],\n        \"enumTitles\": [\n          \"1 star\",\n          \"2 stars\",\n          \"3 stars\",\n          \"4 stars\",\n          \"5 stars\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"tripTypeFilter\": {\n      \"title\": \"Trip types\",\n      \"type\": \"array\",\n      \"description\": \"Only collect reviews from these traveler types. Leave empty for all trip types.\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"solo\",\n          \"couples\",\n          \"family\",\n          \"friends\",\n          \"business\"\n        ],\n        \"enumTitles\": [\n          \"Solo\",\n          \"Couples\",\n          \"Family\",\n          \"Friends\",\n          \"Business\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"monthFilter\": {\n      \"title\": \"Months published\",\n      \"type\": \"array\",\n      \"description\": \"Only collect reviews published in these months. TripAdvisor applies this to the review submission month; the visit month is reported in travelDate. Leave empty for all months.\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"january\",\n          \"february\",\n          \"march\",\n          \"april\",\n          \"may\",\n          \"june\",\n          \"july\",\n          \"august\",\n          \"september\",\n          \"october\",\n          \"november\",\n          \"december\"\n        ],\n        \"enumTitles\": [\n          \"January\",\n          \"February\",\n          \"March\",\n          \"April\",\n          \"May\",\n          \"June\",\n          \"July\",\n          \"August\",\n          \"September\",\n          \"October\",\n          \"November\",\n          \"December\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"reviewLanguage\": {\n      \"title\": \"Review languages\",\n      \"type\": \"array\",\n      \"description\": \"Only collect reviews available in these languages. TripAdvisor may show a machine translation; the language each review was written in is always reported.\",\n      \"editor\": \"select\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"en\",\n          \"es\",\n          \"fr\",\n          \"de\",\n          \"it\",\n          \"pt\",\n          \"nl\",\n          \"ru\",\n          \"ja\",\n          \"zhCN\",\n          \"zhTW\",\n          \"ko\",\n          \"ar\",\n          \"tr\",\n          \"pl\",\n          \"sv\",\n          \"da\",\n          \"no\",\n          \"fi\",\n          \"el\",\n          \"he\",\n          \"th\",\n          \"vi\",\n          \"id\",\n          \"cs\",\n          \"hu\",\n          \"sk\",\n          \"sr\"\n        ],\n        \"enumTitles\": [\n          \"English\",\n          \"Spanish\",\n          \"French\",\n          \"German\",\n          \"Italian\",\n          \"Portuguese\",\n          \"Dutch\",\n          \"Russian\",\n          \"Japanese\",\n          \"Chinese (Simplified)\",\n          \"Chinese (Traditional)\",\n          \"Korean\",\n          \"Arabic\",\n          \"Turkish\",\n          \"Polish\",\n          \"Swedish\",\n          \"Danish\",\n          \"Norwegian\",\n          \"Finnish\",\n          \"Greek\",\n          \"Hebrew\",\n          \"Thai\",\n          \"Vietnamese\",\n          \"Indonesian\",\n          \"Czech\",\n          \"Hungarian\",\n          \"Slovak\",\n          \"Serbian\"\n        ]\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"keyword\": {\n      \"title\": \"Keyword\",\n      \"type\": \"string\",\n      \"description\": \"Only collect reviews containing this text. Leave empty for all reviews.\",\n      \"editor\": \"textfield\",\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"publishedAfter\": {\n      \"title\": \"Published after\",\n      \"type\": \"string\",\n      \"description\": \"Keep reviews published on or after this date (YYYY-MM-DD). Useful for scheduled incremental runs. Leave empty for all dates.\",\n      \"editor\": \"textfield\",\n      \"default\": \"\",\n      \"prefill\": \"\"\n    }\n  },\n  \"required\": [\n    \"startUrls\"\n  ]\n}",
    "readme": "# TripAdvisor Guest Review & Rating Extractor\n\nCollect guest reviews from TripAdvisor hotels, restaurants, attractions and tours. Get the full review text, star and category ratings, trip context, reviewer history, photos and owner replies, plus each place's ranking, price range, rating breakdown and key amenities.\n\n## What this actor does\n\n- Collects reviews from one or more TripAdvisor places in a single run, using place URLs or numeric location IDs\n- Supports hotels, restaurants, attractions and activity/tour pages, including links from any country's TripAdvisor site\n- Filters by star rating, traveler type, publication month, language and review keyword\n- Adds exact publish dates, visit dates, reviewer profile details, photos, per-review subratings and owner responses\n- Attaches place-level ranking, price range, hotel class, rating breakdown and key amenities to every review\n- Omits fields the source does not provide instead of writing empty strings\n\n## Output per review\n\n### Place fields\n\n- `placeName`, `placeId`, `placeUrl`, `placeCategory` — the reviewed place, its TripAdvisor ID, page URL and type (`hotel`, `restaurant`, `attraction`, `activity`)\n- `placeRating`, `placeReviewCount` — overall rating and total review count\n- `placeAddress`, `placeCity`, `placeCountry`, `placeLatitude`, `placeLongitude` — location details\n- `placeRanking`, `placeRankingPosition`, `placeRankingCount` — ranking string and its numeric parts\n- `placePriceRange`, `placePriceLevel`, `placeHotelClass` — price and class details when shown\n- `placeRatingBreakdown` — counts for `excellent`, `veryGood`, `average`, `poor` and `terrible`\n- `placeAmenities` — key amenities shown for the place\n\n### Review fields\n\n- `reviewId`, `reviewTitle`, `reviewText`, `reviewRating` — the review itself; `reviewId` is TripAdvisor's review ID\n- `reviewDate`, `reviewPublishedAt` — published date in readable and ISO form\n- `travelDate`, `travelDateIso`, `tripType` — when the reviewer traveled and with whom\n- `reviewerName`, `reviewerLocation`, `reviewerContributions`, `reviewerUsername`, `reviewerProfileUrl` — reviewer details\n- `helpfulVotes` — helpful-vote count\n- `reviewPhotos`, `reviewPhotoCount` — review photo URLs and total photo count\n- `ownerResponse`, `ownerResponseDate`, `ownerResponseAt`, `ownerResponseRole`, `ownerResponseAuthor` — management reply details\n- `reviewSubratings` — category scores such as `value`, `rooms`, `service`, `cleanliness` or `food`\n- `reviewTip` — a short reviewer tip when one is attached\n- `isHighlighted`, `hasSafetyAlert` — flags shown by TripAdvisor when present\n- `reviewLanguage`, `displayLanguage`, `isTranslated` — the language the review was written in, the language shown, and whether it was machine translated\n- `reviewUrl` — direct link to the review\n- `position` — the review's position in this run's collection order for that place\n- `scrapeTimestamp` — when the run collected the record\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `startUrls` | array | – | TripAdvisor place URLs or numeric location IDs. Required. Supports hotel, restaurant, attraction, activity/tour, single-review and country-domain links. |\n| `maxReviews` | integer | `100` | Maximum reviews per place (1–10,000). The run also stops when the source runs out. |\n| `sortBy` | string | `mostRecent` | `mostRecent`, `detailed` or `insightful`. `detailed` prioritizes longer reviews; `insightful` is accepted but currently returns the same order as `mostRecent` on tested places. |\n| `ratingFilter` | array | `[]` | Keep only these star ratings (1–5). Empty means all ratings. |\n| `tripTypeFilter` | array | `[]` | Keep only these traveler types: `solo`, `couples`, `family`, `friends`, `business`. |\n| `monthFilter` | array | `[]` | Keep only reviews published in these months. TripAdvisor applies this to the review submission month; the visit month is reported in `travelDate`. Empty means all months. |\n| `reviewLanguage` | array | `[]` | Keep reviews available in these languages. The original language and translation flag are always reported. |\n| `keyword` | string | – | Keep only reviews containing this text. |\n| `publishedAfter` | string | – | Keep reviews published on or after this date (`YYYY-MM-DD`). Useful for scheduled incremental runs. |\n\n## Example: recent reviews from a hotel\n\n```json\n{\n  \"startUrls\": [\n    \"https://www.tripadvisor.com/Hotel_Review-g60763-d675616-Reviews-The_Plaza_New_York-New_York_City_New_York.html\"\n  ],\n  \"maxReviews\": 50,\n  \"sortBy\": \"mostRecent\"\n}\n```\n\n## Example: five-star family reviews about breakfast\n\n```json\n{\n  \"startUrls\": [\n    \"https://www.tripadvisor.com/Hotel_Review-g60763-d675616-Reviews-The_Plaza_New_York-New_York_City_New_York.html\",\n    \"https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Daniel-New_York_City_New_York.html\"\n  ],\n  \"maxReviews\": 200,\n  \"ratingFilter\": [\"5\"],\n  \"tripTypeFilter\": [\"family\"],\n  \"keyword\": \"breakfast\"\n}\n```\n\n## Example: a scheduled incremental run\n\n```json\n{\n  \"startUrls\": [\n    \"https://www.tripadvisor.com/Attraction_Review-g60763-d104365-Reviews-Empire_State_Building-New_York_City_New_York.html\"\n  ],\n  \"maxReviews\": 100,\n  \"publishedAfter\": \"2026-10-01\"\n}\n```\n\n## Example: hotels, restaurants, attractions and a tour\n\n```json\n{\n  \"startUrls\": [\n    \"675616\",\n    \"https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Daniel-New_York_City_New_York.html\",\n    \"https://www.tripadvisor.com/Attraction_Review-g60763-d104365-Reviews-Empire_State_Building-New_York_City_New_York.html\",\n    \"https://www.tripadvisor.com/AttractionProductReview-g293916-d12565966-Bangkok_Midnight_Food_Tuk_Tuk_Tour-Bangkok.html\"\n  ],\n  \"maxReviews\": 40\n}\n```\n\n## Use cases\n\n- **Reputation monitoring** — keep a daily or weekly feed of new guest reviews and owner replies for your properties\n- **Competitive benchmarking** — compare ratings, complaint themes and response rates across nearby hotels or restaurants\n- **Guest-experience research** — study reviews by trip type, month or language for product and service decisions\n- **Response auditing** — identify reviews without an owner reply and measure response coverage\n- **Travel content** — collect real guest quotes, photos and ratings for destination pages and newsletters\n- **Data enrichment** — attach place ranking, price range and rating breakdown to an existing review dataset\n\n## FAQ\n\n**Which TripAdvisor place types are supported?**\nHotels, restaurants, attractions and activity/tour products. You can paste a place page URL, a single-review URL, a link from any TripAdvisor country site, or a bare numeric location ID.\n\n**Do I need a TripAdvisor account, cookies or an API key?**\nNo. The actor reads publicly available review data and needs no login, user cookies or API key. It generates an anonymous session cookie at runtime.\n\n**How many reviews can I collect?**\nUp to `maxReviews` per place. The run stops early when the place has no more reviews. Very large listings can return incomplete results after roughly 6,000 reviews per place because of TripAdvisor's deep-pagination behaviour; when that happens the run finishes with an honest partial-count message instead of failing.\n\n**Why are some fields missing from a record?**\nTripAdvisor does not show every field for every review. Reviewer location, photos, owner replies, subratings and tips are conditional, so they are omitted when absent. Counts such as `helpfulVotes` and `reviewPhotoCount` are still included when they are zero.\n\n**What is the difference between `reviewLanguage` and `displayLanguage`?**\n`reviewLanguage` is the language the reviewer wrote in. `displayLanguage` is the language TripAdvisor returned the text in. When `isTranslated` is true, the text you receive was machine translated, and `reviewLanguage` still tells you the original language.\n\n**Why do activity/tour rows have fewer place fields?**\nActivity product pages do not expose the same address, ranking, price range or amenity data as hotels, restaurants and attractions. Those records still include the product name, review count, review fields and review URL.\n\n**Can I use this for scheduled incremental runs?**\nYes. Set `publishedAfter` to a recent date and schedule the actor. With the default most-recent sort it stops once it reaches older reviews.\n\n**Are owner responses included?**\nYes, when the business posted one. The response text, date, responder role and responder name are included.\n\n**Is this affiliated with TripAdvisor?**\nNo. This is an independent, third-party actor that reads publicly available TripAdvisor review data. It is not affiliated with or endorsed by TripAdvisor.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "tripadvisor-guest-review-and-rating-extractor",
      "title": "TripAdvisor Guest Review & Rating Extractor",
      "description": "Collect TripAdvisor hotel, restaurant, attraction and tour reviews: full text, ratings, trip dates, traveler type, reviewer details, photos and owner replies, plus each place's ranking, price range, rating breakdown and key amenities.",
      "version": "1.0",
      "buildTag": "latest",
      "defaultRunOptions": {
        "build": "latest",
        "timeoutSecs": 3600,
        "memoryMbytes": 1024
      },
      "dockerfile": "../Dockerfile",
      "readme": "# TripAdvisor Guest Review & Rating Extractor\n\nCollect guest reviews from TripAdvisor hotels, restaurants, attractions and tours. Get the full review text, star and category ratings, trip context, reviewer history, photos and owner replies, plus each place's ranking, price range, rating breakdown and key amenities.\n\n## What this actor does\n\n- Collects reviews from one or more TripAdvisor places in a single run, using place URLs or numeric location IDs\n- Supports hotels, restaurants, attractions and activity/tour pages, including links from any country's TripAdvisor site\n- Filters by star rating, traveler type, publication month, language and review keyword\n- Adds exact publish dates, visit dates, reviewer profile details, photos, per-review subratings and owner responses\n- Attaches place-level ranking, price range, hotel class, rating breakdown and key amenities to every review\n- Omits fields the source does not provide instead of writing empty strings\n\n## Output per review\n\n### Place fields\n\n- `placeName`, `placeId`, `placeUrl`, `placeCategory` — the reviewed place, its TripAdvisor ID, page URL and type (`hotel`, `restaurant`, `attraction`, `activity`)\n- `placeRating`, `placeReviewCount` — overall rating and total review count\n- `placeAddress`, `placeCity`, `placeCountry`, `placeLatitude`, `placeLongitude` — location details\n- `placeRanking`, `placeRankingPosition`, `placeRankingCount` — ranking string and its numeric parts\n- `placePriceRange`, `placePriceLevel`, `placeHotelClass` — price and class details when shown\n- `placeRatingBreakdown` — counts for `excellent`, `veryGood`, `average`, `poor` and `terrible`\n- `placeAmenities` — key amenities shown for the place\n\n### Review fields\n\n- `reviewId`, `reviewTitle`, `reviewText`, `reviewRating` — the review itself; `reviewId` is TripAdvisor's review ID\n- `reviewDate`, `reviewPublishedAt` — published date in readable and ISO form\n- `travelDate`, `travelDateIso`, `tripType` — when the reviewer traveled and with whom\n- `reviewerName`, `reviewerLocation`, `reviewerContributions`, `reviewerUsername`, `reviewerProfileUrl` — reviewer details\n- `helpfulVotes` — helpful-vote count\n- `reviewPhotos`, `reviewPhotoCount` — review photo URLs and total photo count\n- `ownerResponse`, `ownerResponseDate`, `ownerResponseAt`, `ownerResponseRole`, `ownerResponseAuthor` — management reply details\n- `reviewSubratings` — category scores such as `value`, `rooms`, `service`, `cleanliness` or `food`\n- `reviewTip` — a short reviewer tip when one is attached\n- `isHighlighted`, `hasSafetyAlert` — flags shown by TripAdvisor when present\n- `reviewLanguage`, `displayLanguage`, `isTranslated` — the language the review was written in, the language shown, and whether it was machine translated\n- `reviewUrl` — direct link to the review\n- `position` — the review's position in this run's collection order for that place\n- `scrapeTimestamp` — when the run collected the record\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `startUrls` | array | – | TripAdvisor place URLs or numeric location IDs. Required. Supports hotel, restaurant, attraction, activity/tour, single-review and country-domain links. |\n| `maxReviews` | integer | `100` | Maximum reviews per place (1–10,000). The run also stops when the source runs out. |\n| `sortBy` | string | `mostRecent` | `mostRecent`, `detailed` or `insightful`. `detailed` prioritizes longer reviews; `insightful` is accepted but currently returns the same order as `mostRecent` on tested places. |\n| `ratingFilter` | array | `[]` | Keep only these star ratings (1–5). Empty means all ratings. |\n| `tripTypeFilter` | array | `[]` | Keep only these traveler types: `solo`, `couples`, `family`, `friends`, `business`. |\n| `monthFilter` | array | `[]` | Keep only reviews published in these months. TripAdvisor applies this to the review submission month; the visit month is reported in `travelDate`. Empty means all months. |\n| `reviewLanguage` | array | `[]` | Keep reviews available in these languages. The original language and translation flag are always reported. |\n| `keyword` | string | – | Keep only reviews containing this text. |\n| `publishedAfter` | string | – | Keep reviews published on or after this date (`YYYY-MM-DD`). Useful for scheduled incremental runs. |\n\n## Example: recent reviews from a hotel\n\n```json\n{\n  \"startUrls\": [\n    \"https://www.tripadvisor.com/Hotel_Review-g60763-d675616-Reviews-The_Plaza_New_York-New_York_City_New_York.html\"\n  ],\n  \"maxReviews\": 50,\n  \"sortBy\": \"mostRecent\"\n}\n```\n\n## Example: five-star family reviews about breakfast\n\n```json\n{\n  \"startUrls\": [\n    \"https://www.tripadvisor.com/Hotel_Review-g60763-d675616-Reviews-The_Plaza_New_York-New_York_City_New_York.html\",\n    \"https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Daniel-New_York_City_New_York.html\"\n  ],\n  \"maxReviews\": 200,\n  \"ratingFilter\": [\"5\"],\n  \"tripTypeFilter\": [\"family\"],\n  \"keyword\": \"breakfast\"\n}\n```\n\n## Example: a scheduled incremental run\n\n```json\n{\n  \"startUrls\": [\n    \"https://www.tripadvisor.com/Attraction_Review-g60763-d104365-Reviews-Empire_State_Building-New_York_City_New_York.html\"\n  ],\n  \"maxReviews\": 100,\n  \"publishedAfter\": \"2026-10-01\"\n}\n```\n\n## Example: hotels, restaurants, attractions and a tour\n\n```json\n{\n  \"startUrls\": [\n    \"675616\",\n    \"https://www.tripadvisor.com/Restaurant_Review-g60763-d457808-Reviews-Daniel-New_York_City_New_York.html\",\n    \"https://www.tripadvisor.com/Attraction_Review-g60763-d104365-Reviews-Empire_State_Building-New_York_City_New_York.html\",\n    \"https://www.tripadvisor.com/AttractionProductReview-g293916-d12565966-Bangkok_Midnight_Food_Tuk_Tuk_Tour-Bangkok.html\"\n  ],\n  \"maxReviews\": 40\n}\n```\n\n## Use cases\n\n- **Reputation monitoring** — keep a daily or weekly feed of new guest reviews and owner replies for your properties\n- **Competitive benchmarking** — compare ratings, complaint themes and response rates across nearby hotels or restaurants\n- **Guest-experience research** — study reviews by trip type, month or language for product and service decisions\n- **Response auditing** — identify reviews without an owner reply and measure response coverage\n- **Travel content** — collect real guest quotes, photos and ratings for destination pages and newsletters\n- **Data enrichment** — attach place ranking, price range and rating breakdown to an existing review dataset\n\n## FAQ\n\n**Which TripAdvisor place types are supported?**\nHotels, restaurants, attractions and activity/tour products. You can paste a place page URL, a single-review URL, a link from any TripAdvisor country site, or a bare numeric location ID.\n\n**Do I need a TripAdvisor account, cookies or an API key?**\nNo. The actor reads publicly available review data and needs no login, user cookies or API key. It generates an anonymous session cookie at runtime.\n\n**How many reviews can I collect?**\nUp to `maxReviews` per place. The run stops early when the place has no more reviews. Very large listings can return incomplete results after roughly 6,000 reviews per place because of TripAdvisor's deep-pagination behaviour; when that happens the run finishes with an honest partial-count message instead of failing.\n\n**Why are some fields missing from a record?**\nTripAdvisor does not show every field for every review. Reviewer location, photos, owner replies, subratings and tips are conditional, so they are omitted when absent. Counts such as `helpfulVotes` and `reviewPhotoCount` are still included when they are zero.\n\n**What is the difference between `reviewLanguage` and `displayLanguage`?**\n`reviewLanguage` is the language the reviewer wrote in. `displayLanguage` is the language TripAdvisor returned the text in. When `isTranslated` is true, the text you receive was machine translated, and `reviewLanguage` still tells you the original language.\n\n**Why do activity/tour rows have fewer place fields?**\nActivity product pages do not expose the same address, ranking, price range or amenity data as hotels, restaurants and attractions. Those records still include the product name, review count, review fields and review URL.\n\n**Can I use this for scheduled incremental runs?**\nYes. Set `publishedAfter` to a recent date and schedule the actor. With the default most-recent sort it stops once it reaches older reviews.\n\n**Are owner responses included?**\nYes, when the business posted one. The response text, date, responder role and responder name are included.\n\n**Is this affiliated with TripAdvisor?**\nNo. This is an independent, third-party actor that reads publicly available TripAdvisor review data. It is not affiliated with or endorsed by TripAdvisor.\n",
      "input": {
        "title": "TripAdvisor Reviews Scraper Input",
        "description": "Extract guest reviews from TripAdvisor hotels, restaurants, attractions and tours by URL or location ID.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "startUrls": {
            "title": "Place URLs or IDs",
            "type": "array",
            "description": "TripAdvisor place URLs or numeric location IDs. Hotel, restaurant, attraction, activity/tour, single-review and country-domain links are supported.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "prefill": [
              "https://www.tripadvisor.com/Hotel_Review-g60763-d675616-Reviews-The_Plaza_New_York-New_York_City_New_York.html"
            ]
          },
          "maxReviews": {
            "title": "Maximum reviews per place",
            "type": "integer",
            "description": "Maximum number of reviews to collect from each place. The run also stops when the source runs out.",
            "default": 100,
            "prefill": 5,
            "minimum": 1,
            "maximum": 10000
          },
          "sortBy": {
            "title": "Sort reviews by",
            "type": "string",
            "description": "Order in which reviews are collected. 'detailed' prioritizes longer reviews; 'insightful' is accepted but currently returns the same order as 'most recent' on tested places.",
            "editor": "select",
            "enum": [
              "mostRecent",
              "detailed",
              "insightful"
            ],
            "enumTitles": [
              "Most recent",
              "Most detailed",
              "Most insightful"
            ],
            "default": "mostRecent",
            "prefill": "mostRecent"
          },
          "ratingFilter": {
            "title": "Star ratings",
            "type": "array",
            "description": "Only collect reviews with these star ratings. Leave empty for all ratings.",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": [],
            "prefill": []
          },
          "tripTypeFilter": {
            "title": "Trip types",
            "type": "array",
            "description": "Only collect reviews from these traveler types. Leave empty for all trip types.",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "solo",
                "couples",
                "family",
                "friends",
                "business"
              ],
              "enumTitles": [
                "Solo",
                "Couples",
                "Family",
                "Friends",
                "Business"
              ]
            },
            "default": [],
            "prefill": []
          },
          "monthFilter": {
            "title": "Months published",
            "type": "array",
            "description": "Only collect reviews published in these months. TripAdvisor applies this to the review submission month; the visit month is reported in travelDate. Leave empty for all months.",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "january",
                "february",
                "march",
                "april",
                "may",
                "june",
                "july",
                "august",
                "september",
                "october",
                "november",
                "december"
              ],
              "enumTitles": [
                "January",
                "February",
                "March",
                "April",
                "May",
                "June",
                "July",
                "August",
                "September",
                "October",
                "November",
                "December"
              ]
            },
            "default": [],
            "prefill": []
          },
          "reviewLanguage": {
            "title": "Review languages",
            "type": "array",
            "description": "Only collect reviews available in these languages. TripAdvisor may show a machine translation; the language each review was written in is always reported.",
            "editor": "select",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "fr",
                "de",
                "it",
                "pt",
                "nl",
                "ru",
                "ja",
                "zhCN",
                "zhTW",
                "ko",
                "ar",
                "tr",
                "pl",
                "sv",
                "da",
                "no",
                "fi",
                "el",
                "he",
                "th",
                "vi",
                "id",
                "cs",
                "hu",
                "sk",
                "sr"
              ],
              "enumTitles": [
                "English",
                "Spanish",
                "French",
                "German",
                "Italian",
                "Portuguese",
                "Dutch",
                "Russian",
                "Japanese",
                "Chinese (Simplified)",
                "Chinese (Traditional)",
                "Korean",
                "Arabic",
                "Turkish",
                "Polish",
                "Swedish",
                "Danish",
                "Norwegian",
                "Finnish",
                "Greek",
                "Hebrew",
                "Thai",
                "Vietnamese",
                "Indonesian",
                "Czech",
                "Hungarian",
                "Slovak",
                "Serbian"
              ]
            },
            "default": [],
            "prefill": []
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Only collect reviews containing this text. Leave empty for all reviews.",
            "editor": "textfield",
            "default": "",
            "prefill": ""
          },
          "publishedAfter": {
            "title": "Published after",
            "type": "string",
            "description": "Keep reviews published on or after this date (YYYY-MM-DD). Useful for scheduled incremental runs. Leave empty for all dates.",
            "editor": "textfield",
            "default": "",
            "prefill": ""
          }
        },
        "required": [
          "startUrls"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "TripAdvisor Guest Reviews Output",
        "description": "Guest reviews with ratings, dates, traveler context, reviewer details, photos, owner responses and place metadata.",
        "properties": {
          "reviews": {
            "type": "string",
            "title": "Reviews",
            "description": "Dataset containing all scraped TripAdvisor reviews.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "reviews": {
              "title": "Reviews",
              "transformation": {
                "fields": [
                  "placeName",
                  "placeCategory",
                  "placeRating",
                  "placeReviewCount",
                  "reviewTitle",
                  "position",
                  "reviewRating",
                  "reviewDate",
                  "travelDate",
                  "tripType",
                  "reviewerName",
                  "helpfulVotes",
                  "ownerResponse",
                  "reviewSubratings",
                  "placeRanking",
                  "placePriceRange",
                  "reviewUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "placeName": {
                    "label": "Place",
                    "format": "text"
                  },
                  "placeCategory": {
                    "label": "Type",
                    "format": "text"
                  },
                  "placeRating": {
                    "label": "Place rating",
                    "format": "text"
                  },
                  "placeReviewCount": {
                    "label": "Place reviews",
                    "format": "text"
                  },
                  "reviewTitle": {
                    "label": "Title",
                    "format": "text"
                  },
                  "reviewRating": {
                    "label": "Rating",
                    "format": "text"
                  },
                  "reviewDate": {
                    "label": "Published",
                    "format": "text"
                  },
                  "travelDate": {
                    "label": "Visited",
                    "format": "text"
                  },
                  "tripType": {
                    "label": "Trip type",
                    "format": "text"
                  },
                  "reviewerName": {
                    "label": "Reviewer",
                    "format": "text"
                  },
                  "helpfulVotes": {
                    "label": "Helpful",
                    "format": "text"
                  },
                  "ownerResponse": {
                    "label": "Owner response",
                    "format": "text"
                  },
                  "reviewSubratings": {
                    "label": "Subratings",
                    "format": "object"
                  },
                  "placeRanking": {
                    "label": "Ranking",
                    "format": "text"
                  },
                  "placePriceRange": {
                    "label": "Price range",
                    "format": "text"
                  },
                  "reviewUrl": {
                    "label": "Review URL",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      }
    },
    "buildNumber": "1.0.2",
    "imageDigest": "ebdfe26d252c03035d9f7073361c7dfbd0f1b31e897cb3ea7b34d549020916a0",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.01179
    }
  }
}