{
  "openapi": "3.0.1",
  "info": {
    "title": "Agoda Hotel Scraper - Prices, Rooms & Hotel Data",
    "description": "Scrape every Agoda hotel in a city or area with live prices for your dates in any of 59 currencies: discounts, cancellation terms, rooms left, scores, address, photos, facilities and every room offer. Or look up hotels by link, id or name. Add recent reviews.",
    "version": "0.0",
    "x-build-id": "sfQlMNEZ5XwXNS8o8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clearpath~agoda-hotel-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clearpath-agoda-hotel-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-hotel-scraper/runs": {
      "post": {
        "operationId": "runs-sync-clearpath-agoda-hotel-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-hotel-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-clearpath-agoda-hotel-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": {
          "destinations": {
            "title": "📍 Destinations",
            "maxItems": 1000,
            "type": "array",
            "description": "Cities or areas to search, one per line. Each returns every hotel Agoda lists there for your dates, or the first ones by your <b>Sort by</b> choice up to <b>Max hotels per destination</b>. Each row's <code>searchRank</code> holds its position in Agoda's results.<br><br><b>City:</b> <code>Kyoto</code>, <code>Bali</code>, <code>New York</code><br><b>Area:</b> <code>Sukhumvit</code>, <code>Shinjuku, Tokyo</code><br><b>Agoda link:</b> a city page such as <code>https://www.agoda.com/city/kyoto-jp.html</code>, or a search results link such as <code>https://www.agoda.com/search?city=1784</code><br><br>Use the name Agoda uses for the place. A country or region is not a destination; enter its cities instead. Up to <b>1,000 destinations and hotels per run</b> in total.",
            "items": {
              "type": "string",
              "maxLength": 2000
            }
          },
          "hotels": {
            "title": "🏨 Hotels",
            "maxItems": 1000,
            "type": "array",
            "description": "Single hotels to look up, one per line: Agoda hotel links, Agoda hotel ids or hotel names. Up to <b>1,000 destinations and hotels per run</b> in total.<br><br><b>Link:</b> <code>https://www.agoda.com/ibis-budapest-city/hotel/budapest-hu.html</code><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
            }
          },
          "maxHotelsPerDestination": {
            "title": "Max hotels per destination",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "How many hotels to collect from each destination, the first ones in your <b>Sort by</b> order. Leave empty for every hotel Agoda lists there (large cities have several thousand). With <b>Price each night separately</b> it applies to each night."
          },
          "maxResults": {
            "title": "Max hotels in total",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stops the whole run once this many hotels are collected across all destinations and hotels. With <b>Price each night separately</b> it applies to each night. Leave empty for no total limit."
          },
          "includeHotelDetails": {
            "title": "Include hotel details and room offers",
            "type": "boolean",
            "description": "Add the full hotel profile to each row: street address, postal code, description, all photos, facilities, check-in and check-out times, policies, category scores and rating distribution, nearby places, and <b>every room offer</b> for your dates (room, size, bedding, occupancy, price, cancellation, breakfast). Room offers are priced in your currency (in US dollars for ISK, NPR, MMK, MOP, CLP, PEN, KES and MAD).<br><br>Turn off for a faster, lighter search of prices, scores and locations.",
            "default": true
          },
          "reviewsPerHotel": {
            "title": "Reviews per hotel",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Add up to this many of each hotel's most recent guest reviews (rating, title, text, likes and dislikes, traveler type, stay date, reviewer country). Each review is charged as a review result. With <b>Price each night separately</b>, reviews come with each hotel's first row only. For a hotel's complete review history use <b>Agoda Reviews Scraper</b>.",
            "default": 0
          },
          "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, or up to 90 with <b>Price each night separately</b>."
          },
          "eachNightSeparately": {
            "title": "Price each night separately",
            "type": "boolean",
            "description": "Price every night between check-in and check-out as its own one-night stay, for daily rates. You get one row per hotel per night, each with that night's dates and, with hotel details on, every room type's price for that night. Each row is charged as one hotel result: 1 hotel over 30 nights is 30 results. Up to 90 nights per run.",
            "default": false
          },
          "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."
          },
          "currency": {
            "title": "Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "JPY",
              "CNY",
              "HKD",
              "TWD",
              "KRW",
              "SGD",
              "MYR",
              "THB",
              "IDR",
              "PHP",
              "VND",
              "INR",
              "AUD",
              "NZD",
              "CAD",
              "MXN",
              "BRL",
              "ARS",
              "CLP",
              "COP",
              "PEN",
              "ZAR",
              "EGP",
              "NGN",
              "KES",
              "MAD",
              "AED",
              "SAR",
              "QAR",
              "KWD",
              "BHD",
              "OMR",
              "ILS",
              "TRY",
              "RUB",
              "UAH",
              "PLN",
              "CZK",
              "HUF",
              "RON",
              "BGN",
              "SEK",
              "NOK",
              "DKK",
              "ISK",
              "CHF",
              "PKR",
              "BDT",
              "LKR",
              "NPR",
              "MMK",
              "KHR",
              "LAK",
              "MOP",
              "FJD",
              "XPF"
            ],
            "type": "string",
            "description": "Currency of the hotel prices.",
            "default": "USD"
          },
          "sortBy": {
            "title": "↕️ Sort by",
            "enum": [
              "best_match",
              "lowest_price",
              "highest_price",
              "top_reviewed"
            ],
            "type": "string",
            "description": "The order Agoda ranks the hotels in. With a hotel limit it decides which hotels you get: <b>Lowest price</b> with a limit of 50 returns the 50 cheapest.",
            "default": "best_match"
          },
          "starRatings": {
            "title": "Star rating",
            "uniqueItems": true,
            "type": "array",
            "description": "Only hotels with these star ratings. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "minReviewScore": {
            "title": "Minimum review score",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Only hotels with at least this guest score on Agoda's 10-point scale, for example <code>8</code> for Excellent and above."
          },
          "minPrice": {
            "title": "Minimum price per night",
            "minimum": 0,
            "type": "integer",
            "description": "Only hotels whose price per room per night, taxes and fees included, is at least this, in your currency."
          },
          "maxPrice": {
            "title": "Maximum price per night",
            "minimum": 0,
            "type": "integer",
            "description": "Only hotels whose price per room per night, taxes and fees included, is at most this, in your currency."
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "all",
              "hotels",
              "homes"
            ],
            "type": "string",
            "description": "Hotels (hotels, resorts, hostels, ryokans and similar) or homes (apartments, villas, houses).",
            "default": "all"
          },
          "freeCancellationOnly": {
            "title": "Free cancellation only",
            "type": "boolean",
            "description": "Only hotels with a free-cancellation rate for your dates.",
            "default": false
          },
          "breakfastIncludedOnly": {
            "title": "Breakfast included only",
            "type": "boolean",
            "description": "Only hotels with a rate that includes breakfast.",
            "default": false
          },
          "payAtHotelOnly": {
            "title": "Pay at the hotel only",
            "type": "boolean",
            "description": "Only hotels that let you pay at the property.",
            "default": false
          },
          "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 descriptions, facilities, photo captions, policies and rating labels. Hotel names stay as Agoda lists them.",
            "default": "en-us"
          },
          "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}