{
  "openapi": "3.0.1",
  "info": {
    "title": "Livable Scraper: Tokyu Livable Japan Real Estate Listings",
    "description": "Scrape Tokyu Livable (livable.co.jp), a Japan real estate agency portal: used and new condominiums, houses, land and rentals with price in JPY, address, station walk, layout, area, coordinates, fees, photos and branch. Filter by city, price, size, layout. Export CSV, Excel, JSON, XML.",
    "version": "0.1",
    "x-build-id": "1uUf8OKPtoNKxxvAv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~livable-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-livable-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/recordsdata~livable-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-livable-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/recordsdata~livable-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-livable-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": {
          "operation": {
            "title": "For sale or for rent?",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Search properties for sale or for rent. Rentals are listed in Tokyo, Kanagawa, Saitama, Chiba, Osaka, Hyogo, Kyoto, Shiga and Miyagi.",
            "default": "sale"
          },
          "prefecture": {
            "title": "Prefecture",
            "enum": [
              "tokyo",
              "kanagawa",
              "saitama",
              "chiba",
              "ibaraki",
              "osaka",
              "hyogo",
              "kyoto",
              "shiga",
              "nara",
              "wakayama",
              "hokkaido",
              "miyagi",
              "aichi",
              "fukuokaken",
              "iwate",
              "nagano",
              "gifu",
              "shizuoka",
              "oita"
            ],
            "type": "string",
            "description": "Prefecture to search. Sale listings exist in 20 prefectures; rentals in 9 (Tokyo, Kanagawa, Saitama, Chiba, Osaka, Hyogo, Kyoto, Shiga, Miyagi).",
            "default": "tokyo"
          },
          "propertyTypes": {
            "title": "Property types (for sale only)",
            "type": "array",
            "description": "Types searched when buying. Condominiums and houses cover used and new; pick the narrower types (used, new) to split them. Rentals ignore this field: every rental type comes in one list.",
            "items": {
              "type": "string",
              "enum": [
                "mansion",
                "chuko-mansion",
                "kodate",
                "chuko-kodate",
                "shinchiku-kodate",
                "tochi"
              ],
              "enumTitles": [
                "Condominiums, used and new",
                "Used condominiums",
                "Houses, used and new",
                "Used houses",
                "New houses",
                "Land"
              ]
            },
            "default": [
              "mansion",
              "kodate",
              "tochi"
            ]
          },
          "maxItems": {
            "title": "Max rows to return",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "How many rows to return in total (listings, branches and buildings together). Example: 10. Free plan runs are capped at 10 rows; leave empty for no limit on paid plans."
          },
          "startUrls": {
            "title": "livable.co.jp page links",
            "type": "array",
            "description": "Optional. Paste livable.co.jp pages instead of using the search fields. Example: https://www.livable.co.jp/kounyu/mansion/tokyo/a13121/ (search page), a listing page, a branch page or a building page. Leave empty to search with the fields above.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "municipalities": {
            "title": "Cities and wards (optional)",
            "type": "array",
            "description": "Only these cities or wards of the prefecture: the Japanese name (for example 足立区, 世田谷区, 横浜市中区) or the area code from the search page address (a13121). Leave empty for every city with listings, the busiest first.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Min price (JPY; rent per month for rentals)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price in yen (for rentals, rent per month). Example: 30000000 for 30 million yen. The site filters in fixed steps and the actor applies your exact bound to every listing."
          },
          "maxPrice": {
            "title": "Max price (JPY; rent per month for rentals)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price in yen (for rentals, rent per month). Example: 80000000 for 80 million yen, or 200000 for a rent of 200,000 yen."
          },
          "minArea": {
            "title": "Min area (m2)",
            "minimum": 0,
            "type": "number",
            "description": "Smallest floor area in square metres (land area for land listings)."
          },
          "maxArea": {
            "title": "Max area (m2)",
            "minimum": 0,
            "type": "number",
            "description": "Largest floor area in square metres (land area for land listings)."
          },
          "layouts": {
            "title": "Layouts (optional)",
            "type": "array",
            "description": "Layout groups as the site offers them. Any of the chosen groups matches. Not used for land.",
            "items": {
              "type": "string",
              "enum": [
                "1room",
                "1k-1dk-1ldk",
                "2k-2dk-2ldk",
                "2ldk",
                "3k-3dk-3ldk",
                "4k-4dk-4ldk",
                "4k",
                "5k-5dk-5ldk",
                "6k"
              ],
              "enumTitles": [
                "1R / studio",
                "1K, 1DK, 1LDK",
                "2K, 2DK, 2LDK",
                "2LDK (houses)",
                "3K, 3DK, 3LDK",
                "4K, 4DK, 4LDK",
                "4K and larger (rentals)",
                "5K, 5DK, 5LDK",
                "6K and larger"
              ]
            },
            "default": []
          },
          "maxWalkMinutes": {
            "title": "Max walk to station (minutes)",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "Only listings within this many minutes on foot of a station (1 to 60). Example: 10."
          },
          "maxBuildingAge": {
            "title": "Max building age (years)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only buildings completed within this many years (1 to 100). Not used for land. Example: 10."
          },
          "priceReduced": {
            "title": "Price reduced only",
            "type": "boolean",
            "description": "Only sale listings whose price was lowered.",
            "default": false
          },
          "newlyListed": {
            "title": "Newly listed only",
            "type": "boolean",
            "description": "Only listings the site marks as newly listed.",
            "default": false
          },
          "renovated": {
            "title": "Renovated only",
            "type": "boolean",
            "description": "Only sale listings of renovated properties (condominiums and houses).",
            "default": false
          },
          "sort": {
            "title": "Sort results by",
            "enum": [
              "recommended",
              "newer",
              "price_low_to_high",
              "price_high_to_low",
              "rent_price_low_to_high",
              "rent_price_high_to_low",
              "walk",
              "years",
              "floor_area",
              "land_area"
            ],
            "type": "string",
            "description": "Order of the search results, which decides which listings come first when Max items is small. Price sorts for rentals are the rent ones.",
            "default": "recommended"
          },
          "recordTypes": {
            "title": "Rows to return",
            "type": "array",
            "description": "listings: one row per property for sale or rent. agencies: the Tokyu Livable branch behind each listing (address, hours, rating, services). buildings: the condominium building page behind each apartment (units, structure, builder, how many are for sale or rent).",
            "items": {
              "type": "string",
              "enum": [
                "listings",
                "agencies",
                "buildings"
              ],
              "enumTitles": [
                "Listings",
                "Branches (agencies)",
                "Buildings (condominium pages)"
              ]
            },
            "default": [
              "listings"
            ]
          },
          "fetchDetails": {
            "title": "Open each listing page (full detail)",
            "type": "boolean",
            "description": "On: every listing page is read for the full record (coordinates, all photos, description, branch, building, exact dates, management and repair fees, land rights). Off: only what the search page shows (faster and cheaper, no coordinates or branch). Must stay on to collect branches or buildings.",
            "default": true
          },
          "includeContactDetails": {
            "title": "Include branch phone numbers",
            "type": "boolean",
            "description": "Off by default. On: branch rows and listing rows carry the phone number of the Tokyu Livable branch (a business line) and phone numbers written inside descriptions are kept. Individual staff names are never returned.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new rows since the last run",
            "type": "boolean",
            "description": "Only new rows: skip every listing, branch or building this same search already returned in an earlier run, so a scheduled run returns just the new ones and you are not charged for skipped rows. Max Items then means N new rows. Off by default.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name (optional)",
            "type": "string",
            "description": "A label to keep two monitors of the same search apart. Leave empty for one monitor per search.",
            "default": ""
          },
          "resetSeen": {
            "title": "Start the monitor over",
            "type": "boolean",
            "description": "Forget everything this search returned before and start the monitor again from now.",
            "default": false
          },
          "maxRunSeconds": {
            "title": "Stop after (seconds)",
            "minimum": 30,
            "maximum": 86400,
            "type": "integer",
            "description": "The actor stops reading new pages after this time and returns what it has.",
            "default": 3600
          },
          "proxyConfiguration": {
            "title": "Proxy (usually not needed)",
            "type": "object",
            "description": "Not needed: the actor reads livable.co.jp directly at a polite pace (one request per second). If the site ever refuses the connection, the actor switches to the Apify datacenter proxy by itself. Switch the proxy on here to force it from the first request.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}