{
  "openapi": "3.0.1",
  "info": {
    "title": "Agoda Hotel Reviews Scraper: Guest Reviews, Replies, New Only",
    "description": "Scrape Agoda hotel reviews by page link or hotel ID: score, full text, reviewer country, traveler type, room, stay dates and hotel replies. Filter by score, language and date, run many hotels at once, and get only new reviews on each scheduled run. No login or cookies. Export JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "tpX2OyslMoVDXg2t7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~agoda-hotel-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-agoda-hotel-reviews-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/getascraper~agoda-hotel-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-agoda-hotel-reviews-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/getascraper~agoda-hotel-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-agoda-hotel-reviews-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": {
          "hotels": {
            "title": "Hotels (page URLs or hotel IDs)",
            "type": "array",
            "description": "One Agoda hotel per line: the hotel page URL (any Agoda country site or language) or the numeric hotel ID. Add as many hotels as you like, they are all collected in one run.",
            "default": [
              "https://www.agoda.com/bayswater-inn-hotel/hotel/london-gb.html",
              "335650"
            ],
            "items": {
              "type": "string"
            }
          },
          "reviewSources": {
            "title": "Review sources",
            "type": "array",
            "description": "Agoda shows reviews from its own guests and from partner sites. Pick which sources to keep. Every row says where it came from in the source field.",
            "items": {
              "type": "string",
              "enum": [
                "agoda",
                "booking",
                "priceline",
                "partners"
              ],
              "enumTitles": [
                "Agoda guests",
                "Booking.com guests",
                "Priceline guests",
                "Other partner sites"
              ]
            },
            "default": [
              "agoda",
              "booking",
              "priceline",
              "partners"
            ]
          },
          "languages": {
            "title": "Review languages",
            "type": "array",
            "description": "Only reviews written in these languages. Reviews are always returned in the language the guest wrote them in. Leave empty for all languages.",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "de",
                "fr",
                "es",
                "it",
                "nl",
                "pt-PT",
                "pt-BR",
                "ru",
                "tr",
                "pl",
                "cs",
                "hu",
                "ro",
                "el",
                "sv",
                "da",
                "no",
                "fi",
                "ar",
                "he",
                "ja",
                "ko",
                "zh-CN",
                "zh-TW",
                "zh-HK",
                "th",
                "id",
                "ms"
              ],
              "enumTitles": [
                "English",
                "German",
                "French",
                "Spanish",
                "Italian",
                "Dutch",
                "Portuguese (Portugal)",
                "Portuguese (Brazil)",
                "Russian",
                "Turkish",
                "Polish",
                "Czech",
                "Hungarian",
                "Romanian",
                "Greek",
                "Swedish",
                "Danish",
                "Norwegian",
                "Finnish",
                "Arabic",
                "Hebrew",
                "Japanese",
                "Korean",
                "Chinese (Simplified)",
                "Chinese (Traditional, Taiwan)",
                "Chinese (Traditional, Hong Kong)",
                "Thai",
                "Indonesian",
                "Malay"
              ]
            }
          },
          "travelerTypes": {
            "title": "Traveler types",
            "type": "array",
            "description": "Only reviews from these kinds of travelers, for example business travelers or families. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "business",
                "couple",
                "solo",
                "family_young",
                "family_teens",
                "group"
              ],
              "enumTitles": [
                "Business travelers",
                "Couples",
                "Solo travelers",
                "Families with young children",
                "Families with teens",
                "Groups of friends"
              ]
            }
          },
          "minScore": {
            "title": "Minimum score",
            "minimum": 1,
            "maximum": 10,
            "type": "number",
            "description": "Only reviews scoring at least this on Agoda's 1 to 10 scale. Use it to find happy guests."
          },
          "maxScore": {
            "title": "Maximum score",
            "minimum": 1,
            "maximum": 10,
            "type": "number",
            "description": "Only reviews scoring at most this on the 1 to 10 scale. Set it to 6 to focus on complaints and service problems."
          },
          "reviewDateFrom": {
            "title": "Reviews written from",
            "type": "string",
            "description": "Only reviews written on or after this date. Use a calendar date or a relative span such as 30 days or 3 months."
          },
          "reviewDateTo": {
            "title": "Reviews written until",
            "type": "string",
            "description": "Only reviews written on or before this date. Use a calendar date or a relative span."
          },
          "responseFilter": {
            "title": "Hotel response",
            "enum": [
              "any",
              "answered",
              "unanswered"
            ],
            "type": "string",
            "description": "Keep every review, only those the hotel has answered, or only those still waiting for an answer. Handy for reputation teams working through a reply backlog.",
            "default": "any"
          },
          "sortBy": {
            "title": "Sort and pick by",
            "enum": [
              "newest",
              "highest",
              "lowest",
              "helpful"
            ],
            "type": "string",
            "description": "Decides which reviews you get when a hotel has more than the limit below, and the order within each batch of results.",
            "default": "newest"
          },
          "maxReviewsPerHotel": {
            "title": "Max reviews per hotel",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Upper limit of reviews returned for each hotel. Agoda only lists a hotel's most recent partner-site reviews (about the last year), so very large values mostly return everything available. Set 0 to collect every review Agoda exposes.",
            "default": 20
          },
          "newReviewsOnly": {
            "title": "Only reviews not delivered before",
            "type": "boolean",
            "description": "Schedule the Actor daily or weekly and each run returns only reviews that appeared since the last run with the same monitor name. The first run returns the newest reviews up to the limit above.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name of the saved memory used by the option above. Use a different name for each schedule so they do not share what has already been delivered.",
            "default": "default"
          },
          "includeHotelSummary": {
            "title": "Add a hotel summary row",
            "type": "boolean",
            "description": "Adds one extra row per hotel with its overall score, the scores for cleanliness, location, service, value and more, address, star rating and review counts per source. The same data is always saved to the HOTELS record of the run, free of charge.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings. The default datacenter proxy works for normal use. Switch to residential only if Agoda starts refusing 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}