{
  "openapi": "3.0.1",
  "info": {
    "title": "Jalan Japan Hotel Prices — What a Night Costs by Area",
    "description": "Enter a Japanese place name and a date, and see what a hotel night really costs on Jalan. You get the typical price per person, the lowest-highest range, how many hotels still have rooms that night, and the average guest rating. $0.02 per area checked, no results = no charge. Unofficial.",
    "version": "0.1",
    "x-build-id": "8M5HgqgFaKsc6sesR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpmarketdata~jalan-japan-hotel-price-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpmarketdata-jalan-japan-hotel-price-checker",
        "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/jpmarketdata~jalan-japan-hotel-price-checker/runs": {
      "post": {
        "operationId": "runs-sync-jpmarketdata-jalan-japan-hotel-price-checker",
        "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/jpmarketdata~jalan-japan-hotel-price-checker/run-sync": {
      "post": {
        "operationId": "run-sync-jpmarketdata-jalan-japan-hotel-price-checker",
        "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": [
          "areas"
        ],
        "properties": {
          "areas": {
            "title": "Places to price",
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "description": "One row of numbers per place. Each area is charged $0.02, and an area with no room free that night is not charged. Japanese place names work best (`京都`, `箱根`, `別府`); the 47 prefectures and about 40 famous areas are also known by their English names (`Kyoto`, `Hakone`), and anything else is sent as typed. About 5 areas fit a run's reading time; the $3.00 Maximum cost per run stops one at 150.",
            "default": [
              "Kyoto"
            ],
            "items": {
              "type": "string"
            }
          },
          "checkInDate": {
            "title": "Night to price (YYYY-MM-DD)",
            "type": "string",
            "description": "The night you want priced, e.g. `2026-10-09`. Leave it empty and the night is today in Japan plus the days below, so a saved input never goes stale. The date moves every number: measured 2026-09-09, 京都 had 149 hotels with a room free on 2026-10-09 and 173 on 2026-11-03. It does not change what you are charged.",
            "default": ""
          },
          "daysAhead": {
            "title": "Days ahead when no date is given",
            "minimum": 0,
            "maximum": 180,
            "type": "integer",
            "description": "Used only when the night above is empty: the night priced is today in Japan plus this many days. 30 means about a month out. A night far ahead usually has more hotels with rooms free and cheaper prices than one a day or two away, so this quietly decides which market you are looking at. It does not change what you are charged.",
            "default": 30
          },
          "nights": {
            "title": "Nights in a row",
            "minimum": 1,
            "maximum": 14,
            "type": "integer",
            "description": "How many nights the stay covers. Longer stays shrink the list, because fewer hotels have every night free: measured 2026-09-09, 京都 from 2026-10-09 had 149 hotels for one night and 55 for two. The yen figures stay per person for one night either way. It does not change what you are charged.",
            "default": 1
          },
          "adults": {
            "title": "Adults sharing one room",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many adults share the single room that is searched for. The site prices per person at that occupancy, so two adults sharing is cheaper per head than one adult alone, and a larger party finds fewer hotels with a room big enough. The number of rooms is always 1. It does not change what you are charged.",
            "default": 2
          },
          "maxHotelsSampled": {
            "title": "Hotels read if the order breaks",
            "minimum": 30,
            "maximum": 150,
            "type": "integer",
            "description": "A safety net for the rare run where the site stops returning cheapest-first. The yen figures are then measured on this many hotels from the top of the list instead of the whole list, and the row says so in `priceJpyBasis` and `monotonicityCheck`. A normal run reads 5 pages whatever this says. It does not cap the hotel rows: with individual hotels on, every hotel read is a row (+$0.002 each).",
            "default": 90
          },
          "includeIndividualHotels": {
            "title": "Also return each hotel as a row",
            "type": "boolean",
            "description": "Off by default: a run costs a flat $0.02 per area. Turn it on to also get the hotels that were read, one row each, at +$0.002 per row — hotel number, name, the site's own sub-area, price per person, guest rating, review count, address and link. Photos, review text and plan wording are never returned, on or off.",
            "default": false
          },
          "convertToUsd": {
            "title": "Also show prices in US dollars",
            "type": "boolean",
            "description": "Adds a US dollar copy of the yen price figures at today's rate. A failed rate lookup never fails the run — you simply get the yen numbers on their own.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}