{
  "openapi": "3.0.1",
  "info": {
    "title": "SUUMO Japan Rental Listings Scraper",
    "description": "Scrape rental listings from SUUMO, Japan's largest property portal. Rent, management fee, deposit and key money as plain yen numbers, plus layout, area, floor, building age and station walk times. One row per available room.",
    "version": "1.0",
    "x-build-id": "sJ8E9QnBxF8odj2VL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/piquno~suumo-japan-rental-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-piquno-suumo-japan-rental-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/piquno~suumo-japan-rental-scraper/runs": {
      "post": {
        "operationId": "runs-sync-piquno-suumo-japan-rental-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/piquno~suumo-japan-rental-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-piquno-suumo-japan-rental-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": {
          "startUrls": {
            "title": "SUUMO search URLs",
            "type": "array",
            "description": "Paste any SUUMO rental search URL, with whatever filters you already set on the site. This is the most precise way to run the actor and it overrides the prefecture below.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "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": "Used when no search URL is given. SUUMO needs a city or ward to return listings, so a prefecture is expanded into its wards automatically.",
            "default": "tokyo"
          },
          "maxItems": {
            "title": "Max rooms",
            "minimum": 1,
            "type": "integer",
            "description": "Hard limit on rows. One request returns roughly 150 rooms across about 30 buildings, so this is cheap: 1,000 rooms is around 7 requests. The default of 100 is a single page.",
            "default": 100
          },
          "requestDelaySecs": {
            "title": "Delay between requests (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "SUUMO throttles hard and answers 503 when it does. The actor already backs off and retries; raise this if the run summary shows many throttle responses.",
            "default": 2
          },
          "maxRentYen": {
            "title": "Max rent (yen/month)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only rooms at or below this monthly rent, e.g. 150000. Excludes the management fee — see monthlyTotalYen in the output for the all-in figure."
          },
          "minAreaSqm": {
            "title": "Min area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only rooms of at least this floor area, e.g. 25."
          },
          "layoutContains": {
            "title": "Layout contains",
            "type": "string",
            "description": "Keep only rooms whose layout contains this, e.g. \"1K\", \"2LDK\", \"LDK\"."
          },
          "maxWalkMinutes": {
            "title": "Max walk to a station (minutes)",
            "minimum": 1,
            "type": "integer",
            "description": "Keep only rooms within this walk of at least one of their listed stations. Bus-access entries have no station walk time and are excluded by this filter."
          },
          "maxBuildingAgeYears": {
            "title": "Max building age (years)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only buildings at or below this age. Newly built (新築) counts as 0."
          },
          "incremental": {
            "title": "Incremental mode (only new listings)",
            "type": "boolean",
            "description": "Remember room ids between runs and emit only listings not seen before. Turns a scheduled watch into a cheap delta instead of re-billing the whole search.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Namespace for incremental state. Use a different key per saved search so separate schedules do not share history.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Keep Apify Proxy enabled. SUUMO rate-limits by IP and starts returning 503 to a single address quickly; the datacenter pool is included on every Apify plan and spreads the load.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}