{
  "openapi": "3.0.1",
  "info": {
    "title": "Yahoo! Travel Japan Scraper — Hotels & Ryokan Prices",
    "description": "Yahoo Travel Japan scraper for hotel prices: hotels & ryokan with ratings and advertised prices from travel.yahoo.co.jp by prefecture — clean English schema for Japan hotel rate shopping. Unofficial; not affiliated with LY Corporation.",
    "version": "0.1",
    "x-build-id": "gDrLWLXc1BlW9C9N2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpopendata~japan-hotels-yahoo-travel/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpopendata-japan-hotels-yahoo-travel",
        "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/jpopendata~japan-hotels-yahoo-travel/runs": {
      "post": {
        "operationId": "runs-sync-jpopendata-japan-hotels-yahoo-travel",
        "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/jpopendata~japan-hotels-yahoo-travel/run-sync": {
      "post": {
        "operationId": "run-sync-jpopendata-japan-hotels-yahoo-travel",
        "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": {
          "prefecture": {
            "title": "Prefecture",
            "enum": [
              "Hokkaido",
              "Aomori",
              "Iwate",
              "Miyagi",
              "Akita",
              "Yamagata",
              "Fukushima",
              "Ibaraki",
              "Tochigi",
              "Gunma",
              "Saitama",
              "Chiba",
              "Tokyo",
              "Kanagawa",
              "Niigata",
              "Toyama",
              "Ishikawa",
              "Fukui",
              "Yamanashi",
              "Nagano",
              "Gifu",
              "Shizuoka",
              "Aichi",
              "Mie",
              "Shiga",
              "Kyoto",
              "Osaka",
              "Hyogo",
              "Nara",
              "Wakayama",
              "Tottori",
              "Shimane",
              "Okayama",
              "Hiroshima",
              "Yamaguchi",
              "Tokushima",
              "Kagawa",
              "Ehime",
              "Kochi",
              "Fukuoka",
              "Saga",
              "Nagasaki",
              "Kumamoto",
              "Oita",
              "Miyazaki",
              "Kagoshima",
              "Okinawa"
            ],
            "type": "string",
            "description": "REQUIRED. Prefecture to search — pick one of the 47 prefectures by English name, e.g. \"Kyoto\", \"Tokyo\", \"Osaka\" (via the API the Japanese name \"京都府\", the JIS code \"26\" or romanisations such as \"osaka-fu\" also work). Selects the Yahoo!トラベル region hub that contains the prefecture; results are filtered to the prefecture. An empty input searches Kyoto.",
            "default": "Kyoto"
          },
          "area": {
            "title": "Area within the prefecture",
            "type": "string",
            "description": "Optional area filter, applied client-side as a substring of the published Japanese area name (e.g. \"祇園\", \"神戸\", \"上野\", \"箱根\"). Romaji area names do not match — use the Japanese spelling. Leave empty to include every area of the prefecture."
          },
          "keyword": {
            "title": "Hotel name keyword",
            "type": "string",
            "description": "Optional case-insensitive substring filter on the facility name (Japanese or English, e.g. \"リッツ\", \"Hilton\"), applied client-side."
          },
          "accommodationType": {
            "title": "Facility type",
            "enum": [
              "all",
              "hotel",
              "ryokan",
              "villa"
            ],
            "type": "string",
            "description": "Optional facility-type filter, applied client-side on Yahoo's published type: \"hotel\" (city/business/resort/capsule hotels), \"ryokan\" (traditional inns; \"inn\"/\"旅館\" accepted), or \"villa\" (vacation rentals; \"vacation-rental\" accepted). Leave as \"all\" for every type.",
            "default": "all"
          },
          "includeDetails": {
            "title": "Fetch facility detail pages",
            "type": "boolean",
            "description": "When true, each facility costs one extra request but adds check-in/check-out times, an onsen flag and amenity flags (pool, gym, airport shuttle …). When false (default) the actor emits list data only — name, type, area, address, geo, rating, review count, room count, lowest advertised price — which is already rich on Yahoo!トラベル.",
            "default": false
          },
          "maxItems": {
            "title": "Max records",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop after this many dataset records (1-10000, default 30).",
            "default": 30
          },
          "maxApiRequests": {
            "title": "Max upstream requests",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Hard budget of HTTP requests to travel.yahoo.co.jp for this run (1-100, default 50; region list pages of 20 facilities + 1 per facility detail if enabled). Requests are strictly serial with >= 1.2 s spacing. A prefecture that is one of several in its Yahoo region may need more pages, since the region's other prefectures are filtered out. When the budget runs out the run completes with complete=false in RUN_SUMMARY.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy settings. Required: travel.yahoo.co.jp answers HTTP 403 to datacenter IP ranges, so the default uses Apify RESIDENTIAL proxies (country JP). Proxy bandwidth is billed as Apify platform usage. Never used for rotation/evasion — one client identity per run.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "JP"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}