{
  "openapi": "3.0.1",
  "info": {
    "title": "Agoda Scraper | Hotel Prices and Guest Ratings",
    "description": "Agoda scraper for hotel prices: enter a city, area, landmark or hotel name and get every hotel with its live nightly and total price, taxes, discount, free cancellation, star rating, guest score, coordinates, facilities and photos. No login needed. Sort, cap, schedule and export to JSON or CSV.",
    "version": "1.0",
    "x-build-id": "uN0iQjWa7r9eJ5s3H"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~agoda-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-agoda-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/silentflow~agoda-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-agoda-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/silentflow~agoda-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-agoda-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",
            "type": "array",
            "description": "Where to look, one per line: a city (<code>Bangkok</code>, <code>Paris</code>), an area (<code>Sukhumvit</code>), a landmark (<code>Eiffel Tower</code>), a hotel name (<code>Marina Bay Sands</code>) or an Agoda search address (<code>https://www.agoda.com/search?city=9395</code>). Every hotel listed for the destination becomes one row, in the order Agoda recommends unless you sort. A big city has thousands of hotels, so set the cap to what you need.",
            "items": {
              "type": "string"
            }
          },
          "checkIn": {
            "title": "📅 Check-in",
            "type": "string",
            "description": "First night of the stay (<code>2026-10-15</code>). Prices, availability and free cancellation are quoted for these dates. Leave empty to look two weeks ahead, when most of a city is still bookable."
          },
          "checkOut": {
            "title": "📅 Check-out",
            "type": "string",
            "description": "Departure date (<code>2026-10-18</code>). Leave empty for a one-night stay. Up to 30 nights; <code>totalPrice</code> covers the whole stay, <code>pricePerNight</code> is the nightly rate."
          },
          "maxItems": {
            "title": "🔢 Max hotels per destination",
            "minimum": 1,
            "type": "integer",
            "description": "How many rows to save for each destination. Agoda lists about 45 hotels per page, so <code>50</code> takes a few seconds and <code>500</code> about a minute. A hotel name gives one row whatever the cap.",
            "default": 50
          },
          "adults": {
            "title": "👥 Adults",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Number of adult guests, up to 20. <code>2</code> is what Agoda shows by default; a solo traveller often sees lower single rates.",
            "default": 2
          },
          "rooms": {
            "title": "🚪 Rooms",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of rooms, up to 10. <code>pricePerNight</code> stays the rate of one room; <code>totalPrice</code> multiplies by rooms and nights.",
            "default": 1
          },
          "currency": {
            "title": "💱 Currency",
            "enum": [
              "USD",
              "EUR",
              "GBP",
              "THB",
              "JPY",
              "SGD",
              "AUD",
              "CAD",
              "INR",
              "KRW",
              "CNY",
              "HKD",
              "MYR",
              "IDR",
              "PHP",
              "VND",
              "TWD",
              "AED",
              "CHF",
              "BRL"
            ],
            "type": "string",
            "description": "Currency of every price on the rows. Agoda converts at its own rate, so pick the one you report in.",
            "default": "USD"
          },
          "sortBy": {
            "title": "🔽 Sort by",
            "enum": [
              "recommended",
              "price_low_to_high",
              "price_high_to_low",
              "review_score",
              "star_rating",
              "distance_from_center"
            ],
            "type": "string",
            "description": "Order of the rows, which decides which hotels fill the cap. <b>Recommended</b> is Agoda's own ranking; the two <b>price</b> orders keep only hotels with a room left, so every row has a price; <b>guest rating</b> and <b>star rating</b> put the best rated first; <b>distance from center</b> starts downtown.",
            "default": "recommended"
          },
          "includeDetails": {
            "title": "📄 Read the property page of each hotel",
            "type": "boolean",
            "description": "On: every row also gets the full street address, the description, the complete list of facilities and the check-in and check-out times, read from the hotel's page. Roughly one extra second per hotel. Off: the listing row alone, with the facilities Agoda highlights in the search.",
            "default": false
          },
          "debugMode": {
            "title": "🐞 Debug mode",
            "type": "boolean",
            "description": "Adds detailed lines to the run log. Leave it off for normal runs.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}