{
  "openapi": "3.0.1",
  "info": {
    "title": "SUUMO vs at home — Japan Rent by Ward, Two Sites Compared",
    "description": "Enter a Japanese ward and get the going rent on both SUUMO and at home, side by side. Returns median rent, total monthly cost, rent per m² and floor area from each site, and how far apart the two sites are. $0.02 per area, only when both sites answer; +$0.002 per listing for the list. Unofficial.",
    "version": "0.1",
    "x-build-id": "xGrwYYN9pjofYU7As"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpmarketdata~japan-rent-market-benchmark/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpmarketdata-japan-rent-market-benchmark",
        "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~japan-rent-market-benchmark/runs": {
      "post": {
        "operationId": "runs-sync-jpmarketdata-japan-rent-market-benchmark",
        "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~japan-rent-market-benchmark/run-sync": {
      "post": {
        "operationId": "run-sync-jpmarketdata-japan-rent-market-benchmark",
        "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": "Areas",
            "maxItems": 8,
            "type": "array",
            "description": "One or more Japanese wards/cities to benchmark. Each area is priced on BOTH portals and costs $0.02. Accepted forms: a 5-digit JIS city code (13113 = Shibuya, 13104 = Shinjuku, 13112 = Setagaya), an at home area path (tokyo/shibuya-city), or an explicit pair '<JIS code>|<at home path>' such as '13113|tokyo/shibuya-city'. Built-in pairs cover Tokyo's 23 wards plus Hachioji and Machida; for any other city, open the ward on at home and copy the path between /chintai/ and /list/ out of the address bar (at home has no predictable romaji rule), take the JIS code from https://www.soumu.go.jp/denshijiti/code.html, and pass the two joined by '|'. Half a pair is rejected rather than guessed. Max 8 areas per run.",
            "default": [
              "13113"
            ],
            "items": {
              "type": "string"
            }
          },
          "floorPlans": {
            "title": "Floor plans (optional)",
            "type": "array",
            "description": "Keep only these floor plans before computing the statistics. Applied identically to both portals, so the two medians stay comparable. Leave empty to benchmark the whole area. 1R = studio (ワンルーム), K = kitchen, DK = dining kitchen, LDK = living/dining/kitchen.",
            "items": {
              "type": "string",
              "enum": [
                "1R",
                "1K",
                "1DK",
                "1LDK",
                "2K",
                "2DK",
                "2LDK",
                "3K",
                "3DK",
                "3LDK",
                "4LDK"
              ],
              "enumTitles": [
                "1R — studio (ワンルーム)",
                "1K — 1 room + kitchen",
                "1DK — 1 room + dining kitchen",
                "1LDK — 1 bedroom + living/dining/kitchen",
                "2K",
                "2DK",
                "2LDK",
                "3K",
                "3DK",
                "3LDK",
                "4LDK"
              ]
            }
          },
          "minFloorAreaSqm": {
            "title": "Minimum floor area (m2, optional)",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Drop units smaller than this. Applied identically to both portals. Units that do not publish a floor area are dropped when this is set, so the segment stays a measured one."
          },
          "maxFloorAreaSqm": {
            "title": "Maximum floor area (m2, optional)",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Drop units larger than this. Applied identically to both portals. Useful to cut share houses and whole-building offers out of an area."
          },
          "minRentJpy": {
            "title": "Minimum rent (JPY/month, optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop units cheaper than this before computing the statistics. Applied identically to both portals."
          },
          "maxRentJpy": {
            "title": "Maximum rent (JPY/month, optional)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop units more expensive than this. Applied identically to both portals. Useful to cut luxury outliers out of a central-Tokyo ward."
          },
          "suumoListingsPerArea": {
            "title": "SUUMO units sampled per area",
            "minimum": 30,
            "maximum": 300,
            "type": "integer",
            "description": "How many SUUMO rental units to sample per area before filtering. SUUMO returns 30 per page and pages are fetched 1.5 s apart, so 60 = two pages. Larger samples are steadier but slower.",
            "default": 60
          },
          "athomePagesPerArea": {
            "title": "at home pages sampled per area",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many at home list pages to sample per area. One page holds roughly 150 rooms (~130 buildings) and weighs ~1 MB, so the default of 2 gives a ~300-room sample. Pages are fetched 1.5 s apart and a run stops adding pages once its 95-second budget is spent.",
            "default": 2
          },
          "includeIndividualItems": {
            "title": "Include individual listings",
            "type": "boolean",
            "description": "Off by default: a run costs a flat $0.02 per area, whichever portals answered. Enable to also get every sampled unit from both portals (rent, management fee, deposit, key money, floor plan, floor area, rent per m2, building age on SUUMO) at +$0.002 per unit. With the defaults that is roughly 350 units per area.",
            "default": false
          },
          "convertToUsd": {
            "title": "Convert rents to USD",
            "type": "boolean",
            "description": "Adds USD rent statistics next to JPY using the current exchange rate (open.er-api.com, looked up once per run).",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}