# SUUMO vs at home — Japan Rent by Ward, Two Sites Compared (`jpmarketdata/japan-rent-market-benchmark`) Actor

Enter a Japanese ward and get the going rent on both SUUMO and at home, side by side. Returns median rent, total monthly cost, rent per m² and floor area from each site, and how far apart the two sites are. $0.02 per area, only when both sites answer; +$0.002 per listing for the list. Unofficial.

- **URL**: https://apify.com/jpmarketdata/japan-rent-market-benchmark.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 area rent benchmarks

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 vs at home — Japan Rent by Ward, Two Sites Compared

**What it does:** Shows the going rent in a Japanese ward on the two big rental sites, SUUMO and at home, side by side — and how far apart they are.

**You enter:** A 5-digit city code, e.g. `13113` (Shibuya); outside Tokyo's 23 wards give `<code>|<at home path>`.

**You get:** One row per area: median rent, total monthly cost, rent per m² and floor area on each site, the gap between the sites in %, floor-plan mix and no-deposit share, sample size and hit count. Optional: one row per listing.

**Price:** $0.02 per area, charged only when both sites return a rent median. +$0.002 per listing if you also want the list.

**Example:** enter `13113` (Shibuya) → SUUMO median rent ¥73,000 (60 units) · at home ¥195,000 (256 rooms) · rent per m² ¥4,026 vs ¥5,668 · gap 40.8%

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

### The divergence is the product, not a defect

There is deliberately **no attempt to match the same building across the two portals**. Name matching in Japanese rental data is guesswork, and it is not what the question needs: a renter, a landlord setting a price and an investor underwriting a yield all ask *"what is the going rent for this kind of unit here"*, which is a **distribution** question. So the same area is priced on both portals under the same client-side filters and the quantiles are reported side by side.

**When the two medians disagree by 20%, that is the finding.** Two portals covering one ward do not sample the same population — their agency mixes differ, SUUMO's newest-first order over-weights units just put on the market, and at home's default order was never verified to be neutral. A single-portal number hides all of that behind one confident-looking figure. So every block ships:

- **`sampleSize`** (what the statistics were computed on) **next to `totalFound`** (what the portal itself says exists) — never the same number, never inferred from each other
- **`samplingOrder`** and a plain-English `samplingOrderNote`, plus `divergence.compositionSignals.samplingOrderMatches`, which is `false` here by construction
- **`compositionSignals`** — median floor area, floor-plan mix, move-in-cost practice and (SUUMO only) median building age, i.e. the mix that the median is made of

`divergencePct` is `|athome − suumo|` as a percentage of the **lower** of the two medians, so it is symmetric and never negative; `higherSource` carries the direction. The headline is **rent per m²**, because it is the only metric a difference in unit size cannot move.

### The one tag you must not drop: `rentBasis: "asking"`

Both portals publish **advertised rents of vacant units**. Neither publishes signed-contract rents. Every block and the divergence itself carry `rentBasis`, and the comparison is tagged `asking_vs_asking`. Reading these numbers as contract rents — or against a purchase price — is the one way to turn this product into a lie.

**Rent only.** Japanese transaction prices are already served free by the Ministry of Land's official API, so this Actor never touches the sale side of either portal.

### Filters mean the same thing on both portals

`floorPlans`, `minFloorAreaSqm` / `maxFloorAreaSqm` and `minRentJpy` / `maxRentJpy` are applied **client-side, after fetching, identically to both sources** — a filter that means the same thing everywhere is what keeps the two medians comparable. `1R` and `ワンルーム` are folded to one token so a floor-plan filter cannot match on one portal only.

**There is no building-age filter on purpose.** Only SUUMO publishes building age on its list page, so filtering on it would silently narrow one side and not the other — and destroy the comparison it was supposed to explain. Age is reported as a *signal* instead (`compositionSignals.*.medianBuildingAgeYears`, `buildingAgeCoverage: "suumo_only"`).

