Suumo.jp Japan Real Estate Scraper icon

Real estate

Suumo.jp Japan Real Estate Scraper

Japan's #1 property portal as clean structured data — rent, shikikin/reikin (deposit/key-money) normalized to yen, nearest station + walk-minutes, layout, area and building age — where the incumbent returns no structured fields at all.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

Suumo.jp is Japan's largest real-estate aggregator, covering rentals (chintai), sales (baikyaku), and new construction across all 47 prefectures. This Actor accepts one or more Suumo search-result page URLs — the kind you build by choosing a city, budget, and layout in the Suumo search UI — then follows pagination to collect every visible listing. Each row captures the fields that matter most to analysts, investors, and relocation researchers: the JP-native monetary fields that competitors strip out (deposit, key money, management fee), the madori layout code, and walking time from the nearest transit station.

What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi replays real Chrome / Firefox TLS handshakes so the target sees a browser, not a Python script.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block, with optional JP country targeting for geo-restricted pages.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Pagination handled automatically — follow as many pages as you need, or cap with maxPages for a quick spot-check.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, monetary values normalized to integer Yen, ISO-8601 timestamps, stable listing IDs.
  • 💰 Pay-Per-Event pricing — you pay only for results that land in the dataset. No data, no charge (beyond the small start-up fee).

Use cases

  • Relocation research — pull 1LDK rentals in central Tokyo, filter by walk time and deposit, compare neighbourhoods side-by-side in a spreadsheet.
  • Investment analysis — track price-per-m² across Osaka wards over time by scheduling daily runs and diffing successive datasets.
  • Property management benchmarking — monitor competing listings in a target micro-market; alert when a new unit undercuts your asking rent.
  • Academic real-estate research — build a structured corpus of JP listing data without hand-copying fields from Japanese HTML pages.
  • Immigration/expat tooling — power a filtered rental search app for non-Japanese speakers by normalizing the JP-language fields your app then translates.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
searchUrls array yes One or more Suumo.jp search-result page URLs to scrape. Example: a chintai (rental) search for Tokyo 1LDK apartments. The Actor follows pagination automatically from each URL.
maxItems integer no Maximum number of listings to return across all URLs. Set to 0 to collect all results up to natural pagination end. Default 100 keeps local test runs fast.
maxPages integer no Maximum number of pagination pages to follow per search URL. Set to 0 to follow all pages. Useful for quick spot-checks.
fetchListingDetails boolean no Opt-in per-row detail-page fetch for agency_name/agency_phone (and buy-mode management_fee_yen/floor). Roughly doubles requests and charges the extra 'detail-enriched' event per successful row.
{
  "searchUrls": [
    "https://suumo.jp/jj/chintai/ichiran/FR301FC001/?ar=030&bs=040&ta=13&sc=13101"
  ],
  "maxItems": 200,
  "maxPages": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

listing_idnameurlproperty_typeprice_yenmanagement_fee_yendeposit_yenkey_money_yenaddressnearest_stationwalk_minuteslayoutarea_sqmfloorbuilding_age_years

{
  "listing_id": "bc_100251966066",
  "name": "\u30b0\u30e9\u30f3\u30c9\u30e1\u30be\u30f3\u6e0b\u8c37",
  "url": "https://suumo.jp/chintai/bc_100251966066/",
  "property_type": "\u30de\u30f3\u30b7\u30e7\u30f3",
  "price_yen": 95000,
  "management_fee_yen": 5000,
  "deposit_yen": 95000,
  "key_money_yen": 95000,
  "address": "\u6771\u4eac\u90fd\u6e0b\u8c37\u533a\u9053\u7384\u57421\u4e01\u76ee",
  "nearest_station": "\u6e0b\u8c37",
  "walk_minutes": 5,
  "layout": "1LDK",
  "area_sqm": 42.5,
  "floor": "3\u968e",
  "building_age_years": 10,
  "scraped_at": "2026-06-07T00:00:00Z"
}

Pricing

EventPriceWhen
Actor startOnce per run, covers warm-up and proxy session setup.
Actor Start$0.0000Per result written to the dataset.
result$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • Japanese-language source — building names, addresses, property types, and layout codes are in Japanese script (kanji, hiragana, katakana). The Actor preserves them as-is; translation is left to your downstream stack.
  • Deposit / key money as rent multiples — Suumo often shows shikikin and reikin as 1ヶ月 (1 month's rent) rather than an absolute Yen amount. Where the implementer can resolve the multiplier against the price, they do; otherwise the field may be null.
  • Pagination cap — very large searches (e.g. all of Tokyo) can run to hundreds of pages. Use maxItems or maxPages to cap the run on the free Apify tier.
  • Listing freshness — Suumo does not expose a "last updated" timestamp for each listing. scraped_at reflects when the Actor visited the page, not when the landlord last edited it.
  • New construction (shin-chiku) — some new-build listing pages have a different HTML structure from resale/rental. The implementer's parser may need a separate branch for those pages.

FAQ

Does this work for both rentals and sales?
Yes. The Actor accepts any Suumo search-result URL — the same code path handles chintai (rental) and baikyaku (sale) searches. The price_yen field carries the monthly rent for rentals and the total sale price for properties.
What is "key money" (reikin)?
Reikin (礼金) is a non-refundable "thank-you" payment to the landlord, typically one or two months' rent, paid upfront when signing a lease. It has no equivalent in most Western markets. The key_money_yen field captures this so relocation researchers and expats can factor it into their true move-in cost calculation.
Can I scrape a specific neighbourhood or train line?
Yes — build the search on suumo.jp by choosing your preferred station, ward, or neighbourhood, then copy that URL into the Actor. The Actor scrapes exactly the results your URL describes.
How do I get Japanese IPs for geo-restricted pages?
In proxyConfiguration set "apifyProxyCountry": "JP". This instructs Apify Proxy to route exit traffic through a Japanese residential IP.
Can I schedule this?
Yes — connect the Actor to an Apify Schedule and it will run automatically at whatever interval you choose. Each run writes to a fresh dataset; use the Apify API to retrieve the latest run's dataset for comparison.
The dataset is empty — what happened?
Check the run log for HTTP errors or empty-page signals. If the page redirected to a CAPTCHA or an error page, enable Apify Proxy and optionally set the country to JP. Persistent empty results after proxy routing are reported on the Issues tab.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run