{
  "openapi": "3.0.1",
  "info": {
    "title": "Tripadvisor Reviews Scraper",
    "description": "Tripadvisor reviews of hotels, restaurants, attractions and tours, with full history, owner responses, sub-ratings and photos. Filter by stars, language, trip type, month, keyword or date, or get only new reviews. $0.40 per 1,000.",
    "version": "1.0",
    "x-build-id": "TgnQuHl75RyZWfHgs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/heyitsgautham~tripadvisor-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-heyitsgautham-tripadvisor-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/heyitsgautham~tripadvisor-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-heyitsgautham-tripadvisor-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/heyitsgautham~tripadvisor-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-heyitsgautham-tripadvisor-reviews-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "Tripadvisor URLs",
            "type": "array",
            "description": "Tripadvisor pages of hotels, restaurants, attractions or tours, from any Tripadvisor country site, such as https://www.tripadvisor.com/Hotel_Review-g60763-d93450-Reviews-Hyatt_Grand_Central_New_York-New_York_City_New_York.html. A review page link or the place's numeric ID (the number after -d) works too. City and list pages have no reviews of their own. Leave empty and use Place names below if you have no URLs.",
            "items": {
              "type": "string"
            }
          },
          "placeNames": {
            "title": "Place names",
            "type": "array",
            "description": "Names as you would type them into Tripadvisor's search box, best with the city, such as Le Bernardin New York or Louvre Museum Paris. The actor takes the search result that holds the name's words, and every row says which place that was in matchedPlace. A name with no matching result gives a free not_found row. A URL is always the most precise input.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "placeType": {
            "title": "Search names among",
            "enum": [
              "any",
              "hotel",
              "restaurant",
              "attraction"
            ],
            "type": "string",
            "description": "Limits the name search to one kind of place, for names such as Burj Al Arab that are both a hotel and an attraction. URLs are not affected.",
            "default": "any"
          },
          "maxReviewsPerPlace": {
            "title": "Max reviews per place",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stops after this many reviews for each place. You pay only for reviews returned. Set it high, such as 100000, for a place's full history.",
            "default": 100
          },
          "sortBy": {
            "title": "Sort reviews by",
            "enum": [
              "newest",
              "detailed"
            ],
            "type": "string",
            "description": "Newest first is the site's Most recent order. Detailed is Tripadvisor's Detailed reviews order, longer reviews about themes first.",
            "default": "newest"
          },
          "ratings": {
            "title": "Star ratings",
            "type": "array",
            "description": "Only reviews with these ratings, from 1 to 5. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": []
          },
          "languages": {
            "title": "Review languages",
            "type": "array",
            "description": "Only reviews in these languages, as codes such as en, de, fr, es, it, ja, zh-CN or zh-TW. Leave empty for every language, each review in the language it was written in. With a language set, Tripadvisor also lists reviews it machine-translated into it, marked machineTranslated. Turn off the next option to drop those.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeMachineTranslations": {
            "title": "Include machine-translated reviews",
            "type": "boolean",
            "description": "Off drops reviews Tripadvisor machine-translated, so you get only reviews written in the language you asked for. Dropped reviews are not charged.",
            "default": true
          },
          "tripTypes": {
            "title": "Traveler types",
            "type": "array",
            "description": "Only reviews from these kinds of trip. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "family",
                "couples",
                "solo",
                "business",
                "friends"
              ],
              "enumTitles": [
                "Family",
                "Couples",
                "Solo",
                "Business",
                "Friends"
              ]
            },
            "default": []
          },
          "visitMonths": {
            "title": "Time of year",
            "type": "array",
            "description": "Only reviews of visits in these months, 1 for January to 12 for December, in any year. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12"
              ],
              "enumTitles": [
                "January",
                "February",
                "March",
                "April",
                "May",
                "June",
                "July",
                "August",
                "September",
                "October",
                "November",
                "December"
              ]
            },
            "default": []
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Only reviews that mention this word or phrase, through Tripadvisor's own review search, such as breakfast or noise."
          },
          "onlyNewSinceLastRun": {
            "title": "Only new since the last run",
            "type": "boolean",
            "description": "For scheduled runs. Returns only reviews this actor has not returned to you before for the same place and filters, and nothing older than the newest one it returned last time. The first run returns the usual results and remembers them. Works best with newest-first order, where the run stops at the first page with nothing new. The memory is a key-value store named tripadvisor-reviews-scraper-monitor in your Apify account.",
            "default": false
          },
          "publishedAfter": {
            "title": "Published after",
            "pattern": "^$|^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$|^\\d+\\s*(minute|hour|day|week|month|year)s?(\\s+ago)?$",
            "type": "string",
            "description": "Only reviews published on or after this date. Use a date such as 2026-10-01, an ISO time such as 2026-10-01T12:00:00Z (UTC), or a relative value such as 7 days, meaning the last 7 days. With newest-first order the run stops as soon as it reaches older ones."
          },
          "publishedBefore": {
            "title": "Published before",
            "pattern": "^$|^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$|^\\d+\\s*(minute|hour|day|week|month|year)s?(\\s+ago)?$",
            "type": "string",
            "description": "Only reviews published before this date, in the same formats. Together with Published after it makes a date window."
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many places to scrape in parallel.",
            "default": 5
          },
          "useProxy": {
            "title": "Use residential proxy",
            "type": "boolean",
            "description": "Leave on. Each place runs on its own residential IP, and a failed call moves to a fresh one.",
            "default": true
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}