{
  "openapi": "3.0.1",
  "info": {
    "title": "Suumo.jp Scraper - Japan Rental Listings, Prices & Agents",
    "description": "Scrape Suumo, Japan's largest property portal: rental rooms with rent, management fees, deposits, layout, floor area, station access, photos and the listing agency's name. Search by prefecture and city or paste links, and monitor price changes with recurring updates.",
    "version": "0.2",
    "x-build-id": "otX3umyVEdPpMqKFj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~suumo-jp-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-suumo-jp-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/abotapi~suumo-jp-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-suumo-jp-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/abotapi~suumo-jp-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-suumo-jp-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "urls"
            ],
            "type": "string",
            "description": "Search by area walks the rental result pages for the prefecture and cities below. My own links walks the links you paste, forward from the page each link names.",
            "default": "search"
          },
          "prefecture": {
            "title": "Prefecture",
            "enum": [
              "01",
              "02",
              "03",
              "04",
              "05",
              "06",
              "07",
              "08",
              "09",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30",
              "31",
              "32",
              "33",
              "34",
              "35",
              "36",
              "37",
              "38",
              "39",
              "40",
              "41",
              "42",
              "43",
              "44",
              "45",
              "46",
              "47"
            ],
            "type": "string",
            "description": "The prefecture to search, as its two-digit JIS code. One run covers one prefecture.",
            "default": "13"
          },
          "cityCodes": {
            "title": "City codes (optional)",
            "type": "array",
            "description": "JIS 5-digit city codes, exactly as suumo uses them in its own search links: 13101 Chiyoda-ku, 13102 Chuo-ku, 13103 Minato-ku, 13104 Shinjuku-ku, 13113 Shibuya-ku, and so on. Every city is walked as its own source and shares the run limit. Leave empty to walk the whole prefecture.",
            "items": {
              "type": "string"
            }
          },
          "layouts": {
            "title": "Layout codes (optional)",
            "uniqueItems": true,
            "type": "array",
            "description": "Room layout filter applied by the site itself, as the two-digit codes of suumo's own search grammar: 01 studio (one room), 02 1K, 03 1DK, 04 1LDK, 05 2K, 06 2DK, 07 2LDK, 08 3K, 09 3DK, 10 3LDK, 11 4K, 12 4DK, 13 4LDK. Empty means every layout.",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Suumo links",
            "type": "array",
            "description": "Multi-URL supported. Paste rental search links (/jj/chintai/ichiran/...) or single room links (/chintai/jnc_.../). Pagination starts at the page named in the link and walks forward. Search-mode fields are ignored in this mode.",
            "items": {
              "type": "string"
            }
          },
          "fetchDetails": {
            "title": "Read each room's own page",
            "type": "boolean",
            "description": "The search page carries rent, fees, layout, area, address, stations and building age. A room's own page adds the photo set, the full spec table, the agency's pitch and the agency name. Pasted room links are their own page, so they are always read and always carry the surcharge.",
            "default": false
          },
          "maxItems": {
            "title": "Max rooms",
            "minimum": 0,
            "type": "integer",
            "description": "The single limit that stops a run. 0 means no limit: the walk ends when the site runs out of results.",
            "default": 0
          },
          "maxPages": {
            "title": "Max pages per source",
            "minimum": 0,
            "type": "integer",
            "description": "Runaway guard per source. 0 means the walk ends when the site runs out of results.",
            "default": 0
          },
          "resumeFromRunId": {
            "title": "Continue a previous run",
            "type": "string",
            "description": "Give the run id of an interrupted run and every room it already collected is skipped. Mutually exclusive with recurring updates once a baseline exists."
          },
          "incrementalMode": {
            "title": "Recurring updates (only return what changed)",
            "type": "boolean",
            "description": "Label every room NEW, UPDATED, UNCHANGED or REAPPEARED against the previous run of the same setup, and record the ones that vanished as EXPIRED. Unchanged rooms are not returned unless you also turn on the return-unchanged switch. Returns (and bills) extra rows only for what changed.",
            "default": false
          },
          "stateKey": {
            "title": "State key (optional, recurring updates only)",
            "type": "string",
            "description": "Name the baseline of a recurring schedule yourself. Without it the baseline is keyed on the whole search setup, so two differently-configured schedules never share one baseline."
          },
          "emitUnchanged": {
            "title": "Also return unchanged rooms (recurring updates only)",
            "type": "boolean",
            "description": "Returns (and bills) every tracked room again, labelled UNCHANGED, instead of only the changed ones.",
            "default": false
          },
          "emitExpired": {
            "title": "Also return rooms that are gone (recurring updates only)",
            "type": "boolean",
            "description": "Rooms tracked by the previous run but absent from a COMPLETE scan are returned (and billed) one last time, labelled EXPIRED. A run that stopped early never reports rooms as gone.",
            "default": false
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optional delivery step AFTER the scrape: pipes dataset results into apps you connected in the Apify MCP Connector setup.",
            "items": {
              "type": "string"
            }
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "Notion connector only: the parent page new Notion pages attach under."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many dataset rows at most each connector receives per run.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "suumo.jp serves its pages to ordinary connections, so the default is the standard Apify proxy with no group and no country pin. A home-country (Japan) residential exit also works and is only worth it if the standard pool is ever degraded.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}