{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Hotels Scraper",
    "description": "[💰 $1 / 1K] Extract hotel and vacation rental listings from Google Hotels — nightly and total rates, star class, guest ratings, amenities, images, GPS, and Google Place IDs. Filter by stars, 19 amenities, 12 property types and 10 rental types across 43 countries, 19 languages and 21 currencies.",
    "version": "1.0",
    "x-build-id": "PpK0ded51qyLpcdna"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~google-hotels-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-google-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/solidcode~google-hotels-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-google-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/solidcode~google-hotels-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-google-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": {
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Location-based search queries such as 'hotels in Paris' or 'Bali resorts'. Each query produces its own set of results. Leave empty if using property tokens.",
            "items": {
              "type": "string"
            }
          },
          "propertyTokens": {
            "title": "Property Tokens",
            "type": "array",
            "description": "Google Hotels property tokens for specific properties (obtained from earlier search results). Use these to fetch full property details.",
            "items": {
              "type": "string"
            }
          },
          "checkInDate": {
            "title": "Check-in Date",
            "type": "string",
            "description": "Check-in date in YYYY-MM-DD format. Must be today or a future date."
          },
          "checkOutDate": {
            "title": "Check-out Date",
            "type": "string",
            "description": "Check-out date in YYYY-MM-DD format. Must be after check-in."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Number of adult guests.",
            "default": 2
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "Number of child guests.",
            "default": 0
          },
          "childrenAges": {
            "title": "Children Ages",
            "type": "string",
            "description": "Comma-separated ages of children (e.g., '5,8,12'). Required when Children is greater than 0. Each age must be between 0 and 17."
          },
          "stars": {
            "title": "Star Ratings",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include hotels with these star ratings.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": []
          },
          "amenities": {
            "title": "Required Amenities",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include properties that offer all of these amenities.",
            "items": {
              "type": "string",
              "enum": [
                "free_parking",
                "parking",
                "indoor_pool",
                "outdoor_pool",
                "pool",
                "fitness_center",
                "restaurant",
                "free_breakfast",
                "spa",
                "beach_access",
                "child_friendly",
                "bar",
                "pet_friendly",
                "room_service",
                "free_wifi",
                "air_conditioned",
                "all_inclusive",
                "wheelchair_accessible",
                "ev_charger"
              ],
              "enumTitles": [
                "Free parking",
                "Parking",
                "Indoor pool",
                "Outdoor pool",
                "Pool",
                "Fitness center",
                "Restaurant",
                "Free breakfast",
                "Spa",
                "Beach access",
                "Child-friendly",
                "Bar",
                "Pet-friendly",
                "Room service",
                "Free Wi-Fi",
                "Air-conditioned",
                "All-inclusive available",
                "Wheelchair accessible",
                "EV charger"
              ]
            },
            "default": []
          },
          "propertyTypes": {
            "title": "Hotel Property Types",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include these hotel property types. Ignored when Vacation Rentals mode is enabled.",
            "items": {
              "type": "string",
              "enum": [
                "beach_hotels",
                "boutique_hotels",
                "hostels",
                "inns",
                "motels",
                "resorts",
                "spa_hotels",
                "bed_and_breakfasts",
                "apartment_hotels",
                "minshuku",
                "japanese_business_hotels",
                "ryokan"
              ],
              "enumTitles": [
                "Beach hotels",
                "Boutique hotels",
                "Hostels",
                "Inns",
                "Motels",
                "Resorts",
                "Spa hotels",
                "Bed and breakfasts",
                "Apartment hotels",
                "Minshuku",
                "Japanese-style business hotels",
                "Ryokan"
              ]
            },
            "default": []
          },
          "vacationRentals": {
            "title": "Search Vacation Rentals",
            "type": "boolean",
            "description": "Search vacation rentals (houses, villas, apartments) instead of hotels. Note: you cannot mix hotels and vacation rentals in one search — run two separate searches if needed.",
            "default": false
          },
          "rentalTypes": {
            "title": "Rental Types",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include these rental types. Applies when Vacation Rentals is enabled.",
            "items": {
              "type": "string",
              "enum": [
                "apartments",
                "bungalows",
                "cabins",
                "chalets",
                "cottages",
                "gites",
                "holiday_villages",
                "houses",
                "houseboats",
                "villas"
              ],
              "enumTitles": [
                "Apartments",
                "Bungalows",
                "Cabins",
                "Chalets",
                "Cottages",
                "Gîtes",
                "Holiday villages",
                "Houses",
                "Houseboats",
                "Villas"
              ]
            },
            "default": []
          },
          "country": {
            "title": "Country",
            "enum": [
              "us",
              "uk",
              "ca",
              "au",
              "nz",
              "ie",
              "fr",
              "de",
              "es",
              "it",
              "nl",
              "be",
              "pt",
              "ch",
              "at",
              "se",
              "no",
              "dk",
              "fi",
              "pl",
              "jp",
              "kr",
              "cn",
              "hk",
              "tw",
              "sg",
              "my",
              "th",
              "id",
              "ph",
              "vn",
              "in",
              "br",
              "mx",
              "ar",
              "cl",
              "co",
              "ae",
              "sa",
              "tr",
              "il",
              "za",
              "eg"
            ],
            "type": "string",
            "description": "Country code (gl) for localizing results. Use ISO 3166-1 alpha-2 (e.g., 'us', 'uk', 'fr').",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "fr",
              "de",
              "es",
              "it",
              "pt",
              "nl",
              "pl",
              "tr",
              "ru",
              "ja",
              "ko",
              "zh-CN",
              "zh-TW",
              "ar",
              "he",
              "th",
              "vi",
              "id"
            ],
            "type": "string",
            "description": "Language code (hl) for result text. Use ISO 639-1 (e.g., 'en', 'fr', 'de').",
            "default": "en"
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "CAD",
              "AUD",
              "NZD",
              "JPY",
              "CNY",
              "HKD",
              "SGD",
              "INR",
              "BRL",
              "MXN",
              "CHF",
              "SEK",
              "NOK",
              "DKK",
              "PLN",
              "TRY",
              "AED",
              "ZAR"
            ],
            "type": "string",
            "description": "Currency code for prices (ISO 4217).",
            "default": "USD"
          },
          "maxPages": {
            "title": "Maximum Pages per Query",
            "minimum": 0,
            "type": "integer",
            "description": "How far to keep going past the first page. Page 1 is Google's opening result block, typically 18-20 properties. Each page after that comes from Google's 'nearby properties' expansion and adds roughly 6-17 new properties once duplicates are removed, so 3 usually returns 40-50 properties in total on an unfiltered query. Set 0 to keep expanding until Google stops offering new properties. Ignored (first page only) when an amenity, property type or rental type filter is set, or when the party is not the default 2 adults — Google applies those to the first page and nothing after it, so expect 18-20 results from those searches whatever you set here. You are billed per result, never per page.",
            "default": 1
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}