{
  "openapi": "3.0.1",
  "info": {
    "title": "Agoda Reviews Scraper - Agoda, Booking.com & Partner Reviews",
    "description": "Extract every review Agoda shows for a hotel: Agoda's own guests plus the Booking.com and partner-site reviews, with no per-hotel cap. Rating, text, likes and dislikes, traveler type, room, stay dates, photos, original text of translations and hotel replies. Add hotel scores and room prices.",
    "version": "0.0",
    "x-build-id": "NzpiXt73dgMc5RQ7u"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clearpath~agoda-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clearpath-agoda-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/clearpath~agoda-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-clearpath-agoda-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/clearpath~agoda-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-clearpath-agoda-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",
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "description": "Agoda hotel links, Agoda hotel ids or hotel names, one per line. Up to <b>1,000 hotels per run</b>.<br><br><b>Link:</b> <code>https://www.agoda.com/ibis-budapest-city/hotel/budapest-hu.html</code> (any language version of the page works, as do review-page links)<br><b>Hotel id:</b> <code>49487</code><br><b>Name:</b> <code>The Fullerton Hotel Singapore</code>. Add the city when the name is common. A name is used only when it points to exactly one Agoda property; otherwise its row asks you for the link.",
            "items": {
              "type": "string",
              "maxLength": 2000
            }
          },
          "maxReviewsPerHotel": {
            "title": "Max reviews per hotel",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "How many reviews to collect from each hotel. Leave empty to get <b>every review</b> Agoda shows; large hotels have tens of thousands.<br><br>The limit picks exactly the first reviews by your <b>Sort reviews by</b> choice. To do that the actor reads the hotel's full review list, so on the very largest hotels a small limit still takes a minute or two."
          },
          "maxResults": {
            "title": "Max reviews in total (all hotels)",
            "minimum": 1,
            "maximum": 10000000,
            "type": "integer",
            "description": "Stops the whole run once this many reviews are collected across all hotels. Leave empty for no total limit.<br><br>The two limits work together and never conflict: each hotel stops at <b>Max reviews per hotel</b>, the run stops at this total, whichever comes first. This total is a budget cap, not a selection: hotels are read in parallel, so once it is reached, hotels still being read get fewer reviews and the rest get none. To choose which reviews you get, use <b>Max reviews per hotel</b> with <b>Sort reviews by</b>."
          },
          "includeHotelDetails": {
            "title": "Include hotel details",
            "type": "boolean",
            "description": "Add one row per hotel with its profile and every score: address, coordinates, star rating, description, photos, facilities, check-in times, guest and child policies, restaurants, and nearby airports, stations and landmarks; overall, Agoda, Booking.com and partner scores with sub-scores, city averages, rating distribution, scores per traveler type, review topics and recent scores.<br><br>Each hotel row is charged as a hotel result, separately from reviews.",
            "default": true
          },
          "sortBy": {
            "title": "↕️ Sort reviews by",
            "enum": [
              "most_recent",
              "highest_rating",
              "lowest_rating",
              "most_helpful"
            ],
            "type": "string",
            "description": "Which reviews come first. Matters when you set a review limit: <b>Most recent</b> with a small limit tracks fresh sentiment cheaply.",
            "default": "most_recent"
          },
          "providers": {
            "title": "Review sources",
            "uniqueItems": true,
            "type": "array",
            "description": "Agoda shows reviews from its own guests, from Booking.com and from partner sites such as Japanican and Priceline. Leave empty for all sources.",
            "items": {
              "type": "string",
              "enum": [
                "agoda",
                "booking",
                "partners"
              ],
              "enumTitles": [
                "Agoda guests",
                "Booking.com guests",
                "Partner sites (Japanican, Priceline, ...)"
              ]
            }
          },
          "ratingBands": {
            "title": "Rating bands",
            "uniqueItems": true,
            "type": "array",
            "description": "Only reviews in these rating bands (10-point scale). Leave empty for all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "exceptional",
                "excellent",
                "very_good",
                "good",
                "below_expectation"
              ],
              "enumTitles": [
                "9+ Exceptional",
                "8-9 Excellent",
                "7-8 Very good",
                "6-7 Good",
                "Below 6"
              ]
            }
          },
          "travelerType": {
            "title": "Traveler type",
            "enum": [
              "all",
              "business",
              "couples",
              "solo",
              "families_young_children",
              "families_teens",
              "groups"
            ],
            "type": "string",
            "description": "Only reviews from one kind of traveler.",
            "default": "all"
          },
          "reviewLanguages": {
            "title": "Review languages",
            "uniqueItems": true,
            "type": "array",
            "description": "Only reviews originally written in these languages. Leave empty for all languages.",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "fr",
                "de",
                "it",
                "es",
                "ja",
                "zh-HK",
                "zh-CN",
                "ko",
                "el",
                "ru",
                "pt",
                "nl",
                "zh-TW",
                "th",
                "ms",
                "vi",
                "sv",
                "id",
                "pl",
                "no",
                "da",
                "fi",
                "cs",
                "tr",
                "ca",
                "hu",
                "bg",
                "ro",
                "sl",
                "he",
                "ar",
                "pt-BR",
                "lt",
                "lv",
                "hr",
                "et",
                "uk"
              ],
              "enumTitles": [
                "English",
                "French",
                "German",
                "Italian",
                "Spanish",
                "Japanese",
                "Chinese (Hong Kong)",
                "Chinese (Simplified)",
                "Korean",
                "Greek",
                "Russian",
                "Portuguese",
                "Dutch",
                "Chinese (Traditional)",
                "Thai",
                "Malay",
                "Vietnamese",
                "Swedish",
                "Indonesian",
                "Polish",
                "Norwegian",
                "Danish",
                "Finnish",
                "Czech",
                "Turkish",
                "Catalan",
                "Hungarian",
                "Bulgarian",
                "Romanian",
                "Slovenian",
                "Hebrew",
                "Arabic",
                "Portuguese (Brazil)",
                "Lithuanian",
                "Latvian",
                "Croatian",
                "Estonian",
                "Ukrainian"
              ]
            }
          },
          "seasons": {
            "title": "Stay season",
            "uniqueItems": true,
            "type": "array",
            "description": "Only reviews of stays in these months. Agoda records the season for its own guests only, so this returns <b>Agoda reviews only</b>. Leave empty for all seasons.",
            "items": {
              "type": "string",
              "enum": [
                "mar_to_may",
                "jun_to_aug",
                "sep_to_nov",
                "dec_to_feb"
              ],
              "enumTitles": [
                "March to May",
                "June to August",
                "September to November",
                "December to February"
              ]
            }
          },
          "reviewsSince": {
            "title": "Reviews since",
            "type": "string",
            "description": "Only reviews written on or after this date. Leave empty for all dates."
          },
          "language": {
            "title": "🌐 Language",
            "enum": [
              "en-us",
              "en-gb",
              "en-au",
              "de-de",
              "fr-fr",
              "es-es",
              "it-it",
              "nl-nl",
              "pt-pt",
              "pt-br",
              "sv-se",
              "nb-no",
              "da-dk",
              "fi-fi",
              "pl-pl",
              "cs-cz",
              "hu-hu",
              "ro-ro",
              "el-gr",
              "tr-tr",
              "ru-ru",
              "uk-ua",
              "he-il",
              "ar-ae",
              "ja-jp",
              "ko-kr",
              "zh-cn",
              "zh-tw",
              "zh-hk",
              "th-th",
              "vi-vn",
              "id-id",
              "ms-my"
            ],
            "type": "string",
            "description": "The Agoda language edition to read. It sets the language of rating labels and dates, and the language Agoda translates foreign reviews into. The original text is always included next to any translation.",
            "default": "en-us"
          },
          "includeRoomOffers": {
            "title": "Include room offers and prices",
            "type": "boolean",
            "description": "Add one row per room rate on sale for your dates: room, size, bedding, occupancy, price per night, total with taxes, cancellation terms, breakfast and benefits. Prices are in <b>US dollars</b>.<br><br>Each offer is a separate row and is charged as a room offer result. Sold-out room types are listed too.",
            "default": false
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "First night of the stay. Leave empty to price a stay 30 days from today."
          },
          "checkOut": {
            "title": "Check-out date",
            "type": "string",
            "description": "Day of departure. Leave empty for a one-night stay. Up to 30 nights."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 36,
            "type": "integer",
            "description": "Adults to price the stay for. Empty means 2."
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "maximum": 18,
            "type": "integer",
            "description": "Children to price the stay for."
          },
          "childrenAges": {
            "title": "Children's ages",
            "type": "array",
            "description": "One age (0-17) per child, for example <code>[4, 9]</code>. Children without an age are priced as 8-year-olds.",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            }
          },
          "rooms": {
            "title": "Rooms",
            "minimum": 1,
            "maximum": 9,
            "type": "integer",
            "description": "Rooms needed. Empty means 1."
          },
          "feedback": {
            "title": "Feedback to the maintainers",
            "type": "string",
            "description": "For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that worked: the run returns its data exactly as it would without the note. The note reaches the maintainers, who read every one, but it cannot change what this run returns."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}