{
  "openapi": "3.0.1",
  "info": {
    "title": "Priceline Hotel Reviews Scraper",
    "description": "Scrape hotel reviews from Priceline: review text, pros/cons, reviewer info, and individual ratings. Get guest scores, category ratings, GPS coordinates, and neighborhood data for 107 cities or specific URLs. Export data, run via API, schedule runs, or integrate with other tools.",
    "version": "0.7",
    "x-build-id": "BnS9YntLsolSLPTIE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mrbridge~priceline-hotel-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mrbridge-priceline-hotel-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/mrbridge~priceline-hotel-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-mrbridge-priceline-hotel-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/mrbridge~priceline-hotel-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-mrbridge-priceline-hotel-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": {
          "inputType": {
            "title": "Input Type",
            "enum": [
              "city",
              "country",
              "urls",
              "ids"
            ],
            "type": "string",
            "description": "Choose how to pick hotels. City Search (default) pulls hotels from a city; Country Search scrapes all vetted cities in a country; switch to URLs or IDs to scrape specific hotels.",
            "default": "city"
          },
          "searchCity": {
            "title": "City",
            "enum": [
              "Buenos Aires",
              "Sydney",
              "Melbourne",
              "Vienna",
              "Brussels",
              "São Paulo",
              "Rio de Janeiro",
              "Toronto",
              "Vancouver",
              "Montreal",
              "Santiago",
              "Shanghai",
              "Beijing",
              "Guangzhou",
              "Shenzhen",
              "Hong Kong",
              "Bogotá",
              "Prague",
              "Copenhagen",
              "Cairo",
              "Helsinki",
              "Paris",
              "Nice",
              "Lyon",
              "Berlin",
              "Munich",
              "Frankfurt",
              "Hamburg",
              "Athens",
              "Budapest",
              "Mumbai",
              "Delhi",
              "Bangalore",
              "Chennai",
              "Jakarta",
              "Bali",
              "Dublin",
              "Tel Aviv",
              "Rome",
              "Milan",
              "Florence",
              "Venice",
              "Tokyo",
              "Osaka",
              "Kyoto",
              "Nairobi",
              "Kuala Lumpur",
              "Mexico City",
              "Cancún",
              "Marrakech",
              "Amsterdam",
              "Auckland",
              "Lagos",
              "Oslo",
              "Lima",
              "Manila",
              "Warsaw",
              "Kraków",
              "Lisbon",
              "Porto",
              "Doha",
              "Riyadh",
              "Jeddah",
              "Singapore",
              "Cape Town",
              "Johannesburg",
              "Seoul",
              "Busan",
              "Barcelona",
              "Madrid",
              "Stockholm",
              "Zurich",
              "Geneva",
              "Taipei",
              "Bangkok",
              "Phuket",
              "Istanbul",
              "Dubai",
              "Abu Dhabi",
              "London",
              "Edinburgh",
              "Manchester",
              "New York",
              "Los Angeles",
              "Chicago",
              "Miami",
              "San Francisco",
              "Las Vegas",
              "Houston",
              "Washington DC",
              "Boston",
              "Seattle",
              "Orlando",
              "Denver",
              "Nashville",
              "San Diego",
              "Atlanta",
              "Dallas",
              "Philadelphia",
              "Phoenix",
              "Austin",
              "New Orleans",
              "Honolulu",
              "Portland",
              "Minneapolis",
              "Tampa",
              "Charlotte"
            ],
            "type": "string",
            "description": "Select a city to search for hotels (107 cities, each labeled with its country). Used when Input Type is 'City Search'. Defaults to New York if left empty."
          },
          "searchCountry": {
            "title": "Country",
            "enum": [
              "Argentina",
              "Australia",
              "Austria",
              "Belgium",
              "Brazil",
              "Canada",
              "Chile",
              "China",
              "Colombia",
              "Czech Republic",
              "Denmark",
              "Egypt",
              "Finland",
              "France",
              "Germany",
              "Greece",
              "Hungary",
              "India",
              "Indonesia",
              "Ireland",
              "Israel",
              "Italy",
              "Japan",
              "Kenya",
              "Malaysia",
              "Mexico",
              "Morocco",
              "Netherlands",
              "New Zealand",
              "Nigeria",
              "Norway",
              "Peru",
              "Philippines",
              "Poland",
              "Portugal",
              "Qatar",
              "Saudi Arabia",
              "Singapore",
              "South Africa",
              "South Korea",
              "Spain",
              "Sweden",
              "Switzerland",
              "Taiwan",
              "Thailand",
              "Turkey",
              "UAE",
              "United Kingdom",
              "United States"
            ],
            "type": "string",
            "description": "Select a country to search. The scraper pulls hotels from the country's vetted cities. Used when Input Type is 'Country Search'."
          },
          "hotelUrls": {
            "title": "Hotel URLs",
            "type": "array",
            "description": "Add one or more Priceline hotel page URLs. The hotel ID is extracted automatically (e.g. priceline.com/relax/at/71741505). Used when Input Type is 'Hotel URLs'.",
            "items": {
              "type": "string"
            }
          },
          "hotelIds": {
            "title": "Hotel IDs",
            "type": "array",
            "description": "Add Priceline numeric hotel IDs directly. Find the ID at the end of any hotel URL: priceline.com/relax/at/{hotelId}. Used when Input Type is 'Hotel IDs'.",
            "items": {
              "type": "string"
            }
          },
          "maxHotels": {
            "title": "Max Hotels",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Set the maximum number of hotels to extract from city search results (applied after star and score filters). Defaults to 10 for a fast, low-cost run; raise it up to 500 to scrape a full city.",
            "default": 10
          },
          "minStars": {
            "title": "Min Star Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Filter city search results by minimum star rating (0-5). Defaults to 0 (no filter).",
            "default": 0
          },
          "minScore": {
            "title": "Min Review Score",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Filter city search results by minimum overall review score (0-10). Defaults to 0 (no filter).",
            "default": 0
          },
          "maxReviewsPerHotel": {
            "title": "Max Reviews Per Hotel",
            "minimum": 0,
            "type": "integer",
            "description": "Set the maximum number of guest reviews to collect per hotel. Reviews are fetched in pages of 100 (one proxy call per page). Set to 0 to fetch ALL available reviews up to a 1000-review hard cap (to prevent runaway proxy costs on hotels with thousands of reviews). The output row carries a `reviewsTruncated: true` flag when the actual count is below the server-side total. Defaults to 100.",
            "default": 100
          },
          "checkIn": {
            "title": "Check-In Date",
            "type": "string",
            "description": "Set the check-in date in YYYY-MM-DD format. Defaults to tomorrow."
          },
          "checkOut": {
            "title": "Check-Out Date",
            "type": "string",
            "description": "Set the check-out date in YYYY-MM-DD format. Defaults to the day after tomorrow."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}