{
  "openapi": "3.0.1",
  "info": {
    "title": "Ctrip 携程酒店价格 & Trip.com Hotel Price Scraper | China & Global",
    "description": "Extract every room type and rate plan from Ctrip 携程 and Trip.com: nightly price, rack rate, discount, breakfast, cancellation policy with deadlines, payment terms and rooms left. 100 fields per rate plan. Covers hotels in mainland China and worldwide. Search by hotel link, name, district or city.",
    "version": "0.0",
    "x-build-id": "4wXaIZ4Xy0AjlCzgd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~ctrip-hotel-prices-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-ctrip-hotel-prices-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/zen-studio~ctrip-hotel-prices-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-ctrip-hotel-prices-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/zen-studio~ctrip-hotel-prices-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-ctrip-hotel-prices-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",
            "type": "array",
            "description": "填入酒店链接、酒店 ID 或酒店名称，可混合填写。<br><br>支持格式：<br>• 携程链接：<code>https://hotels.ctrip.com/hotels/75329189.html</code><br>• Trip.com 链接：<code>https://hk.trip.com/hotels/detail/?hotelId=75329189</code><br>• 酒店 ID：<code>75329189</code><br>• 酒店名称：<code>上海外滩璞硯酒店</code><br><br>若填的是城市、商圈或地标（例如 <code>外滩</code>、<code>西湖</code>），会自动搜索该区域内的酒店，数量受下方「最多采集酒店数」限制。<br><br>Mix links, IDs and names freely. A district or landmark searches that area instead.",
            "items": {
              "type": "string"
            }
          },
          "city": {
            "title": "城市 Destination",
            "type": "string",
            "description": "搜索整个城市，例如 <code>上海</code>、<code>成都</code> 或 <code>Shanghai</code>。<br><br>按好评优先排序，因此先拿到的是该城市口碑最好、价格方案最丰富的酒店。<br><br>Searches a whole city, best-reviewed first."
          },
          "maxHotels": {
            "title": "最多采集酒店数 Max hotels",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "搜索最多采集多少家酒店，<b>整轮运行合计</b>，不是每个搜索各算一次。<br><br>您在上方直接指定的酒店一定会被采集，不占用此额度。<br><br>Caps search results across the whole run. Hotels you name yourself are always collected and do not count towards it.",
            "default": 20
          },
          "checkIn": {
            "title": "入住日期 Check-in",
            "type": "string",
            "description": "入住日期，格式 <code>YYYY-MM-DD</code>，例如 <code>2026-09-10</code>。<br><br>留空则默认为明天。必须是今天或之后的日期。<br><br>Defaults to tomorrow if left empty."
          },
          "checkOut": {
            "title": "离店日期 Check-out",
            "type": "string",
            "description": "离店日期，格式 <code>YYYY-MM-DD</code>。<br><br>留空则默认为入住次日。多住几晚会拿到不同的价格方案。<br><br>Defaults to the night after check-in."
          },
          "adults": {
            "title": "成人人数 Adults",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "每间房的入住人数。<br><br>部分价格方案只针对特定人数开放，改人数会看到不同的方案。<br><br>Some rates only appear for the occupancy they are sold for.",
            "default": 2
          },
          "rooms": {
            "title": "房间数 Rooms",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "需要预订的房间数量。<br><br>How many rooms the stay needs.",
            "default": 1
          },
          "hotelDetails": {
            "title": "附加酒店资料 Hotel details",
            "type": "boolean",
            "description": "额外获取每家酒店的入住／退房时间、到机场／火车站／地铁站的距离，以及官方常见问题（早餐种类、餐饮、接送）。<br><br>这些资料不在价格数据里，需要为每家酒店多取一次页面，运行会稍慢一些。<br><br>Adds check-in/out times, transport distances and the site's own FAQ. Costs one extra fetch per hotel.",
            "default": false
          },
          "currency": {
            "title": "货币 Currency",
            "enum": [
              "CNY",
              "HKD",
              "USD",
              "EUR",
              "GBP",
              "JPY",
              "KRW",
              "SGD",
              "AUD",
              "TWD"
            ],
            "type": "string",
            "description": "价格返回时使用的货币。<br><br>换货币只改变金额的计价方式，不会改变可售的房型和方案。<br><br>Currency prices are returned in.",
            "default": "CNY"
          },
          "language": {
            "title": "语言 Language",
            "enum": [
              "zh-HK",
              "zh-TW",
              "en-XX",
              "ja-JP",
              "ko-KR",
              "de-DE",
              "fr-FR",
              "es-ES",
              "it-IT",
              "th-TH"
            ],
            "type": "string",
            "description": "酒店名称、房型名称与政策文字的语言。<br><br>价格不随语言变化，但<b>可售房型会略有差异</b>（各语言市场的分销不同），因此同一份数据请保持同一语言。<br><br><b>注意：数据源只提供繁体中文，不提供简体中文。</b><br><br>Prices are identical across languages, but the set of sellable rooms differs slightly. The source serves Traditional Chinese only.",
            "default": "zh-HK"
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}