{
  "openapi": "3.0.1",
  "info": {
    "title": "Tripadvisor Hotels Scraper",
    "description": "Scrape every hotel Tripadvisor lists for a city, with nightly prices for your dates and guests. Just add a city and get name, rating, review count, star class, ranking, cheapest price and provider, amenities, address, phone and coordinates. Filter by class, type, amenity, rating and price.",
    "version": "1.0",
    "x-build-id": "cst1nfNymERkTveZf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/boncross~tripadvisor-hotels-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-boncross-tripadvisor-hotels-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/boncross~tripadvisor-hotels-scraper/runs": {
      "post": {
        "operationId": "runs-sync-boncross-tripadvisor-hotels-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/boncross~tripadvisor-hotels-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-boncross-tripadvisor-hotels-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": {
          "locations": {
            "title": "Cities",
            "type": "array",
            "description": "The cities to list hotels for. Paste a Tripadvisor link for the city (any page of it, for example its Hotels page), its id (g187147), or its name (Paris, 東京, New York City). Regions and countries are not lists: give a city.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs (bulk upload)",
            "type": "array",
            "description": "Tripadvisor city links, with the option to load them in bulk from a file, a Google Sheet or a remote list. Combined with anything in the list above.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItemsPerLocation": {
            "title": "Maximum hotels per city",
            "minimum": 0,
            "type": "integer",
            "description": "How many hotels to return for each city, in the order of the sort you pick. Zero means every one the site lists.",
            "default": 100
          },
          "maxItems": {
            "title": "Maximum hotels for the whole run",
            "minimum": 0,
            "type": "integer",
            "description": "A run-wide ceiling on hotels, across every city. Zero means no limit.",
            "default": 0
          },
          "checkIn": {
            "title": "Check-in",
            "type": "string",
            "description": "Arrival date, YYYY-MM-DD. Set with check-out for dated prices."
          },
          "checkOut": {
            "title": "Check-out",
            "type": "string",
            "description": "Departure date, YYYY-MM-DD."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 32,
            "type": "integer",
            "description": "Adults in total.",
            "default": 2
          },
          "rooms": {
            "title": "Rooms",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Rooms to price.",
            "default": 1
          },
          "childrenAges": {
            "title": "Children's ages",
            "type": "array",
            "description": "One entry per child, their age at check-in (0-17). Leave empty for adults only.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "popularity",
              "bestValue",
              "priceLowToHigh",
              "distanceToCenter"
            ],
            "type": "string",
            "description": "Traveler ranked (the default) is Tripadvisor's ranking by reviews and is steady from page to page, so a long list comes back whole. Best value is Tripadvisor's own blend, re-ranked while partners' prices arrive: on a long list some hotels shift between pages and can be missed.",
            "default": "popularity"
          },
          "stars": {
            "title": "Hotel class",
            "type": "array",
            "description": "Only hotels of these star classes.",
            "items": {
              "type": "string",
              "enum": [
                "5",
                "4",
                "3",
                "2",
                "1"
              ],
              "enumTitles": [
                "5 stars",
                "4 stars",
                "3 stars",
                "2 stars",
                "1 star"
              ]
            }
          },
          "minRating": {
            "title": "Minimum traveler rating",
            "enum": [
              "3",
              "3.5",
              "4",
              "4.5"
            ],
            "type": "string",
            "description": "Only hotels rated at least this, out of 5."
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "For example Hotels, B&Bs & Inns, Hostels, Condos, Resorts, Specialty lodgings.",
            "items": {
              "type": "string"
            }
          },
          "amenities": {
            "title": "Amenities",
            "type": "array",
            "description": "For example Pool, Free Wifi, Free parking, Spa, Fitness center, Pets Allowed.",
            "items": {
              "type": "string"
            }
          },
          "neighborhoods": {
            "title": "Neighborhoods",
            "type": "array",
            "description": "Neighbourhood names as the city's Hotels page lists them, for example Le Marais.",
            "items": {
              "type": "string"
            }
          },
          "styles": {
            "title": "Hotel styles",
            "type": "array",
            "description": "For example Budget, Luxury, Family, Romantic, Boutique, Business.",
            "items": {
              "type": "string"
            }
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Hotel brands, for example ibis or Mercure.",
            "items": {
              "type": "string"
            }
          },
          "travelersChoice": {
            "title": "Travelers' Choice winners only",
            "type": "boolean",
            "description": "Only hotels with a Travelers' Choice award.",
            "default": false
          },
          "bestOfTheBest": {
            "title": "Best of the Best winners only",
            "type": "boolean",
            "description": "Only hotels with a Travelers' Choice Best of the Best award.",
            "default": false
          },
          "minPrice": {
            "title": "Minimum price per night",
            "minimum": 0,
            "type": "integer",
            "description": "In the currency below. Hotels with no price for the stay are left out when a price limit is set."
          },
          "maxPrice": {
            "title": "Maximum price per night",
            "minimum": 0,
            "type": "integer",
            "description": "In the currency below."
          },
          "lat": {
            "title": "Latitude",
            "type": "string",
            "description": "Decimal degrees, for example 48.8584. Set with longitude to search near a point."
          },
          "lng": {
            "title": "Longitude",
            "type": "string",
            "description": "Decimal degrees, for example 2.2945."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How far from the point, in kilometres. Rows further away are left out.",
            "default": 2
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Three-letter code, for example USD, EUR or JPY.",
            "default": "USD"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}