SUUMO Japan Rental Listings Scraper
Pricing
from $2.00 / 1,000 listings
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
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 monthrentPerSqmYen— 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
| Field | What it is |
|---|---|
roomUrl, roomId | The specific room's SUUMO page and its id |
buildingName, buildingType, address | e.g. アーバネックス千代田淡路町 / 賃貸マンション / 東京都千代田区神田小川町1 |
rentYen, rentRaw | 160000, and the original 16万円 |
adminFeeYen, monthlyTotalYen | Management fee, and rent + fee combined |
depositYen, gratuityYen | Deposit (敷金) and key money (礼金) — null when not charged, never 0 |
layout, areaSqm, floor | 1DK, 25.13, 4 |
rentPerSqmYen | Derived — rent divided by area |
buildingAgeYears, buildingFloors | 築5年 → 5; 新築 (newly built) → 0 |
accessLine1..3, accessStation1..3, accessWalkMin1..3 | Up to three lines, split into line, station and walk minutes |
imageUrl, sourceUrl, scrapedAt, fieldsPopulated | Provenance |
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:
| Field | Fill |
|---|---|
roomUrl, buildingName, address, rentYen, layout, areaSqm, floor | 100% |
buildingAgeYears, accessStation1, accessWalkMin1 | 100% |
gratuityYen | 84% |
adminFeeYen | 79% |
depositYen | 71% |
accessStation3 | 96% |
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
503with a short body when throttling. The actor detects that specifically, backs off and retries, and reportsthrottleResponsesin 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, soaccessWalkMinisnullfor bus access — andmaxWalkMinutestherefore 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.