{
  "openapi": "3.0.1",
  "info": {
    "title": "Booking Review Scraper",
    "description": "Scrape Booking.com hotel reviews in bulk. Get rating, liked and disliked text, reviewer details, room type, stay date and length, photos, plus hotel stars, address and category scores as clean JSON. Filter by score, traveler type, language and date. No login needed.",
    "version": "1.0",
    "x-build-id": "yacQaTmzBJvXoP9Ej"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/insights_data~booking-review-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-insights_data-booking-review-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/insights_data~booking-review-scraper/runs": {
      "post": {
        "operationId": "runs-sync-insights_data-booking-review-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/insights_data~booking-review-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-insights_data-booking-review-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",
        "required": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "🔗 Hotel links",
            "type": "array",
            "description": "One or more Booking.com hotel page links, e.g. https://www.booking.com/hotel/us/the-langham-chicago.html. Bulk input is supported; add as many hotels as you need. Add userData to a link to get it back as customData on every review.",
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerHotel": {
            "title": "📊 Reviews per hotel",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of reviews to collect for each hotel. Use 0 for every available review. Free plan users get up to 10 reviews per run in total; paid plans have no limit.",
            "default": 10
          },
          "sortReviewsBy": {
            "title": "🔃 Sort reviews by",
            "enum": [
              "newest",
              "oldest",
              "relevant",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "Order in which reviews are collected. The cutoff date works fastest with Newest first or Oldest first.",
            "default": "newest"
          },
          "cutoffDate": {
            "title": "⏰ Reviews since",
            "type": "string",
            "description": "Only keep reviews written on or after this date (UTC). Pick a calendar date, or switch to relative and enter a period such as 30 days, 6 months or 1 year back from today. Leave empty for no cutoff."
          },
          "reviewScores": {
            "title": "⭐ Review scores",
            "type": "array",
            "description": "Only reviews in these score bands. ALL keeps every score. Superb is 9+, Good 7-9, Passable 5-7, Poor 3-5, Very poor 1-3.",
            "items": {
              "type": "string",
              "enum": [
                "ALL",
                "superb",
                "good",
                "passable",
                "poor",
                "very_poor"
              ],
              "enumTitles": [
                "All scores",
                "Superb (9+)",
                "Good (7-9)",
                "Passable (5-7)",
                "Poor (3-5)",
                "Very poor (1-3)"
              ]
            },
            "default": [
              "ALL"
            ]
          },
          "travelerTypes": {
            "title": "🧳 Traveler types",
            "type": "array",
            "description": "Only reviews from these kinds of travelers. Leave empty for all travelers.",
            "items": {
              "type": "string",
              "enum": [
                "couples",
                "families",
                "solo",
                "friends",
                "business"
              ],
              "enumTitles": [
                "Couples",
                "Families",
                "Solo travelers",
                "Groups of friends",
                "Business travelers"
              ]
            }
          },
          "languages": {
            "title": "🌍 Review languages",
            "type": "array",
            "description": "Only reviews written in these languages. Leave empty for every language. A language the hotel has no reviews in is skipped with a note in the log.",
            "items": {
              "type": "string",
              "enum": [
                "ar",
                "bg",
                "ca",
                "zh",
                "hr",
                "cs",
                "da",
                "nl",
                "en",
                "et",
                "fi",
                "fr",
                "de",
                "el",
                "he",
                "hu",
                "is",
                "id",
                "it",
                "ja",
                "ko",
                "lv",
                "lt",
                "no",
                "pl",
                "pt",
                "ro",
                "ru",
                "sr",
                "sk",
                "sl",
                "es",
                "sv",
                "th",
                "tr",
                "uk",
                "vi"
              ],
              "enumTitles": [
                "🇸🇦 Arabic",
                "🇧🇬 Bulgarian",
                "🏳️ Catalan",
                "🇨🇳 Chinese",
                "🇭🇷 Croatian",
                "🇨🇿 Czech",
                "🇩🇰 Danish",
                "🇳🇱 Dutch",
                "🇬🇧 English",
                "🇪🇪 Estonian",
                "🇫🇮 Finnish",
                "🇫🇷 French",
                "🇩🇪 German",
                "🇬🇷 Greek",
                "🇮🇱 Hebrew",
                "🇭🇺 Hungarian",
                "🇮🇸 Icelandic",
                "🇮🇩 Indonesian",
                "🇮🇹 Italian",
                "🇯🇵 Japanese",
                "🇰🇷 Korean",
                "🇱🇻 Latvian",
                "🇱🇹 Lithuanian",
                "🇳🇴 Norwegian",
                "🇵🇱 Polish",
                "🇵🇹 Portuguese",
                "🇷🇴 Romanian",
                "🇷🇺 Russian",
                "🇷🇸 Serbian",
                "🇸🇰 Slovak",
                "🇸🇮 Slovenian",
                "🇪🇸 Spanish",
                "🇸🇪 Swedish",
                "🇹🇭 Thai",
                "🇹🇷 Turkish",
                "🇺🇦 Ukrainian",
                "🇻🇳 Vietnamese"
              ]
            }
          },
          "searchText": {
            "title": "🔎 Search words",
            "type": "string",
            "description": "Only reviews that mention this word or phrase, e.g. breakfast. Leave empty to skip."
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy",
            "type": "object",
            "description": "Runs start without a proxy. If the site blocks the request, the Actor automatically switches to a datacenter proxy and then a residential proxy, and stays on it for the rest of the run.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}