SUUMO Japan Rental Listings Scraper avatar

SUUMO Japan Rental Listings Scraper

Pricing

from $2.00 / 1,000 listings

Go to Apify Store
SUUMO Japan Rental Listings Scraper

SUUMO Japan Rental Listings Scraper

Scrape rental listings from SUUMO, Japan's largest property portal. Rent, management fee, deposit and key money as plain yen numbers, plus layout, area, floor, building age and station walk times. One row per available room.

Pricing

from $2.00 / 1,000 listings

Rating

0.0

(0)

Developer

Piquno

Piquno

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Share

Rental listings from SUUMO, Japan's largest property portal — with every yen figure parsed into a real number.

SUUMO writes prices the Japanese way: rent as 16.4万円, fees as 15000円, and an undisclosed cost as -. This actor returns 164000, 15000 and null, so you can sort and filter without touching the data. It also adds the two numbers people actually compare on:

  • monthlyTotalYen — rent plus management fee, what the tenant really pays each month
  • rentPerSqmYen — yen per square metre, the honest way to compare a 1K against a 2LDK

One row per available room, with its building's details denormalised onto it — so a single CSV needs no joining.

HTTP-only. No browser, no login.


Why it is cheap to run

SUUMO's listing pages are two-level: one card is a building, and inside it a table lists every available room. A single request in testing returned 30 buildings and 156 rooms.

Most job and directory scrapers cost one request per row. This one costs about one request per 150 rows, so a 1,000-room extract is roughly 7 requests.


What you get

FieldWhat it is
roomUrl, roomIdThe specific room's SUUMO page and its id
buildingName, buildingType, addresse.g. アーバネックス千代田淡路町 / 賃貸マンション / 東京都千代田区神田小川町1
rentYen, rentRaw160000, and the original 16万円
adminFeeYen, monthlyTotalYenManagement fee, and rent + fee combined
depositYen, gratuityYenDeposit (敷金) and key money (礼金) — null when not charged, never 0
layout, areaSqm, floor1DK, 25.13, 4
rentPerSqmYenDerived — rent divided by area
buildingAgeYears, buildingFloors築5年5; 新築 (newly built) → 0
accessLine1..3, accessStation1..3, accessWalkMin1..3Up to three lines, split into line, station and walk minutes
imageUrl, sourceUrl, scrapedAt, fieldsPopulatedProvenance

Measured fill rates

From a live 156-room page in Chiyoda, Tokyo. Fee disclosure varies a lot by region — a live Osaka run returned deposits on only 23% of rooms against Tokyo's 71%, because the two markets use 敷金 / 保証金 differently. Rent, layout, area and station walk are 100% everywhere tested:

FieldFill
roomUrl, buildingName, address, rentYen, layout, areaSqm, floor100%
buildingAgeYears, accessStation1, accessWalkMin1100%
gratuityYen84%
adminFeeYen79%
depositYen71%
accessStation396%

A fee the listing does not charge stays null rather than becoming 0 — a 0 deposit and an undisclosed deposit are very different things when you are budgeting.


Input

{
"prefecture": "tokyo",
"maxItems": 150,
"maxRentYen": 150000,
"maxWalkMinutes": 10
}

Or paste a SUUMO search URL with filters you already set on the site:

{
"startUrls": [{ "url": "https://suumo.jp/jj/chintai/ichiran/FR301FC001/?ar=030&bs=040&ta=13&sc=13101" }],
"maxItems": 500
}

Defaults: maxItems is 100 — a single page that finishes in seconds. Raise it for a real extract; one ward of Tokyo alone advertises over 32,000 listings.

Filters

maxRentYen, minAreaSqm, layoutContains, maxWalkMinutes and maxBuildingAgeYears all run before a row is charged, so you are never billed for rows a filter excluded.

Monitoring

Set incremental: true with its own stateKey to emit only rooms not seen before, tagged changeType: "new" — a daily watch on a saved search bills for what actually appeared.


Limitations — read before you buy

  • SUUMO rate-limits by IP. It answers 503 with a short body when throttling. The actor detects that specifically, backs off and retries, and reports throttleResponses in the run summary. Keep Apify Proxy enabled — it is on by default and included on every Apify plan. A single unproxied address starts drawing 503s quickly.
  • A prefecture is not a search. SUUMO addresses a ward by slug (/chintai/osaka/sc_osakashikita/), and a prefecture-wide URL returns HTTP 200, the right heading and zero listings — it is a search-refinement form, not results. Choosing a prefecture therefore runs its ward index and expands every ward (67 for Osaka), so a whole-prefecture run is many searches rather than one. Paste a search URL when you want exactly one area.
  • Bus routes have no station walk time. An entry like バス10分 停歩5分 means 10 minutes by bus then 5 on foot from the bus stop. Reporting that 5 as the station walk would make a far-out property look commutable, so accessWalkMin is null for bus access — and maxWalkMinutes therefore excludes those rooms.
  • Rentals only. This actor covers 賃貸 (rental). Sale listings use different pages and are not included.
  • Japanese text is returned as-is. Building names, addresses, layouts and station names come back in Japanese, because that is what the source publishes and transliterating would introduce errors.
  • Duplicate buildings. SUUMO itself notes that the advertised total counts agency postings, and it merges listings it believes are the same property. Rows are deduplicated on room id within a run.

Output

Three ready-made views on the Output tab: Overview, Move-in costs (every yen figure, for rent benchmarking) and Stations & commute (all three lines with walk times). A RUN_SUMMARY record reports rows pushed, rows billed, rows filtered out and how often SUUMO throttled.