{
  "openapi": "3.0.1",
  "info": {
    "title": "Agoda Hotels Reviews Scraper",
    "description": "Get Agoda hotel search results and guest reviews in structured records. Hotel fields include names, areas, star and review ratings, review counts, prices, currency, coordinates, and image URLs. Search by city or Agoda URL, then choose hotel records with review arrays or separate review rows.",
    "version": "0.1",
    "x-build-id": "tx1vydakdD9zietTc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~agoda-hotels-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-agoda-hotels-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/axiomworks~agoda-hotels-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-agoda-hotels-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/axiomworks~agoda-hotels-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-agoda-hotels-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",
        "required": [
          "searchQueries"
        ],
        "properties": {
          "searchQueries": {
            "title": "Cities",
            "type": "array",
            "description": "City names to search on Agoda, e.g. ['Bangkok', 'Lisbon']. Each name is resolved to an Agoda city. Pass an empty list only if you give cityIds or startUrls instead.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "hotels",
              "hotelsWithReviews",
              "reviews"
            ],
            "type": "string",
            "description": "hotels = one row per hotel; hotelsWithReviews = hotels plus a reviews array; reviews = one row per guest review. Default hotels.",
            "default": "hotels"
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of rows to return (hotels, or reviews in reviews mode), 1-10000, default 50. The run stops once this many are saved.",
            "default": 50
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Optional Agoda hotel URLs (https://www.agoda.com/<slug>/hotel/<city>-<cc>.html) or city URLs (https://www.agoda.com/city/bangkok-th.html). Hotel URLs return that hotel and its reviews.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "cityIds": {
            "title": "Agoda city IDs",
            "type": "array",
            "description": "Optional numeric Agoda city ids, e.g. [9395] for Bangkok. Use instead of city names if you already know the id.",
            "default": []
          },
          "maxReviewsPerHotel": {
            "title": "Max reviews per hotel",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Guest reviews to collect for each hotel, 0-1000, default 20. 0 returns no reviews in hotelsWithReviews mode; reviews mode uses 20 if 0.",
            "default": 20
          },
          "minRating": {
            "title": "Minimum review rating",
            "type": "number",
            "description": "Only keep reviews rated at least this value on Agoda's 1-10 scale, e.g. 8. Leave empty for no lower limit. Filtering happens after fetching, so reviews scanned can exceed reviews returned."
          },
          "maxRating": {
            "title": "Maximum review rating",
            "type": "number",
            "description": "Only keep reviews rated at most this value on Agoda's 1-10 scale, e.g. 5 to find complaints. Leave empty for no upper limit."
          },
          "reviewsSince": {
            "title": "Reviews since date",
            "type": "string",
            "description": "Only keep reviews dated on or after this day, YYYY-MM-DD, e.g. '2026-01-01'. Leave empty for all dates."
          },
          "travelerTypes": {
            "title": "Traveler types",
            "type": "array",
            "description": "Only keep reviews whose traveler type contains one of these words, e.g. ['Couple', 'Family']. Leave empty for all types.",
            "items": {
              "type": "string"
            }
          },
          "reviewKeyword": {
            "title": "Review keyword",
            "type": "string",
            "description": "Only keep reviews whose title, text, positives or negatives contain this word or phrase (case-insensitive), e.g. 'breakfast'."
          },
          "reviewSort": {
            "title": "Review sort order",
            "enum": [
              "mostRecent",
              "ratingHigh",
              "ratingLow",
              "mostHelpful"
            ],
            "type": "string",
            "description": "Order of reviews: mostRecent, ratingHigh, ratingLow or mostHelpful. Default mostRecent.",
            "default": "mostRecent"
          },
          "includeReviewerNames": {
            "title": "Include reviewer names",
            "type": "boolean",
            "description": "Include the public display name of each reviewer. Turn off to leave reviewer names empty (personal data). Default true.",
            "default": true
          },
          "checkIn": {
            "title": "Check-in date",
            "type": "string",
            "description": "Check-in date YYYY-MM-DD used for prices, e.g. '2026-12-01'. Default is 30 days from today."
          },
          "nights": {
            "title": "Nights",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Length of stay in nights for price quotes, 1-30, default 2.",
            "default": 2
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Number of adults for price quotes, 1-12, default 2.",
            "default": 2
          },
          "rooms": {
            "title": "Rooms",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Number of rooms for price quotes, 1-8, default 1.",
            "default": 1
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "3-letter currency code for prices, e.g. 'USD' or 'EUR'. Default USD.",
            "default": "USD"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings. Datacenter proxy is the default and works for most runs; switch to residential if Agoda blocks 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}