{
  "openapi": "3.0.1",
  "info": {
    "title": "Priceline Hotel Details & Reviews Scraper",
    "description": "Extract complete hotel profiles from Priceline: ratings, reviews, room types, amenities, photos, policies, and nearby attractions. AI-training-ready structured data.",
    "version": "0.4",
    "x-build-id": "wPQDZiTYqzBleILhV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mrbridge~priceline-hotel-details-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mrbridge-priceline-hotel-details-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-details-scraper/runs": {
      "post": {
        "operationId": "runs-sync-mrbridge-priceline-hotel-details-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-details-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-mrbridge-priceline-hotel-details-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": [
              "urls",
              "ids",
              "city"
            ],
            "type": "string",
            "description": "Choose how to specify which hotels to scrape. Use URLs or IDs for specific hotels, or City Search to discover hotels in a city.",
            "default": "urls"
          },
          "hotelUrls": {
            "title": "Hotel URLs",
            "type": "array",
            "description": "One or more Priceline hotel page URLs. The hotel ID is extracted automatically from the URL (e.g. priceline.com/relax/at/71741505).",
            "items": {
              "type": "string"
            }
          },
          "hotelIds": {
            "title": "Hotel IDs",
            "type": "array",
            "description": "Priceline numeric hotel IDs. Find the ID at the end of any hotel URL: priceline.com/relax/at/{hotelId}.",
            "items": {
              "type": "string"
            }
          },
          "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). Set Input Type to 'City Search' to use this field."
          },
          "maxHotels": {
            "title": "Max Hotels",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Optional. Maximum number of hotels to extract from city search results (applied after star and score filters). Default: 100.",
            "default": 100
          },
          "minStars": {
            "title": "Min Star Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Optional. Minimum star rating filter for city search results (0-5). Default: 0 (no filter).",
            "default": 0
          },
          "minScore": {
            "title": "Min Review Score",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "Optional. Minimum overall review score filter for city search results (0-10). Default: 0 (no filter).",
            "default": 0
          },
          "maxReviewsPerHotel": {
            "title": "Max Reviews Per Hotel",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Maximum number of guest reviews to collect per hotel. Set to 0 for all available reviews. Default: 100.",
            "default": 100
          },
          "discoverMode": {
            "title": "Discovery Mode",
            "type": "boolean",
            "description": "Save raw API responses and search HTML to Key-Value Store for debugging. Keep disabled in production.",
            "default": false
          },
          "checkIn": {
            "title": "Check-In Date",
            "type": "string",
            "description": "Optional. Check-in date in YYYY-MM-DD format. Defaults to tomorrow."
          },
          "checkOut": {
            "title": "Check-Out Date",
            "type": "string",
            "description": "Optional. Check-out date in YYYY-MM-DD format. Defaults to 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}