Deposit and key money get the same treatment in reverse: SUUMO writes them in **yen**, at home in **months**. They are converted (amount ÷ that unit's own rent) and compared as **practice** — how many units ask for none / one / two months — never as a price.

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

| Event | Price | When |
|---|---|---|
| Area benchmarked on both portals (`area-analyzed`, primary event) | **$0.02** | Once per area |
| Individual listing (`listing-scraped`) | **$0.002** | Only if you enable **Include individual listings** |

A default run (1 area, both portals, summary only) costs **$0.02** and took **8 seconds** end to end when measured. Five wards in one call cost **$0.10**.

**An area is only charged when both portals returned a rent median.** A "benchmark" with one portal in it is not a comparison — it is a single-portal lookup you can buy for the same price elsewhere, so here it is free (the record is still published, with `divergence.comparable: false` and the failing portal's `error`).

Most property-data products rent by the month; here an occasional benchmark costs cents.

Individual listings are **off by default**, so the price of a run stays predictable. On the measured default run that would have been 60 SUUMO units + 256 at home rooms = **316 × $0.002 = $0.63** on top of the $0.02 — enable it deliberately, and narrow with `floorPlans` or a rent window if you only want a segment (the same area filtered to `1K` emitted 105 listings).

### Input

| Field | Example | Notes |
|---|---|---|
| `areas` | `["13113"]` | JIS city code, at home path, or `"<JIS>\|<at home path>"`. Max 8 per run, $0.02 each |
| `floorPlans` | `["1K","1LDK"]` | Optional. Applied **identically to both portals** |
| `minFloorAreaSqm` / `maxFloorAreaSqm` | `20` / `40` | Optional m² window. Units with no published area are dropped when set |
| `minRentJpy` / `maxRentJpy` | `80000` | Optional rent window, applied identically to both portals |
| `suumoListingsPerArea` | `60` | 30–300 SUUMO units sampled (30 per page, 1.5 s apart) |
| `athomePagesPerArea` | `2` | 1–5 at home pages (measured: ~115 rooms across 30 building cards, ~1 MB each) |
| `includeIndividualItems` | `false` | Enable to also get every sampled unit, +$0.002 each |
| `convertToUsd` | `true` | Adds USD rent stats at the current rate (one FX lookup per run) |

#### Naming an area

SUUMO is addressed by **5-digit JIS city code**, at home by a **URL path**. There is no formula between them, so the pairing is a table — and the table only contains pairs that were actually probed.

- **Built in**: Tokyo's 23 special wards (`13101`–`13123`) plus Hachioji (`13201`) and Machida (`13209`) — every one of those at home paths was probed, and a made-up path such as `tokyo/nosuchward-city` answers 404, which is what makes the probe mean something. Give either half — `"13113"` or `"tokyo/shibuya-city"` — and the other is filled in.
- **Anywhere else**: give the pair explicitly, in the form `"13113|tokyo/shibuya-city"`. To find the two halves: open the ward on at home, and copy the path that sits between `/chintai/` and `/list/` out of the address bar (at home does **not** use a predictable romaji rule — `osaka/kita-ku` and `kanagawa/yokohama-city` are both 404s); the JIS code list is at [soumu.go.jp](https://www.soumu.go.jp/denshijiti/code.html).

Half a pair is **refused with an error** rather than guessed. Comparing one portal's ward against another portal's prefecture would produce a divergence number that means nothing, and you would have no way to tell.

### Output example (`type: "rent_benchmark"`, abridged — a real run with the default input, Shibuya, 2026-08-07)

```json
{
  "type": "rent_benchmark",
  "areaLabel": "Shibuya, Tokyo (渋谷区)",
  "suumoCityCode": "13113",
  "athomeArea": "tokyo/shibuya-city",
  "areaPairing": "builtin",
  "suumoAddressLabel": "東京都渋谷区",
  "filter": { "floorPlans": [], "applied": false, "note": "Applied client-side and identically to both portals, after fetching. `totalFound` is the portal's own unfiltered hit count and is never affected by it." },
  "sources": {
    "suumo": {
      "source": "suumo",
      "sourceName": "SUUMO (スーモ)",
      "rentBasis": "asking",
      "samplingOrder": "newest_first",
      "totalFound": 77534,
      "sampleSize": 60,
      "pagesFetched": 2,
      "rentJpy": { "min": 10000, "p25": 67000, "median": 73000, "p75": 77250, "max": 190000, "average": 74558 },
      "totalMonthlyJpy": { "p25": 70000, "median": 78000, "p75": 82250 },
      "totalMonthlyKnown": 60,
      "rentPerSqmJpy": { "min": 390, "p25": 3745, "median": 4026, "p75": 4294, "max": 8426 },
      "floorAreaSqm": { "min": 9.02, "p25": 16.09, "median": 18.5, "p75": 20.27, "max": 52.95 },
      "buildingAgeYears": { "min": 8, "p25": 26, "median": 35, "p75": 42, "max": 53 },
      "floorPlanTop": [["1K", 36], ["1R", 23], ["3LDK", 1]],
      "moveInCost": { "keyMoneyMonths": { "none": 20, "one": 37, "two": 1, "other": 2 }, "noDepositNoKeyMoneyShare": 0.0833, "basis": "SUUMO publishes 敷金/礼金 as an amount; it is divided by the unit's own rent to get months. `-` is read as none." },
      "rentUsd": { "median": 461.43 }
    },
    "athome": {
      "source": "athome",
      "sourceName": "at home (アットホーム)",
      "rentBasis": "asking",
      "samplingOrder": "site_default",
      "totalFound": null,
      "totalFoundBasis": "at home publishes no hit count that can be told apart from its facet counts, so it is reported as null rather than guessed from the sample.",
      "sampleSize": 256,
      "sampledBuildings": 60,
      "pagesFetched": 2,
      "rentJpy": { "min": 87000, "p25": 157750, "median": 195000, "p75": 226000, "max": 485000, "average": 213775 },
      "totalMonthlyJpy": { "p25": 167750, "median": 205000, "p75": 244750 },
      "rentPerSqmJpy": { "min": 3234, "p25": 5462, "median": 5668, "p75": 6473, "max": 8953 },
      "floorAreaSqm": { "min": 18.53, "p25": 28.46, "median": 34.51, "p75": 39.76, "max": 134.5 },
      "buildingAgeYears": { "median": null },
      "buildingAgeKnown": 0,
      "floorPlanTop": [["1LDK", 90], ["1K", 69], ["2LDK", 37], ["1DK", 25], ["1R", 20]],
      "moveInCost": { "noDepositNoKeyMoneyShare": 0.1289, "basis": "at home publishes 敷金/礼金 as months; taken as written." },
      "rentUsd": { "median": 1232.6 }
    }
  },
  "divergence": {
    "rentBasis": "asking_vs_asking",
    "comparable": true,
    "headlineMetric": "rentPerSqmJpy",
    "headlineDivergencePct": 40.8,
    "agreementBand": "wide",
    "definition": "divergencePct is |athome - suumo| as a percentage of the LOWER of the two medians, so it is symmetric and never negative; `higherSource` carries the direction and `diffJpy` is athome minus suumo.",
    "metrics": {
      "rentJpy": { "suumoMedian": 73000, "athomeMedian": 195000, "diffJpy": 122000, "divergencePct": 167.1, "higherSource": "athome", "agreementBand": "wide" },
      "totalMonthlyJpy": { "suumoMedian": 78000, "athomeMedian": 205000, "divergencePct": 162.8, "higherSource": "athome" },
      "rentPerSqmJpy": { "suumoMedian": 4026, "athomeMedian": 5668, "diffJpy": 1642, "divergencePct": 40.8, "higherSource": "athome" },
      "floorAreaSqm": { "suumoMedian": 18.5, "athomeMedian": 34.51, "diffSqm": 16.01, "divergencePct": 86.5, "higherSource": "athome" }
    },
    "compositionSignals": {
      "suumo": { "sampleSize": 60, "totalFound": 77534, "medianFloorAreaSqm": 18.5, "floorPlanTop": [["1K", 36], ["1R", 23], ["3LDK", 1]], "noDepositNoKeyMoneyShare": 0.0833, "medianBuildingAgeYears": 35 },
      "athome": { "sampleSize": 256, "totalFound": null, "medianFloorAreaSqm": 34.51, "floorPlanTop": [["1LDK", 90], ["1K", 69], ["2LDK", 37]], "noDepositNoKeyMoneyShare": 0.1289, "medianBuildingAgeYears": null },
      "samplingOrderMatches": false,
      "buildingAgeCoverage": "suumo_only"
    },
    "note": "The two portals were sampled in different orders (SUUMO newest-first, at home site-default), so part of any gap is a sampling difference rather than a market difference. Read compositionSignals before treating a divergence as a price signal."
  },
  "sourcesWithData": ["suumo", "athome"],
  "exchangeRateJpyUsd": 0.006321,
  "checkedAt": "2026-08-07T07:37:46+00:00"
}
```

**Read that record the right way — and notice what one portal alone would have told you.** "Median rent in Shibuya" is ¥73,000 on SUUMO and ¥195,000 on at home: a **167% gap** between two reputable portals, for the same ward, on the same day. Either number, quoted on its own, is a confident-looking lie.

`compositionSignals` says how much of that is mix. SUUMO's newest-first sample is **59 of 60 studios** (1K + 1R) with a median of **18.5 m²**; at home's 256 rooms are 1LDK-led with a median of **34.5 m²**. Per m² the gap collapses from 167% to **40.8%** — so most of the headline number was unit size, not price.

**And the remaining 40.8% is real.** Re-running the same area with `floorPlans: ["1K"]` — 36 SUUMO 1Ks against 69 at home 1Ks — gives ¥4,088 vs ¥5,756 per m²: **40.8%**, unchanged to the decimal. Like-for-like, at home's Shibuya inventory is priced about 40% above SUUMO's newest listings. SUUMO's median building age of **35 years** is the likeliest reason, and it is in the record too. That is the kind of thing only two portals at once can show you.

That reasoning is the product. No single-portal median can support it.

(That run also shows why the outlier filters exist: SUUMO's `rentJpy.min` of ¥10,000 is a real advertised unit whose ¥15,000 management fee dwarfs its rent. Set `minRentJpy` to cut that class of listing.)

With `includeIndividualItems: true` you additionally get one record per unit, each tagged with `source`, `rentBasis` and a canonical `floorPlan`.

### Use cases

- **Rent benchmarking** — price a unit against two portals at once instead of trusting one, with the sample size and the mix in the same record
- **Landlord / property-manager repricing** — schedule it and watch the median and the ¥/m² move per ward
- **Investor underwriting** — `rentPerSqmJpy` is the number that compares wards honestly; pair it with your own purchase price for a yield
- **Relocation and corporate housing** — `moveInCost` is the up-front cash a tenant is asked for, which the rent alone never shows
- **Data quality research** — how far apart are two Japanese portals on the same ward, and which direction does each one lean

### Notes & limits

- **Both portals publish asking rents.** Neither publishes contracted rents. `rentBasis` says so on every block; nothing here pretends otherwise
- **Most of a large divergence is usually a mix difference — but not all of it.** Check `floorAreaSqm` and `floorPlanTop` before reading a gap as a market signal, then set `floorPlans` / `minFloorAreaSqm` and re-run to see what survives. In the measured Shibuya run 167% collapsed to 40.8% per m², and the 40.8% did **not** move when both sides were restricted to 1K
- **`totalFound` is null on at home, and that is deliberate.** Its list page is full of facet counts (per ward, per rent band), so no `…件` number on it can be trusted as the total for the query. It is reported as null rather than guessed from the sample
- **SUUMO's `totalFound` counts what SUUMO counts** — the same unit advertised by several agencies is counted several times. Use it as an order of magnitude, and `sampleSize` as the statistic's real denominator
- **SUUMO's `-` management fee is read as a real ¥0**, matching at home's `―`. Without that normalization `totalMonthlyJpy` would quietly exclude every fee-free SUUMO unit while including at home's
- **SUUMO is sampled newest-first** because its default order is ad-weighted. That is a deliberate bias with a known direction, not a neutral sample. at home's default order was not verified at all
- **A portal that fails does not fail the run**: it comes back as `available: false` with an `error`, the other portal is still reported, and the area is **not charged**. Only an area where *both* portals failed — for every area — fails the run
- at home sometimes answers **HTTP 200 with an 8 KB 「認証中」 bot-protection page** instead of the list. That is detected and named as such rather than blamed on a layout change. On page 1 the area's at home side fails (and the area is not charged); on page 2 or later the rooms already collected are kept and the block carries `botProtectionAtPage` — a partial sample beats throwing away good data. Retry later or lower `athomePagesPerArea`
- Read-only, no login, **no browser**. SUUMO and at home are different infrastructure so they are fetched in parallel; pages inside one portal are always sequential and throttled to one per 1.5 s. A run stops adding pages once its 95-second budget is spent
- No personal data is collected — agent names and phone numbers are never parsed or emitted

***

### 日本語ガイド

**1エリアにつき、SUUMO とアットホームの2大賃貸ポータルの募集家賃相場を同一条件で並べ、その乖離を返す Actor です。** 物件の名寄せは行いません(エリア×条件の分位点を2ソースで比較します)。`divergencePct` が大きいこと自体が情報で、母集団の取り方の違い(SUUMO は新着順、アットホームはサイト既定順)を示します。両ソースとも**募集家賃(asking)**であり成約賃料ではありません。各ブロックに `sampleSize`(標本)と `totalFound`(母数・アットホームはファセット件数と区別できないため null)を必ず併記します。間取り・面積・家賃の絞り込みは**両ソースへ同一に**適用します(築年は SUUMO にしか無いため、絞り込み条件ではなく参考指標として返します)。料金はエリア1件 **$0.02**、個別明細は **$0.002/件**(既定 OFF)。**両ソースから中央値が返らなかったエリアには課金しません**。サブスクリプション不要です。

### 中文说明

**一次调用即可获取日本某个区的租金行情,并同时来自 SUUMO 与 at home 两大租房门户,附带两者的差异率。** 不做同一房源匹配,而是在相同筛选条件下比较分位数;两边都是**挂牌租金**(非成交租金)。每个区 **$0.02**,无订阅。

### 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 Japan Rent & Used Condo Prices by City + Gross Yield](https://apify.com/jpmarketdata/suumo-market-checker)
- [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)

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, at home or Statistics Bureau of Japan (soumu.go.jp)**. 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

## `areas` (type: `array`):

One or more Japanese wards/cities to benchmark. Each area is priced on BOTH portals and costs $0.02. Accepted forms: a 5-digit JIS city code (13113 = Shibuya, 13104 = Shinjuku, 13112 = Setagaya), an at home area path (tokyo/shibuya-city), or an explicit pair '<JIS code>|<at home path>' such as '13113|tokyo/shibuya-city'. Built-in pairs cover Tokyo's 23 wards plus Hachioji and Machida; for any other city, open the ward on at home and copy the path between /chintai/ and /list/ out of the address bar (at home has no predictable romaji rule), take the JIS code from https://www.soumu.go.jp/denshijiti/code.html, and pass the two joined by '|'. Half a pair is rejected rather than guessed. Max 8 areas per run.

## `floorPlans` (type: `array`):

Keep only these floor plans before computing the statistics. Applied identically to both portals, so the two medians stay comparable. Leave empty to benchmark the whole area. 1R = studio (ワンルーム), K = kitchen, DK = dining kitchen, LDK = living/dining/kitchen.

## `minFloorAreaSqm` (type: `integer`):

Drop units smaller than this. Applied identically to both portals. Units that do not publish a floor area are dropped when this is set, so the segment stays a measured one.

## `maxFloorAreaSqm` (type: `integer`):

Drop units larger than this. Applied identically to both portals. Useful to cut share houses and whole-building offers out of an area.

## `minRentJpy` (type: `integer`):

Drop units cheaper than this before computing the statistics. Applied identically to both portals.

## `maxRentJpy` (type: `integer`):

Drop units more expensive than this. Applied identically to both portals. Useful to cut luxury outliers out of a central-Tokyo ward.

## `suumoListingsPerArea` (type: `integer`):

How many SUUMO rental units to sample per area before filtering. SUUMO returns 30 per page and pages are fetched 1.5 s apart, so 60 = two pages. Larger samples are steadier but slower.

## `athomePagesPerArea` (type: `integer`):

How many at home list pages to sample per area. One page holds roughly 150 rooms (~130 buildings) and weighs ~1 MB, so the default of 2 gives a ~300-room sample. Pages are fetched 1.5 s apart and a run stops adding pages once its 95-second budget is spent.

## `includeIndividualItems` (type: `boolean`):

Off by default: a run costs a flat $0.02 per area, whichever portals answered. Enable to also get every sampled unit from both portals (rent, management fee, deposit, key money, floor plan, floor area, rent per m2, building age on SUUMO) at +$0.002 per unit. With the defaults that is roughly 350 units per area.

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

Adds USD rent statistics next to JPY using the current exchange rate (open.er-api.com, looked up once per run).

## Actor input object example

```json
{
  "areas": [
    "13113",
    "13104"
  ],
  "suumoListingsPerArea": 60,
  "athomePagesPerArea": 2,
  "includeIndividualItems": 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 = {
    "areas": [
        "13113",
        "13104"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jpmarketdata/japan-rent-market-benchmark").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 = { "areas": [
        "13113",
        "13104",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("jpmarketdata/japan-rent-market-benchmark").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 '{
  "areas": [
    "13113",
    "13104"
  ]
}' |
apify call jpmarketdata/japan-rent-market-benchmark --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jpmarketdata/japan-rent-market-benchmark"
        }
    }
}

```

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/5LfXNvxacSqa9PY9e/builds/xGrwYYN9pjofYU7As/openapi.json
