{
  "openapi": "3.0.1",
  "info": {
    "title": "SUUMO Scraper - Japan Real Estate Listings API",
    "description": "Scrape SUUMO.jp Japan property listings: used & new condos, houses, land, and rentals. Extract prices, layouts, area, station access, fees, and photos as a SUUMO API alternative.",
    "version": "0.4",
    "x-build-id": "iioWgMxdwnMg1OFHT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lentic_clockss~suumo-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lentic_clockss-suumo-property-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/lentic_clockss~suumo-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lentic_clockss-suumo-property-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/lentic_clockss~suumo-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lentic_clockss-suumo-property-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": {
          "provider": {
            "title": "Listing source",
            "enum": [
              "curl",
              "app",
              "map"
            ],
            "type": "string",
            "description": "App listings support all six property types using prefectureCode and optional cityCode instead of location/startUrls. Map listings enumerate a bounding box via the map marker/count API (auto-issued credentials). No proxy is needed for app or map.",
            "default": "curl"
          },
          "bbox": {
            "title": "Map bbox",
            "type": "object",
            "description": "Required for provider=map. Either corners {lat1,lng1,lat2,lng2} or centre+radius {lat,lng,radiusKm}. Lat/lng in degrees."
          },
          "prefectureCode": {
            "title": "App prefecture code",
            "pattern": "^(0[1-9]|[1-3][0-9]|4[0-7])$",
            "type": "string",
            "description": "Required for provider=app or map. Two-digit prefecture code (01–47), e.g. 13 for Tokyo or 27 for Osaka. Leave empty for web pages."
          },
          "cityCode": {
            "title": "App city/ward code",
            "pattern": "^[0-9]{5}$",
            "type": "string",
            "description": "Optional for provider=app and most map searches; required for provider=map rentals. Five-digit city/ward code, e.g. 13104 for Shinjuku. Must begin with prefectureCode."
          },
          "pageSize": {
            "title": "App listings per page",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Structured App page width; maxItems limits rows for this region input and maxPages limits requests.",
            "default": 50
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "SUUMO search (SRP) or listing detail (LDP) URLs. Each URL is an input with its own maxItems allowance. Search URLs auto-detect propertyType and override location/propertyType when provided.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "location": {
            "title": "Location path",
            "type": "string",
            "description": "SUUMO area path — use a LEAF like tokyo/sc_shinjuku or kyoto/sc_kyotoshikita (prefecture/city). When startUrls are empty, this region is one input with its own maxItems allowance. Bare prefecture like kyoto alone is an INDEX page with 0 listings; pick a city/sc_* leaf.",
            "default": "tokyo/sc_shinjuku"
          },
          "propertyType": {
            "title": "Property type",
            "enum": [
              "chuko_mansion",
              "shinchiku_mansion",
              "ikkodate",
              "chukoikkodate",
              "tochi",
              "chintai"
            ],
            "type": "string",
            "description": "SUUMO listing category. Used when building a search from location. Ignored when startUrls contain a search URL (auto-detected).",
            "default": "chuko_mansion"
          },
          "channel": {
            "title": "Channel (legacy)",
            "enum": [
              "BUY",
              "RENT"
            ],
            "type": "string",
            "description": "Legacy alias: BUY → chuko_mansion, RENT → chintai. Prefer propertyType. If propertyType is left at the default (chuko_mansion) and channel=RENT, RENT wins.",
            "default": "BUY"
          },
          "maxItems": {
            "title": "Max listings per input (max 2,000)",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum listing rows for each start URL or selected web, App, or map region (1–2,000; default 70). Larger values are collected in parts of up to 70 rows. All row types count together. The whole run stops at your maximum total charge. Free Apify plan users: up to 200 rows per run and 10 runs total.",
            "default": 70
          },
          "maxPages": {
            "title": "Max search pages",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum search pages to fetch, for either the web or App channel.",
            "default": 1
          },
          "scrapeDetails": {
            "title": "Scrape detail pages",
            "type": "boolean",
            "description": "Fetch listing detail pages for additional fields. App rental bc_ guest pages are skipped; the available API contact fields remain included.",
            "default": true
          },
          "requestDelayMillis": {
            "title": "Delay between requests (ms)",
            "minimum": 0,
            "maximum": 15000,
            "type": "integer",
            "description": "Politeness delay between HTTP requests.",
            "default": 800
          },
          "maxConcurrency": {
            "title": "Request concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Max concurrent HTTP fetches for detail pages.",
            "default": 2
          },
          "workerBaseUrl": {
            "title": "Worker base URL (optional)",
            "type": "string",
            "description": "Override worker origin for this run. Default: Actor env WORKER_BASE_URL. Production migrations should update WORKER_BASE_URL in Actor settings (no code change)."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}