{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Hotels Prices API: OTA Rates by Date",
    "description": "Google Hotels prices API: nightly and total rates with taxes from Booking, Expedia and hotel sites, for any city and dates. Compare OTA rates. Pay per hotel.",
    "version": "0.1",
    "x-build-id": "oJrVqv1xprLtT0k9M"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ocius-data~google-hotels-reliable/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ocius-data-google-hotels-reliable",
        "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/ocius-data~google-hotels-reliable/runs": {
      "post": {
        "operationId": "runs-sync-ocius-data-google-hotels-reliable",
        "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/ocius-data~google-hotels-reliable/run-sync": {
      "post": {
        "operationId": "run-sync-ocius-data-google-hotels-reliable",
        "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",
        "required": [
          "destinations"
        ],
        "properties": {
          "destinations": {
            "title": "Destinations",
            "minItems": 1,
            "type": "array",
            "description": "Cities, areas or hotel names, one per line. For example \"Bogotá\", \"Madrid, Spain\", \"Hotel Tequendama Bogotá\". You are charged once per hotel with a price; destinations without results are free.",
            "items": {
              "type": "string"
            }
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "Format YYYY-MM-DD. Leave empty to use the date 14 days from today."
          },
          "checkOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "Format YYYY-MM-DD, after the check-in date. Stays of up to 30 nights. Leave empty for a 2-night stay."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Number of adult guests.",
            "default": 2
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 8,
            "type": "integer",
            "description": "Number of children.",
            "default": 0
          },
          "childrenAges": {
            "title": "Children's ages",
            "type": "array",
            "description": "Optional. One age (0-17) per child, for example [5, 9]. If empty, each child is searched as 8 years old.",
            "default": []
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "ISO currency code for all prices, for example USD, EUR, COP, MXN, GBP or BRL.",
            "default": "USD"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Language for hotel descriptions and labels, for example en, es, pt-BR or fr.",
            "default": "en"
          },
          "country": {
            "title": "Country (market)",
            "type": "string",
            "description": "Two-letter code of the market you search from, for example US, CO, ES or MX. Booking sites and prices can vary by market. Residential proxies, when needed, are taken from this country.",
            "default": "US"
          },
          "minPrice": {
            "title": "Minimum price per night",
            "minimum": 0,
            "type": "integer",
            "description": "In the selected currency, taxes and fees included. Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Maximum price per night",
            "minimum": 0,
            "type": "integer",
            "description": "In the selected currency, taxes and fees included. Leave empty for no maximum."
          },
          "hotelClass": {
            "title": "Hotel class (stars)",
            "type": "array",
            "description": "Only hotels with these official star ratings. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": []
          },
          "minRating": {
            "title": "Minimum guest rating",
            "enum": [
              "",
              "3.5",
              "4",
              "4.5"
            ],
            "type": "string",
            "description": "Only properties with this Google guest rating or higher.",
            "default": ""
          },
          "freeCancellation": {
            "title": "Free cancellation only",
            "type": "boolean",
            "description": "Only properties with at least one free-cancellation offer.",
            "default": false
          },
          "specialOffers": {
            "title": "Special offers only",
            "type": "boolean",
            "description": "Only properties with a special offer or deal.",
            "default": false
          },
          "includeVacationRentals": {
            "title": "Include vacation rentals",
            "type": "boolean",
            "description": "Google mixes apartments and homes into hotel results. They are skipped unless you enable this option.",
            "default": false
          },
          "maxHotels": {
            "title": "Maximum hotels per destination",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "The Actor stops for each destination when this number of hotels is saved or Google has no more results.",
            "default": 20
          },
          "includeProviderPrices": {
            "title": "Prices per booking site",
            "type": "boolean",
            "description": "Adds the price on each booking site (Booking.com, Expedia, Agoda, the hotel's own site and others) with links and free-cancellation flags, plus address, phone and the full amenity list. Makes one extra request per hotel, so runs take longer. Same price per hotel.",
            "default": false
          },
          "includeUnavailable": {
            "title": "Include hotels without a price",
            "type": "boolean",
            "description": "Also save hotels that Google lists without a price for these dates. They are free and marked with isAvailable = false.",
            "default": false
          },
          "maxRetries": {
            "title": "Max retries per request",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "How many times a blocked request is retried with a new IP address.",
            "default": 6
          },
          "maxConcurrency": {
            "title": "Max parallel requests",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "How many requests run at the same time across all destinations.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "By default the Actor starts with Apify datacenter proxies and switches automatically to residential proxies in the selected country if Google blocks requests.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}