# 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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

Download the OpenAPI definition: https://api.apify.com/v2/actors/nyOAZiBEjjrJuED6K/builds/fQH1LkT2nOhgeSEwC/openapi.json
