# SUUMO Japan Real Estate — Rent & Price Stats + Gross Yield (`jpmarketdata/suumo-market-checker`) Actor

Rent and used-condo price statistics (median, ¥/m², deposit customs) for any Japanese city, plus a gross-yield estimate. One call answers: what does this area really cost? From $0.02 per area — no subscription. SUUMOの賃料・中古マンション相場と表面利回りを1コールで。

- **URL**: https://apify.com/jpmarketdata/suumo-market-checker.md
- **Developed by:** [h ichi](https://apify.com/jpmarketdata) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 market summary — one city × property types

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## SUUMO Japan Real Estate — Rent & Price Stats + Gross Yield

Market statistics for Japanese real estate, straight from [SUUMO](https://suumo.jp) — Japan's largest property portal. One call per city returns:

- **Rent summary** — median / quartile rent, **rent per m²**, admin-fee median, how common deposits (敷金) and key money (礼金) are, median building age, top layouts
- **Sale summary** (used condominiums / 中古マンション) — median price, **price per m²**, median built year, top layouts
- **Gross-yield estimate** — median rent per m² × 12 ÷ median sale price per m², the classic first-pass number for comparing areas as an investor
- Optionally, every sampled listing (price, m², layout, age, address, URL)

Prices are reported in JPY and (optionally) USD. Data is fetched on demand from SUUMO's public search pages — nothing is stored between runs.

### Pricing — from $0.02 per area, no subscription

| Event | Price | When |
|---|---|---|
| Market summary | $0.02 | Per city × property type (e.g. `both` = rent + sale = $0.04). Yield estimate is free. |
| Individual listing | $0.002 | Only if you enable **Include individual listings** |

A default run (1 city, `both`, summaries only) costs **$0.04**. You are never charged for a city that returns zero listings.

### Input

| Field | Example | Notes |
|---|---|---|
| `cityCodes` | `["13113"]` | 5-digit JIS city/ward codes. 13113 = Shibuya, 13104 = Shinjuku, 27127 = Osaka Kita, 01101 = Sapporo Chuo. [Full official list](https://www.soumu.go.jp/denshijiti/code.html) |
| `propertyType` | `"both"` | `rent`, `buy` (used condos) or `both` (adds the yield estimate) |
| `maxListingsPerCity` | `60` | Sample size per city per type (30–300) |
| `includeIndividualListings` | `false` | Enable to get each listing as a record |
| `convertToUsd` | `true` | Adds USD stats at the current exchange rate |

### Output example (summaries)

```json
{
  "type": "rent_summary",
  "cityCode": "13113",
  "areaLabel": "東京都渋谷区",
  "totalListingsFound": 75005,
  "sampledUnits": 60,
  "rentJpy": {"min": 49000, "p25": 64000, "median": 65000, "p75": 65750, "max": 80000, "average": 64933},
  "rentPerM2Jpy": {"median": 3799, "...": "..."},
  "adminFeeJpyMedian": 10000,
  "pctWithDeposit": 76.7,
  "pctWithGratuity": 80.0,
  "medianBuildingAgeYears": 35
}
````

```json
{
  "type": "yield_estimate",
  "cityCode": "13113",
  "grossYieldPct": 3.04,
  "medianRentPerM2Jpy": 3799,
  "medianSalePricePerM2Jpy": 1500276
}
```

### Use cases

- **Investors / analysts**: compare areas by rent level, ¥/m² and indicative gross yield in one API call
- **Relocation & proptech services**: show clients what a neighbourhood really costs, including deposit/key-money customs
- **Researchers**: track rent and price levels across Japanese cities on demand

### Notes & fair use

- `totalListingsFound` is SUUMO's displayed hit count and includes duplicate listings by multiple agencies.
- The yield estimate is indicative: rental and for-sale stock differ in size and age mix. It is not property-level analysis.
- The Actor fetches only public search pages, throttled, on demand. No login, no personal data.

***

### 日本語ガイド

SUUMO の公開検索ページから、市区ごとの**賃料相場**(中央値・㎡単価・管理費・敷金/礼金の割合・築年数)と**中古マンション相場**(価格・㎡単価・築年)、および両者から計算する**表面利回りの目安**を1コールで返します。

- **入力**: `cityCodes` に市区町村コード(5桁)を指定 — 例: `13113`=渋谷区、`27127`=大阪市北区。[コード一覧(総務省)](https://www.soumu.go.jp/denshijiti/code.html)
- **料金**: サマリー1件 $0.02(`both` は賃貸+売買で $0.04)。定額・サブスク不要。個別物件リストが必要な場合のみ +$0.002/件
- **用途**: 投資エリア比較・引っ越し先の相場確認・市場調査。データは実行のたびに取得(保存なし)

# Actor input Schema

## `cityCodes` (type: `array`):

One or more Japanese city/ward codes (全国地方公共団体コード, first 5 digits). Examples: 13113 = Shibuya-ku Tokyo, 13104 = Shinjuku-ku Tokyo, 27127 = Osaka Kita-ku, 26102 = Kyoto Kamigyo-ku, 01101 = Sapporo Chuo-ku. Full list: https://www.soumu.go.jp/denshijiti/code.html

## `propertyType` (type: `string`):

'rent' analyzes rental listings, 'buy' analyzes used condominiums for sale (中古マンション). 'both' fetches the two sets, reports them separately and adds a gross-yield estimate per city ($0.02 x 2 summaries).

## `maxListingsPerCity` (type: `integer`):

How many listings to sample per city (per property type). 30 = one result page. More listings = better statistics. Affects cost only when 'Include individual listings' is enabled (+$0.002 per listing).

## `includeIndividualListings` (type: `boolean`):

Off by default: a run costs a flat $0.02 per summary (city x property type). Enable to also get every sampled listing (rent/price, m², layout, building age, address, URL) at +$0.002 per listing.

## `convertToUsd` (type: `boolean`):

Adds USD statistics next to JPY using the current exchange rate (open.er-api.com).

## Actor input object example

```json
{
  "cityCodes": [
    "13113"
  ],
  "propertyType": "both",
  "maxListingsPerCity": 60,
  "includeIndividualListings": false,
  "convertToUsd": true
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "cityCodes": [
        "13113"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jpmarketdata/suumo-market-checker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "cityCodes": ["13113"] }

# Run the Actor and wait for it to finish
run = client.actor("jpmarketdata/suumo-market-checker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "cityCodes": [
    "13113"
  ]
}' |
apify call jpmarketdata/suumo-market-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jpmarketdata/suumo-market-checker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SUUMO Japan Real Estate — Rent & Price Stats + Gross Yield",
        "description": "Rent and used-condo price statistics (median, ¥/m², deposit customs) for any Japanese city, plus a gross-yield estimate. One call answers: what does this area really cost? From $0.02 per area — no subscription. SUUMOの賃料・中古マンション相場と表面利回りを1コールで。",
        "version": "0.1",
        "x-build-id": "fQH1LkT2nOhgeSEwC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jpmarketdata~suumo-market-checker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jpmarketdata-suumo-market-checker",
                "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~suumo-market-checker/runs": {
            "post": {
                "operationId": "runs-sync-jpmarketdata-suumo-market-checker",
                "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~suumo-market-checker/run-sync": {
            "post": {
                "operationId": "run-sync-jpmarketdata-suumo-market-checker",
                "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": [
                    "cityCodes"
                ],
                "properties": {
                    "cityCodes": {
                        "title": "City codes (5-digit JIS)",
                        "type": "array",
                        "description": "One or more Japanese city/ward codes (全国地方公共団体コード, first 5 digits). Examples: 13113 = Shibuya-ku Tokyo, 13104 = Shinjuku-ku Tokyo, 27127 = Osaka Kita-ku, 26102 = Kyoto Kamigyo-ku, 01101 = Sapporo Chuo-ku. Full list: https://www.soumu.go.jp/denshijiti/code.html",
                        "items": {
                            "type": "string"
                        }
                    },
                    "propertyType": {
                        "title": "Property type",
                        "enum": [
                            "rent",
                            "buy",
                            "both"
                        ],
                        "type": "string",
                        "description": "'rent' analyzes rental listings, 'buy' analyzes used condominiums for sale (中古マンション). 'both' fetches the two sets, reports them separately and adds a gross-yield estimate per city ($0.02 x 2 summaries).",
                        "default": "both"
                    },
                    "maxListingsPerCity": {
                        "title": "Max listings per city",
                        "minimum": 30,
                        "maximum": 300,
                        "type": "integer",
                        "description": "How many listings to sample per city (per property type). 30 = one result page. More listings = better statistics. Affects cost only when 'Include individual listings' is enabled (+$0.002 per listing).",
                        "default": 60
                    },
                    "includeIndividualListings": {
                        "title": "Include individual listings",
                        "type": "boolean",
                        "description": "Off by default: a run costs a flat $0.02 per summary (city x property type). Enable to also get every sampled listing (rent/price, m², layout, building age, address, URL) at +$0.002 per listing.",
                        "default": false
                    },
                    "convertToUsd": {
                        "title": "Convert prices to USD",
                        "type": "boolean",
                        "description": "Adds USD statistics next to JPY using the current exchange rate (open.er-api.com).",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
