{
  "openapi": "3.0.1",
  "info": {
    "title": "Booking.com Hotels Scraper: Prices, Ratings & Review Scores",
    "description": "Scrape Booking.com hotels for any city, region or landmark and your dates: price for the stay, review score and count, stars, address, coordinates, room offered, free cancellation, meal plan and distance. Optional facilities and nearby places. No login.",
    "version": "0.1",
    "x-build-id": "jsHpuDDbQvacyuaJA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/themineworks~booking-hotels-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-themineworks-booking-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/themineworks~booking-hotels-scraper/runs": {
      "post": {
        "operationId": "runs-sync-themineworks-booking-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/themineworks~booking-hotels-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-themineworks-booking-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": {
          "destinations": {
            "title": "Destinations",
            "type": "array",
            "description": "One per line. A place name as you would type it in Booking's search box (a city such as \"Lisbon\", a region such as \"Bali\", a district such as \"Manhattan\" or a landmark such as \"Eiffel Tower\"; Booking's own first suggestion is used), or a booking.com search results link copied from your browser. A link keeps its own dates, guests, sort and filters.",
            "default": [
              "Lisbon"
            ],
            "items": {
              "type": "string"
            }
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "YYYY-MM-DD. Leave empty to search 30 days from today."
          },
          "checkOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "YYYY-MM-DD. Leave empty for a stay of the number of nights below."
          },
          "nights": {
            "title": "Nights (when no check-out date)",
            "minimum": 1,
            "maximum": 90,
            "type": "integer",
            "description": "Length of the stay when no check-out date is given.",
            "default": 2
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Adult guests in total.",
            "default": 2
          },
          "childrenAges": {
            "title": "Children's ages",
            "type": "array",
            "description": "One age per child, 0 to 17 (for example 5 and 9). Booking prices family stays by age. Leave empty for no children.",
            "items": {
              "type": "string"
            }
          },
          "rooms": {
            "title": "Rooms",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Rooms needed.",
            "default": 1
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Three letter currency code for prices, for example USD, EUR, GBP, INR, JPY.",
            "default": "USD"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "popularity",
              "price_lowest",
              "review_score",
              "stars_highest",
              "stars_lowest",
              "distance"
            ],
            "type": "string",
            "description": "The order Booking returns properties in.",
            "default": "popularity"
          },
          "starRatings": {
            "title": "Star ratings",
            "type": "array",
            "description": "Only properties with these star ratings. Leave empty for any.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "minReviewScore": {
            "title": "Minimum review score",
            "enum": [
              "",
              "6",
              "7",
              "8",
              "9"
            ],
            "type": "string",
            "description": "Only properties with at least this guest review score.",
            "default": ""
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Only these kinds of property. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "hotels",
                "apartments",
                "hostels",
                "resorts",
                "bed_and_breakfasts",
                "villas",
                "guest_houses",
                "aparthotels",
                "holiday_homes",
                "homestays"
              ],
              "enumTitles": [
                "Hotels",
                "Apartments",
                "Hostels",
                "Resorts",
                "Bed and breakfasts",
                "Villas",
                "Guest houses",
                "Aparthotels",
                "Holiday homes",
                "Homestays"
              ]
            }
          },
          "freeCancellationOnly": {
            "title": "Free cancellation only",
            "type": "boolean",
            "description": "Only properties offering free cancellation for these dates.",
            "default": false
          },
          "breakfastIncluded": {
            "title": "Breakfast included only",
            "type": "boolean",
            "description": "Only properties whose offer includes breakfast.",
            "default": false
          },
          "minPricePerNight": {
            "title": "Minimum price per night",
            "minimum": 0,
            "type": "integer",
            "description": "In the currency above. Leave empty for no minimum."
          },
          "maxPricePerNight": {
            "title": "Maximum price per night",
            "minimum": 1,
            "type": "integer",
            "description": "In the currency above. Leave empty for no maximum."
          },
          "maxHotelsPerDestination": {
            "title": "Properties per destination",
            "minimum": 10,
            "maximum": 1000,
            "type": "integer",
            "description": "Most properties to return for each destination, 10 to 1,000. You pay per property delivered.",
            "default": 100
          },
          "includeDetails": {
            "title": "Add hotel page details",
            "type": "boolean",
            "description": "Adds the full address with postcode, review sub scores (staff, cleanliness, comfort, location, value, wifi), all facilities, languages spoken, and nearby landmarks, airports, metro, train, bus and beaches with distances. One extra call per property, no extra charge.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}