{
  "openapi": "3.0.1",
  "info": {
    "title": "Tripadvisor Scraper",
    "description": "This unofficial Tripadvisor API is a data extraction tool able to get data on hotels, restaurants, things to do, vacation rentals, attractions, tours, and public trips. Get pricing, contact details, amenities, awards, ratings, and more. Download your data in Excel, JSON, CSV, and other formats.",
    "version": "0.0",
    "x-build-id": "simi4j4DE5EnDSLq0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maxcopell~tripadvisor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maxcopell-tripadvisor",
        "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/maxcopell~tripadvisor/runs": {
      "post": {
        "operationId": "runs-sync-maxcopell-tripadvisor",
        "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/maxcopell~tripadvisor/run-sync": {
      "post": {
        "operationId": "run-sync-maxcopell-tripadvisor",
        "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": {
          "query": {
            "title": "Search Query",
            "type": "string",
            "description": "You can enter a location name or a keyword here. If you search for a location, the scraper will take the first 'Location' type result and scrape hotels, restaurants, and attractions for that location. If you search for a keyword, the scraper will only scrape places directly listed on the search results page (it won't crawl destinations listed among those results)."
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "URLs to start with instead of a location name. You can use URLs with search query included (containing 'Search?q='), tourism URLs or URLs pointing to a concrete hotel, restaurant, or attraction (containing 'Hotel_Review', 'Restaurant_Review', or 'Attraction_Review'). URLs of **public** trips are supported as well. The Actor can also handle category URLs for all 3 kinds of places, including search filters. Just note that the Actor also scrapes nearby results for hotels. You can tell them apart from results strictly matching the search filters using `isNearbyResult` output field.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItemsPerQuery": {
            "title": "Max results (per search query/start URL) ",
            "minimum": 1,
            "type": "integer",
            "description": "Limit the number of places to be scraped per search query/start URL. If you want to set a limit across all search queries use 'Options' -> 'Maximum charged results'. Set this field to a value larger than `3000` to activate the *'deeper city search'*."
          },
          "includeTags": {
            "title": "Include review tags",
            "type": "boolean",
            "description": "Include review tags",
            "default": true
          },
          "includeNearbyResults": {
            "title": "Include nearby results",
            "type": "boolean",
            "description": "If checked, the results will include not only results strictly matching your search criteria but also their nearby results. This feature is currently available only for hotels and restaurants.",
            "default": false
          },
          "includeAttractions": {
            "title": "Include things to do",
            "type": "boolean",
            "description": "If checked, the results will include attractions/things to do for a given location.",
            "default": true
          },
          "includeRestaurants": {
            "title": "Include restaurants",
            "type": "boolean",
            "description": "If checked, the results will include restaurants for a given location.",
            "default": true
          },
          "includeHotels": {
            "title": "Include hotels",
            "type": "boolean",
            "description": "If checked, the results will include hotels for a given location.",
            "default": true
          },
          "checkInDate": {
            "title": "Hotel check-in date",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
            "type": "string",
            "description": "Hotel rooms prices will be calculated for this check-in date. Select the date in format YYYY-MM-DD or {number} {unit} *(e.g. '3 days' or '1 week')*"
          },
          "checkOutDate": {
            "title": "Hotel check-out date",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
            "type": "string",
            "description": "Hotel rooms prices will be calculated for this check-out date. Select the date in format YYYY-MM-DD or {number} {unit} *(e.g. '3 days' or '1 week')*"
          },
          "includePriceOffers": {
            "title": "Include price offers for hotels (currently under maintanence)",
            "type": "boolean",
            "description": "Check this field if you want to extract price offers for hotel listings. Note that the available offers depend on `checkInDate` and `checkOutDate` values.",
            "default": false
          },
          "includeAiReviewsSummary": {
            "title": "Include AI reviews summary",
            "type": "boolean",
            "description": "Check this field if you want to extract AI reviews summary for hotel listings. Note that the AI reviews summary is available only for some hotels. Also, note that extracting AI summaries increases the number of request retries, leading to slower runs.",
            "default": false
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "ab",
              "aa",
              "af",
              "ak",
              "sq",
              "am",
              "ar",
              "an",
              "hy",
              "as",
              "av",
              "ae",
              "ay",
              "az",
              "bm",
              "ba",
              "eu",
              "be",
              "bn",
              "bh",
              "bi",
              "bs",
              "br",
              "bg",
              "my",
              "ca",
              "ch",
              "ce",
              "ny",
              "zh",
              "cv",
              "kw",
              "co",
              "cr",
              "hr",
              "cs",
              "da",
              "dv",
              "nl",
              "eo",
              "et",
              "ee",
              "fo",
              "fj",
              "fi",
              "fr",
              "ff",
              "gl",
              "ka",
              "de",
              "el",
              "gn",
              "gu",
              "ht",
              "ha",
              "he",
              "iw",
              "hz",
              "hi",
              "ho",
              "hu",
              "ia",
              "id",
              "ie",
              "ga",
              "ig",
              "ik",
              "io",
              "is",
              "it",
              "iu",
              "ja",
              "jv",
              "kl",
              "kn",
              "kr",
              "ks",
              "kk",
              "km",
              "ki",
              "rw",
              "ky",
              "kv",
              "kg",
              "ko",
              "ku",
              "kj",
              "la",
              "lb",
              "lg",
              "li",
              "ln",
              "lo",
              "lt",
              "lu",
              "lv",
              "gv",
              "mk",
              "mg",
              "ms",
              "ml",
              "mt",
              "mi",
              "mr",
              "mh",
              "mn",
              "na",
              "nv",
              "nb",
              "nd",
              "ne",
              "ng",
              "nn",
              "no",
              "ii",
              "nr",
              "oc",
              "oj",
              "cu",
              "om",
              "or",
              "os",
              "pa",
              "pi",
              "fa",
              "pl",
              "ps",
              "pt",
              "qu",
              "rm",
              "rn",
              "ro",
              "ru",
              "sa",
              "sc",
              "sd",
              "se",
              "sm",
              "sg",
              "sr",
              "gd",
              "sn",
              "si",
              "sk",
              "sl",
              "so",
              "st",
              "es",
              "su",
              "sw",
              "ss",
              "sv",
              "ta",
              "te",
              "tg",
              "th",
              "ti",
              "bo",
              "tk",
              "tl",
              "tn",
              "to",
              "tr",
              "ts",
              "tt",
              "tw",
              "ty",
              "ug",
              "uk",
              "ur",
              "uz",
              "ve",
              "vi",
              "vo",
              "wa",
              "cy",
              "wo",
              "fy",
              "xh",
              "yi",
              "yo",
              "za"
            ],
            "type": "string",
            "description": "Select the desired language",
            "default": "en"
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "CAD",
              "EUR",
              "AED",
              "AFN",
              "ALL",
              "AMD",
              "ARS",
              "AUD",
              "AZN",
              "BAM",
              "BDT",
              "BGN",
              "BHD",
              "BIF",
              "BND",
              "BOB",
              "BRL",
              "BWP",
              "BYN",
              "BZD",
              "CDF",
              "CHF",
              "CLP",
              "CNY",
              "COP",
              "CRC",
              "CVE",
              "CZK",
              "DJF",
              "DKK",
              "DOP",
              "DZD",
              "EEK",
              "EGP",
              "ERN",
              "ETB",
              "GBP",
              "GEL",
              "GHS",
              "GNF",
              "GTQ",
              "HKD",
              "HNL",
              "HRK",
              "HUF",
              "IDR",
              "ILS",
              "INR",
              "IQD",
              "IRR",
              "ISK",
              "JMD",
              "JOD",
              "JPY",
              "KES",
              "KHR",
              "KMF",
              "KRW",
              "KWD",
              "KZT",
              "LBP",
              "LKR",
              "LTL",
              "LVL",
              "LYD",
              "MAD",
              "MDL",
              "MGA",
              "MKD",
              "MMK",
              "MOP",
              "MUR",
              "MXN",
              "MYR",
              "MZN",
              "NAD",
              "NGN",
              "NIO",
              "NOK",
              "NPR",
              "NZD",
              "OMR",
              "PAB",
              "PEN",
              "PHP",
              "PKR",
              "PLN",
              "PYG",
              "QAR",
              "RON",
              "RSD",
              "RUB",
              "RWF",
              "SAR",
              "SDG",
              "SEK",
              "SGD",
              "SOS",
              "SYP",
              "THB",
              "TND",
              "TOP",
              "TRY",
              "TTD",
              "TWD",
              "TZS",
              "UAH",
              "UGX",
              "UYU",
              "UZS",
              "VEF",
              "VND",
              "XAF",
              "XOF",
              "YER",
              "ZAR",
              "ZMK",
              "ZWL"
            ],
            "type": "string",
            "description": "Select the desired currency",
            "default": "USD"
          },
          "maxPhotosPerPlace": {
            "title": "Number of additional photos per place to extract ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Set the number of photos per place you expect to scrape."
          },
          "photosType": {
            "title": "Photos Type",
            "enum": [
              "fromEveryone",
              "fromManagement",
              "fromTravelers"
            ],
            "type": "string",
            "description": "Filter photos by source. Choose to extract photos from everyone, only from management, or only from travelers.",
            "default": "fromEveryone"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}