{
  "openapi": "3.0.1",
  "info": {
    "title": "Tripadvisor Scraper - Hotels, Restaurants & Reviews",
    "description": "Scrape Tripadvisor hotels, restaurants, and attractions with full reviews. Extract names, ratings, review text and dates, reviewer profiles, prices, amenities, addresses, and photos. Great for market research and reputation monitoring. Export to JSON, CSV, or Excel.",
    "version": "1.0",
    "x-build-id": "eQbdC5XgPYUm3Vk2D"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nourishing_courier~tripadvisor-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nourishing_courier-tripadvisor-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/nourishing_courier~tripadvisor-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nourishing_courier-tripadvisor-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/nourishing_courier~tripadvisor-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nourishing_courier-tripadvisor-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": {
          "query": {
            "title": "Search Query",
            "type": "string",
            "description": "Destination to search on Tripadvisor (e.g. 'New York', 'Paris', 'Tokyo'). A city is preferred over a state/region with the same name; only places located inside that destination are returned. Start URLs are scraped first; the search fills the rest of Maximum Results.",
            "default": "New York"
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Direct Tripadvisor URLs, scraped before the search query. Supports hotel, restaurant, attraction detail pages (Hotel_Review, Restaurant_Review, Attraction_Review) and category/search URLs.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Maximum Results",
            "minimum": 0,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum total results to extract. Use 0 for unlimited.",
            "default": 5
          },
          "includeHotels": {
            "title": "Include Hotels",
            "type": "boolean",
            "description": "Include hotels when scraping a location",
            "default": true
          },
          "includeRestaurants": {
            "title": "Include Restaurants",
            "type": "boolean",
            "description": "Include restaurants when scraping a location",
            "default": true
          },
          "includeAttractions": {
            "title": "Include Attractions",
            "type": "boolean",
            "description": "Include attractions/things to do when scraping a location",
            "default": true
          },
          "includeVacationRentals": {
            "title": "Include Vacation Rentals",
            "type": "boolean",
            "description": "Include vacation rental listings when scraping a location",
            "default": false
          },
          "includeReviews": {
            "title": "Include Reviews",
            "type": "boolean",
            "description": "Include review data for each place. Reviews are also switched on automatically when 'Max Reviews Per Place' is above 0.",
            "default": false
          },
          "maxReviews": {
            "title": "Max Reviews Per Place",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum reviews to scrape per place (newest first). Any value above 0 turns reviews on. 0 = the default of 20 reviews when 'Include Reviews' is ticked.",
            "default": 0
          },
          "lastReviewDate": {
            "title": "Reviews Since Date (YYYY-MM-DD)",
            "type": "string",
            "description": "Only include reviews posted after this date",
            "default": ""
          },
          "checkInDate": {
            "title": "Hotel Check-in Date (YYYY-MM-DD)",
            "type": "string",
            "description": "Check-in date for hotel price calculations",
            "default": ""
          },
          "checkOutDate": {
            "title": "Hotel Check-out Date (YYYY-MM-DD)",
            "type": "string",
            "description": "Check-out date for hotel price calculations",
            "default": ""
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "es",
              "fr",
              "de",
              "it",
              "pt",
              "nl",
              "ja",
              "ko",
              "zh",
              "ru",
              "ar",
              "sv",
              "da",
              "no",
              "fi",
              "pl",
              "cs",
              "hu",
              "ro",
              "tr",
              "th",
              "vi",
              "id",
              "el",
              "he",
              "hi",
              "uk",
              "bg",
              "hr",
              "sk",
              "sl",
              "lt",
              "lv",
              "et",
              "sr",
              "ca",
              "ms"
            ],
            "type": "string",
            "description": "Language for results",
            "default": "en"
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "JPY",
              "CNY",
              "INR",
              "BRL",
              "MXN",
              "SEK",
              "NOK",
              "DKK",
              "CHF",
              "KRW",
              "SGD",
              "HKD",
              "TWD",
              "THB",
              "MYR",
              "IDR",
              "PHP",
              "VND",
              "NZD",
              "ZAR",
              "AED",
              "SAR",
              "TRY",
              "PLN",
              "CZK",
              "HUF",
              "RON",
              "BGN",
              "HRK",
              "RUB",
              "ILS",
              "EGP",
              "ARS",
              "CLP",
              "COP",
              "PEN"
            ],
            "type": "string",
            "description": "Currency for price data",
            "default": "USD"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings for scraping",
            "default": {
              "useApifyProxy": true
            }
          },
          "maxRetries": {
            "title": "Max Retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum retries for failed requests",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}