# SUUMO Japan Rent & Used Condo Prices by City + Gross Yield (`jpmarketdata/suumo-market-checker`) Actor

Enter a city code and get advertised rents and used-condo prices on SUUMO, Japan's largest property site. Returns median rent, rent per m², deposit and key-money share, median condo price, price per m² and a rough gross yield. $0.02 per city and property type, no results = no charge. Unofficial.

- **URL**: https://apify.com/jpmarketdata/suumo-market-checker.md
- **Developed by:** [h ichi](https://apify.com/jpmarketdata) (community)
- **Categories:** Real estate, Automation, Developer tools
- **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/actors/running/actors-in-store.md#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 Rent & Used Condo Prices by City + Gross Yield

**What it does:** Tells you what it costs to rent, or to buy a used condo, in any Japanese city — from listings on SUUMO, Japan's largest property site.

**You enter:** A 5-digit city code, e.g. `13113` (Shibuya, Tokyo), and rent / used condos / both.

**You get:** One row per city: median rent and range, rent per m², share of listings asking a deposit or key money, median condo price, price per m², a rough gross yield — from the first 60 listings of each type. Listings one row each, off by default.

**Price:** $0.02 per city and property type — every city in a run is charged, and the default rent + condos = $0.04. The yield figure is free. No results = no charge. +$0.002 per listing if you also want the list.

**Example:** enter `13113` (Shibuya) → median rent ¥65,000 · rent per m² ¥3,799 · 76.7% ask a deposit · gross yield 3.04% · measured on 60 of the 75,005 rentals found

> Unofficial — not affiliated with SUUMO. Reads public pages only.

### Pricing — $0.02 per city and property type

| 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 — see the table below. [Full official list](https://www.soumu.go.jp/denshijiti/code.html) (Japanese) |
| `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 |

**Finding a city code.** The code is the 5-digit JIS code: the first two digits are the prefecture, the last three the city or ward. Tokyo's 23 wards are consecutive:

| Code | Ward | Code | Ward | Code | Ward |
|---|---|---|---|---|---|
| 13101 | Chiyoda | 13109 | Shinagawa | 13117 | Kita |
| 13102 | Chuo | 13110 | Meguro | 13118 | Arakawa |
| 13103 | Minato | 13111 | Ota | 13119 | Itabashi |
| 13104 | Shinjuku | 13112 | Setagaya | 13120 | Nerima |
| 13105 | Bunkyo | 13113 | Shibuya | 13121 | Adachi |
| 13106 | Taito | 13114 | Nakano | 13122 | Katsushika |
| 13107 | Sumida | 13115 | Suginami | 13123 | Edogawa |
| 13108 | Koto | 13116 | Toshima | 13201 | Hachioji |

Outside Tokyo: `13209` Machida, `27127` Osaka Kita, `01101` Sapporo Chuo. Everything else is in the [official list](https://www.soumu.go.jp/denshijiti/code.html) (Japanese, spreadsheet).

**A code that does not exist is not charged.** SUUMO answers it with a page that carries neither a hit count nor listings, and the run fails that city with the code named and a link to the list — it does not report a number for it. A city that exists but has nothing listed is a different thing: that is a free summary with `areaStatus: "no_listings"` and a one-line `hint`.

### Output example (summaries, abridged)

Measured on 2026-07-24 (real run, Shibuya), abridged, plus the `areaStatus` field added on 2026-08-18 (that run predates it).

```json
{
  "type": "rent_summary",
  "cityCode": "13113",
  "areaLabel": "東京都渋谷区",
  "areaStatus": "ok",
  "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, several cities in one run
- **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.
- **`areaStatus` says which kind of answer you got**: `ok` when listings were sampled, `no_listings` when SUUMO answered for that city and had none (the record then also carries a one-line `hint`). Neither is charged; the statistics fields stay empty rather than being filled with something else.
- The yield estimate is indicative: rental and for-sale stock differ in size and age mix. It is not property-level analysis.
- This tool reads 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)。存在しないコードは、そのコード名とコード一覧の案内を添えてその市区だけ失敗させます(課金なし)。実在する市区に物件が無い場合は別物で、`areaStatus: "no_listings"` と `hint` 付きの無料サマリーを返します
- **料金**: サマリー1件 $0.02(`both` は賃貸+売買で $0.04)。従量課金です。個別物件リストが必要な場合のみ +$0.002/件
- **用途**: 投資エリア比較・引っ越し先の相場確認・市場調査。データは実行のたびに取得(保存なし)

### If something goes wrong

- **Wrong number or a failed run?** Open a ticket on the **Issues** tab. I read every one and reply within 2 business days (Japan time).
- **You never get a fake "empty" result.** If the site can't be read, the run fails and says so.
- **No results = no charge.** You only pay for results you actually get.
- **Checked every week.** An automatic test runs this tool weekly; if the site changes, I fix it.
- **Public pages only.** No login, no personal data, and it goes easy on the site.

### More tools by the same author

- [at home Japan Rent Prices by Area — Fees & Deposits](https://apify.com/jpmarketdata/athome-rent-market-checker)
- [SUUMO vs at home — Japan Rent by Ward, Two Sites Compared](https://apify.com/jpmarketdata/japan-rent-market-benchmark)
- [Mercari Japan Sold Prices — What Items Really Sell For](https://apify.com/jpmarketdata/mercari-japan-price-checker)
- [Yahoo! Auctions Japan Sold Prices — Median, Range, Bids](https://apify.com/jpmarketdata/yahoo-auction-sold-comps)

Other language editions of this tool: [中文](https://apify.com/jpmarketdata/suumo-market-cn)

All tools (Japan marketplaces, real estate, jobs, racing, prediction markets): <https://apify.com/jpmarketdata>

### Disclaimer

Unofficial, independent tool — **not affiliated with, endorsed by, or sponsored by SUUMO**. Product names and logos belong to their owners and only say where the data comes from. Data is read from public pages, for market research; check before you act on it.

# 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. Tokyo's 23 wards are consecutive, 13101 (Chiyoda) to 13123 (Edogawa). Full list: https://www.soumu.go.jp/denshijiti/code.html (Japanese). A code that does not exist is not charged: SUUMO answers it with a page carrying neither a hit count nor listings, and the run fails that city with the code named.

## `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
}
```

# Actor output Schema

## `areaSummaries` (type: `string`):

One row per city and property type: the middle asking rent and the middle used-condo price, both per month and per square metre, how many were measured, plus deposit and key-money share, building age and the most common layouts.

# 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(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jpmarketdata/suumo-market-checker"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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