{
  "openapi": "3.0.1",
  "info": {
    "title": "Free Hotel Review Checker — Hotel Reputation, Rating Comparison",
    "description": "Free hotel reputation check by name or URL: hotel ratings on six review sites — Google Hotels, Tripadvisor, Booking.com, Agoda, Hostelworld, Despegar. One row per hotel per site: rating, 0-5 score, review count, star rating, ranking, sub-scores; summary row: rating comparison. 10 hotels per run.",
    "version": "1.3",
    "x-build-id": "xbpkC4l04wyGEyQ1o"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kestrel~hotel-reputation-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kestrel-hotel-reputation-checker",
        "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/kestrel~hotel-reputation-checker/runs": {
      "post": {
        "operationId": "runs-sync-kestrel-hotel-reputation-checker",
        "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/kestrel~hotel-reputation-checker/run-sync": {
      "post": {
        "operationId": "run-sync-kestrel-hotel-reputation-checker",
        "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": {
          "hotelNames": {
            "title": "Hotel names",
            "uniqueItems": true,
            "type": "array",
            "description": "One hotel per entry, ideally \"Name, City\", e.g. [\"Altis Grand Hotel, Lisbon\", \"The Savoy, London\"]. Use for \"how is hotel X rated across sites\" or a comp set of up to 10 hotels. The part before the comma is scored for the name match (matched_confidence; under 0.6 = not_found, never a guess). Looked up on Google Hotels, Tripadvisor, Booking.com and Agoda; Hostelworld and Despegar have no name search, give those two a URL in startUrls. Free; hotels beyond the first 10 are reported as skipped.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Property URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "A property page on any of the six sites, e.g. [\"https://www.booking.com/hotel/pt/memmo-alfama.html\"], a Tripadvisor Hotel_Review-… page, an agoda.com/search?hotelId=… URL, a hostelworld.com/hostels/p/<id>/… page, a despegar.com.ar/hoteles/h-<id>/… page or a google.com/travel/hotels/entity/… page. The URL's site is read first and its name is searched on the others: one URL gives the whole picture — the only way to include Hostelworld and Despegar. Empty (default) = none.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Review sites to check",
            "uniqueItems": true,
            "type": "array",
            "description": "Empty (default) = every site that can find the target: the four name-searchable sites for a name, plus the site a URL came from. Pick explicitly to narrow the run, e.g. [\"google\", \"tripadvisor\", \"booking\"]; a chosen site that cannot resolve the target is then reported as unsupported rather than silently dropped. Allowed: google, tripadvisor, booking, agoda, hostelworld, despegar. Tripadvisor and Despegar are read through residential IPs.",
            "items": {
              "type": "string",
              "enum": [
                "google",
                "tripadvisor",
                "booking",
                "agoda",
                "hostelworld",
                "despegar"
              ],
              "enumTitles": [
                "Google Hotels",
                "Tripadvisor",
                "Booking.com",
                "Agoda",
                "Hostelworld",
                "Despegar"
              ]
            },
            "default": []
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Two-letter language code, e.g. \"en\" (default), \"de\", \"fr\", \"pt\". Picks the Tripadvisor country site (de = tripadvisor.de) and the locale Google Hotels, Booking.com and Agoda answer in. Ratings are the same in every language; only names, cities and the ranking sentence change.",
            "default": "en"
          },
          "country": {
            "title": "Market",
            "type": "string",
            "description": "Two-letter market code, e.g. \"us\" (default), \"gb\", \"de\", \"br\", \"ar\". Sets Google's gl, Booking's and Agoda's locale suffix and the Despegar country domain (markets Despegar does not serve fall back to despegar.com). Not the hotel's country: keep \"us\" unless the user wants a market's view.",
            "default": "us"
          },
          "sessions": {
            "title": "Parallel sessions",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Proxy sessions (egress IPs) per site in parallel, 1 to 8, e.g. 4 (default 2). More is faster for several hotels; each session is paced separately. Free either way.",
            "default": 2
          },
          "perIp": {
            "title": "Requests per second per session",
            "minimum": 0.1,
            "maximum": 2,
            "type": "number",
            "description": "Requests per second per session, 0.1 to 2 (default 1). Every site answered 1 per second per IP in testing; Despegar is held to 0.5 whatever you set, because DataDome challenges the first request of a fresh session.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Keep the default ({\"useApifyProxy\": true}): Apify Proxy datacenter IPs serve Google Hotels, Booking.com, Agoda and Hostelworld. Tripadvisor and Despegar are always fetched through the RESIDENTIAL group regardless of this setting (both refuse datacenter ranges); an account without residential access gets a warning and this configuration instead.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}