{
  "openapi": "3.0.1",
  "info": {
    "title": "Free Hotel Review Checker — Ratings From 6 Sites",
    "description": "Check a hotel's reputation on six review sites at once: Google Hotels, Tripadvisor, Booking.com, Agoda, Hostelworld and Despegar. One free row per hotel per source — rating, review count, ranking and the sub-scores each site publishes — plus a cross-source summary. Free: nothing is ever charged.",
    "version": "1.1",
    "x-build-id": "qAZo1Z1IGnOzoMWuI"
  },
  "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 line, ideally \"Name, City\" — e.g. \"Altis Grand Hotel, Lisbon\". The part before the comma is what the name match is scored against; the city only helps each site find the right property. A name is looked up on Google Hotels, Tripadvisor, Booking.com and Agoda; Hostelworld and Despegar have no public name search, so give those two a property URL in startUrls instead. Free-run cap: the first 10 hotels of a run are checked and the rest 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: https://www.tripadvisor.com/Hotel_Review-g189158-d4509998-… , https://www.booking.com/hotel/pt/memmo-alfama.html , https://www.agoda.com/search?hotelId=6723017 , https://www.hostelworld.com/hostels/p/15529/home-lisbon-hostel/ , https://www.despegar.com.ar/hoteles/h-265543/riu-cancun-cancun or https://www.google.com/travel/hotels/entity/<token>. The URL's own site is read first and the name it returns is what the other sites are then searched by, so one URL gives you the whole cross-source picture.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Review sites to check",
            "uniqueItems": true,
            "type": "array",
            "description": "Leave empty (the default) and each hotel is checked on every site that can find it: the four name-searchable sites for a name, plus the site a URL came from. Pick sites explicitly to narrow the run — a site that cannot resolve the target is then reported as unsupported rather than silently dropped. Tripadvisor and Despegar are fetched through residential IPs because both refuse datacenter ranges.",
            "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. It picks the Tripadvisor domain (en -> tripadvisor.com, de -> tripadvisor.de, fr -> tripadvisor.fr …) 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 (us, gb, de, br, ar …). It sets Google's gl parameter, Booking's and Agoda's locale suffix and the Despegar country domain; markets Despegar does not serve fall back to despegar.com.",
            "default": "us"
          },
          "sessions": {
            "title": "Parallel sessions",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many proxy sessions (egress IPs) each site's client runs in parallel. More is faster when you check several hotels; each session is paced separately.",
            "default": 2
          },
          "perIp": {
            "title": "Requests per second per session",
            "minimum": 0.1,
            "maximum": 2,
            "type": "number",
            "description": "Pace for each session. One request per second per IP was answered by every one of the six sites in testing; Despegar is held to 0.5 whatever you set here because DataDome challenges the first request of a fresh session.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy with the datacenter group serves Google Hotels, Booking.com, Agoda and Hostelworld. Tripadvisor and Despegar are always fetched through the residential group regardless of this setting, because both refuse datacenter ranges outright; if this account has no residential access the run says so and falls back to this configuration.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}