{
  "description": "Choose a mode, give it a query or Tripadvisor place URLs, and optionally narrow the review export by rating, language, traveler type, month, keyword and sort.",
  "properties": {
    "includeDetails": {
      "default": true,
      "description": "Fetches amenities and a larger photo for place rows. HTML enrichment is used in details mode when the JSON fields are missing.",
      "prefill": false,
      "sectionCaption": "Details",
      "title": "Enrich place details",
      "type": "boolean"
    },
    "location": {
      "description": "Optional destination used with query, for example 'New York' or 'Paris'. When set, query can be just 'hotels' or 'restaurants'.",
      "editor": "textfield",
      "title": "Location",
      "type": "string"
    },
    "maxItems": {
      "default": 20,
      "description": "Maximum search results, detail places, or review target places to process. One place can return many reviews.",
      "maximum": 500,
      "minimum": 1,
      "prefill": 1,
      "sectionCaption": "Limits",
      "title": "Maximum places",
      "type": "integer"
    },
    "maxReviews": {
      "default": 20,
      "description": "Reviews to collect for each target place in reviews mode. Upstream returns 20 per request; the actor paginates until this cap.",
      "maximum": 500,
      "minimum": 1,
      "prefill": 20,
      "sectionCaption": "Reviews",
      "title": "Maximum reviews per place",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "search finds ranked places from a query; details reads one place per URL or ID; reviews exports review rows with optional filters.",
      "editor": "select",
      "enum": [
        "search",
        "details",
        "reviews"
      ],
      "enumTitles": [
        "Search places",
        "Place details",
        "Reviews"
      ],
      "prefill": "search",
      "title": "Mode",
      "type": "string"
    },
    "proxyConfiguration": {
      "description": "Optional. The actor tries direct access first, then the free Apify datacenter proxy, and only escalates after a real block. You do not need to configure a proxy to run it.",
      "editor": "proxy",
      "sectionCaption": "Proxy",
      "sectionDescription": "Leave empty unless you want to supply your own proxy. Direct access is attempted first.",
      "title": "Proxy configuration",
      "type": "object"
    },
    "query": {
      "description": "What to search for, for example 'hotels in New York', 'restaurants Paris' or 'Eiffel Tower'. The place family is inferred from words such as hotels, restaurants, museums or things to do.",
      "editor": "textfield",
      "prefill": "Eiffel Tower",
      "sectionCaption": "Search",
      "title": "Search query",
      "type": "string"
    },
    "reviewKeyword": {
      "description": "Only return reviews whose text matches this keyword, for example 'pool' or 'breakfast'.",
      "editor": "textfield",
      "title": "Review keyword",
      "type": "string"
    },
    "reviewLanguage": {
      "default": "ANY",
      "description": "Only return reviews written in this language.",
      "editor": "select",
      "enum": [
        "ANY",
        "en",
        "es",
        "de",
        "fr",
        "it",
        "pt",
        "nl",
        "ru",
        "ja",
        "zhCN",
        "zhTW",
        "ko",
        "ar",
        "tr",
        "pl",
        "sv",
        "da",
        "no",
        "fi",
        "cs",
        "el",
        "hu",
        "iw",
        "in",
        "th",
        "vi",
        "ro",
        "uk",
        "bg",
        "hr",
        "sk",
        "sr",
        "sl",
        "lt",
        "lv",
        "et",
        "ca",
        "ms",
        "tl",
        "hi"
      ],
      "enumTitles": [
        "Any language",
        "English",
        "Spanish",
        "German",
        "French",
        "Italian",
        "Portuguese",
        "Dutch",
        "Russian",
        "Japanese",
        "Chinese (Simplified)",
        "Chinese (Traditional)",
        "Korean",
        "Arabic",
        "Turkish",
        "Polish",
        "Swedish",
        "Danish",
        "Norwegian",
        "Finnish",
        "Czech",
        "Greek",
        "Hungarian",
        "Hebrew",
        "Indonesian",
        "Thai",
        "Vietnamese",
        "Romanian",
        "Ukrainian",
        "Bulgarian",
        "Croatian",
        "Slovak",
        "Serbian",
        "Slovenian",
        "Lithuanian",
        "Latvian",
        "Estonian",
        "Catalan",
        "Malay",
        "Filipino",
        "Hindi"
      ],
      "title": "Review language",
      "type": "string"
    },
    "reviewMonth": {
      "default": "ANY",
      "description": "Only return reviews submitted in this month.",
      "editor": "select",
      "enum": [
        "ANY",
        "JANUARY",
        "FEBRUARY",
        "MARCH",
        "APRIL",
        "MAY",
        "JUNE",
        "JULY",
        "AUGUST",
        "SEPTEMBER",
        "OCTOBER",
        "NOVEMBER",
        "DECEMBER"
      ],
      "enumTitles": [
        "Any month",
        "January",
        "February",
        "March",
        "April",
        "May",
        "June",
        "July",
        "August",
        "September",
        "October",
        "November",
        "December"
      ],
      "title": "Month of visit",
      "type": "string"
    },
    "reviewRating": {
      "default": "ANY",
      "description": "Only return reviews with this bubble rating.",
      "editor": "select",
      "enum": [
        "ANY",
        "1",
        "2",
        "3",
        "4",
        "5"
      ],
      "enumTitles": [
        "Any rating",
        "1 star",
        "2 stars",
        "3 stars",
        "4 stars",
        "5 stars"
      ],
      "title": "Review rating",
      "type": "string"
    },
    "reviewSort": {
      "default": "MOST_RECENT",
      "description": "Order of the review stream. Attractions automatically use DETAILED for MOST_RECENT so product reviews do not mix into the attraction's own reviews.",
      "editor": "select",
      "enum": [
        "MOST_RECENT",
        "MOST_HELPFUL",
        "DETAILED"
      ],
      "enumTitles": [
        "Most recent",
        "Most helpful",
        "Detailed"
      ],
      "sectionCaption": "Review filters",
      "sectionDescription": "Optional filters for the review export. They apply only in reviews mode.",
      "title": "Review sort",
      "type": "string"
    },
    "reviewTripType": {
      "default": "ANY",
      "description": "Only return reviews from this traveler type.",
      "editor": "select",
      "enum": [
        "ANY",
        "FAMILY",
        "COUPLES",
        "SOLO",
        "BUSINESS",
        "FRIENDS"
      ],
      "enumTitles": [
        "Any traveler type",
        "Family",
        "Couples",
        "Solo",
        "Business",
        "Friends"
      ],
      "title": "Traveler type",
      "type": "string"
    },
    "startUrls": {
      "description": "Tripadvisor place URLs (Hotel_Review, Restaurant_Review or Attraction_Review) or numeric location IDs. Used by details and reviews modes.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "sectionCaption": "Targets",
      "title": "Place URLs or IDs",
      "type": "array"
    }
  },
  "required": [],
  "schemaVersion": 1,
  "title": "Tripadvisor Place and Review Scraper input",
  "type": "object"
}
