Suumo.jp Scraper at a glance
Suumo.jp Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes room id, building id, building, building type and address, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.80 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Web data
- Region
- Asia
- Pricing
- $1.80 per 1,000 results (Free plan), from $1.20 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 28 options
Scrape Suumo, Japan's largest property portal: rental rooms with rent, management fees, deposits, layout, floor area, station access, photos and the listing agency's name. Search by prefecture and city or paste links, and monitor price changes with recurring updates.
What Suumo.jp Scraper can do
- Rentals and five sale types, two ways to search. Pick a prefecture and, optionally, JIS city codes, or paste your own search, room and listing links. The same search covers rental rooms, used and new condos, used and new houses, and land. No need to build Suumo's search URLs by hand.
- The full cost picture per room. Rent, management fee, deposit and key money come out as clean yen integers, next to the site's own display text, so nothing needs re-parsing.
- Server-side filtering and sorting. Room layout (1K, 1LDK, 2DK and the rest), rent, area, building age and walk time are filtered by Suumo's own search grammar, and rental results can be ordered by rent plus fees, so you never pay for rooms the filter should have removed.
- Room detail on demand. Switch on room-page reading for the photo set, the full spec table, the agent's pitch and the agency name, only when you need it and only for what you read.
- Built for monitoring. Recurring updates label every room NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED against the previous run of the same search, so a scheduled run returns only what changed.
- Multi-city runs stay organized. Every room carries which search or link produced it, so a run across several cities in one prefecture is easy to split back apart.
Choose what to collect
These inputs let you configure Suumo.jp Scraper - Japan Rental Listings, Prices & Agents. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Rentals: search by area walks the rental result pages for the prefecture and cities below. A Sale mode walks the result pages of that sale type for the same prefecture and cities (rent, layout, area and walk filters apply to rentals only). My own links walks the links you paste, forward from the page each link names. |
prefecturestring | The prefecture to search, as its two-digit JIS code. One run covers one prefecture. |
cityCodesarray | City names or JIS 5-digit codes. Type a name such as 千代田区 or Chiyoda, or a code such as 13101 (13101 Chiyoda-ku, 13102 Chuo-ku, 13103 Minato-ku, 13113 Shibuya-ku). A name that matches no city in the selected prefecture fails the run with a clear message. Every city is walked as its own source and shares the run limit. Leave empty to walk the whole prefecture. |
layoutsarray | Room layout filter applied by the site itself, as the two-digit codes of suumo's own search grammar: 01 studio (one room), 02 1K, 03 1DK, 04 1LDK, 05 2K, 06 2DK, 07 2LDK, 08 3K, 09 3DK, 10 3LDK, 11 4K, 12 4DK, 13 4LDK. Empty means every layout. |
rentMinnumber | Lower rent bound in units of 10,000 yen, for example 5 for 50,000 yen. Search mode. |
rentMaxnumber | Upper rent bound in units of 10,000 yen. Search mode. |
areaMininteger | Lower floor-area bound in square metres. Search mode. |
Show 21 more inputs
| Input | What it controls |
|---|---|
areaMaxinteger | Upper floor-area bound in square metres. Search mode. |
maxBuildingAgeinteger | Only buildings up to this many years old. Search mode. |
maxWalkMinutesinteger | Only rooms within this many minutes on foot of a station. Search mode. |
sortBystring | Order of the rental results, applied by the site itself (verified over two pages of a city search). Rooms of one building are listed together, ordered by the building's cheapest room (lowest first) or dearest room (highest first). The default keeps the site's own order. Rental Search mode only; ignored in links and sale modes. |
urlsarray | Multi-URL supported. Paste rental search links (/jj/chintai/ichiran/..., including repeated sc= cities, md= layouts and page=N), rental city pages (/chintai//sc_/), station pages (/chintai//ek_/), prefecture pages (/chintai//) or single room links (/chintai/jnc_/, the ?bc= code is optional, or an agency room page /chintai/bc_/). Sale links work too: result pages of /ms/chuko, /ms/shinchiku, /chukoikkodate, /ikkodate and /tochi (also /jj/bukken/ichiran/...) and single listing pages (.../nc_/). Pagination starts at the page named in the link and walks forward. Search-mode fields are ignored in this mode. Left untouched (no links of your own, no Max rooms, no Max pages), this field reads one page of each example link. |
searchUrlstring | One pasted suumo.jp rental or sale search link (the same as putting it in Links). Switches a default search run or a sale mode to links mode. |
fetchDetailsboolean | The search page carries rent, fees, layout, area, address, stations and building age. A room's own page adds the photo set, the full spec table, the agency's pitch and the agency name. Pasted room links are their own page, so they are always read and always carry the surcharge. In a sale mode the listing page adds the zoning, the transaction type and the spec table and carries no extra charge. |
maxItemsinteger | The single limit that stops a run. Default 1000 rooms, at most 1,000,000; 0 is read as 1,000,000 so older saved tasks keep working. |
maxPagesinteger | Runaway guard per source. 0 means the walk ends when the site runs out of results. |
resumeFromRunIdstring | Give the run id of an interrupted run and every room it already collected is skipped. Mutually exclusive with recurring updates once a baseline exists. |
incrementalModeboolean | Label every room NEW, UPDATED, UNCHANGED or REAPPEARED against the previous run of the same setup, and record the ones that vanished as EXPIRED. UPDATED means a compared field moved: rent, management fee, deposit, key money, guarantee, layout, area, availability, floor, station list and the other listing facts. Never compared: the run time, the search position, which search found the room, and the agency's own last-updated stamp. Photo order is ignored. Unchanged rooms are not returned unless you also turn on the return-unchanged switch. Returns (and bills) extra rows only for what changed. |
stateKeystring | Name the baseline of a recurring schedule yourself. Without it the baseline is keyed on the whole search setup, so two differently-configured schedules never share one baseline. |
emitUnchangedboolean | Returns (and bills) every tracked room again, labelled UNCHANGED, instead of only the changed ones. |
emitExpiredboolean | Rooms tracked by the previous run but absent from a COMPLETE scan are returned (and billed) one last time, labelled EXPIRED. A run that stopped early never reports rooms as gone. |
changeScopestring | Any listing field: every compared field can make a room UPDATED. Rent, fees and availability only: just rent, management fee, deposit, key money, guarantee and move-in availability decide UPDATED, so name, photo, remark and layout-copy edits never produce a returned row. Changing this changes which baseline an automatic state key uses. |
compactUpdatesboolean | UPDATED and EXPIRED rows come back short: ids, link, current rent and fees, and priceChanges with the old and new value of each moved field. New rooms stay full. The per-room detail surcharge is not charged on a short row because it carries no detail fields. |
expireAfterMissedScansinteger | With the gone-rooms switch on, a room is returned as EXPIRED only after it was missing from this many complete scans in a row. EXPIRED means the room dropped out of the search; a listing that left the results and a delisted one look the same without opening each room page. |
ignoreFieldsForChangesarray | Field names that never make a room UPDATED and are left out of changedFields (they stay in the output). Use a dotted path to ignore one key inside a nested list, for example stations.name. Leave empty to compare every listing field. Changing this changes which baseline an automatic state key uses. |
mcpConnectorsarray | Optional delivery step AFTER the scrape: pipes dataset results into apps you connected in the Apify MCP Connector setup. |
notionParentPageUrlstring | Notion connector only: the parent page new Notion pages attach under. |
maxNotifyListingsinteger | How many dataset rows at most each connector receives per run. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
idRoom idbuildingIdBuilding idbuildingNameBuildingbuildingTypeBuilding typeaddressAddressstationsStationsbuildingAgeAgebuildingFloorsBuilding floorsfloorFloorrentYenRent (yen)rentDisplayRent (display)mgmtFeeYenManagement fee (yen)Show 49 more fields
depositYenDeposit (yen)keyMoneyYenKey money (yen)guaranteeYenGuarantee (yen)layoutLayoutareaSqmArea (m2)urlLinkimageUrlImagenameRoom titletransportTransportfacingFacingbuildingKindKindlayoutBreakdownRooms breakdownstructureStructurefloorsDetailFloor detailbuiltMonthBuiltparkingParkingmoveInMove indealTypeDeal typeconditionsConditionstotalUnitsTotal unitsinfoUpdatedAtInfo updatedguaranteeCompanyGuarantor companyotherInitialCostOther initial costsotherMonthlyCostOther monthly costsremarksRemarkspointAgent pointpointTextAgent pitchagencyNameAgencyphotosPhotosphotoCountPhoto countsourceTypeSource kindsourceIdSourcesourceUrlSource linkpositionPositionscrapedAtScraped atchangeTypeChangechangedFieldsChanged fieldsfirstSeenAtFirst seenlastSeenAtLast seenmodeVerticalisNewArrivalNew arrivalpricePricepriceYenPrice (yen)pricePerSqmPrice per sqm (yen)exclusiveAreaExclusive arealandAreaLand areabuildingAreaBuilding areazoningZoningtransactionTypeTransaction typeExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"id": "000200000001",
"buildingId": "100500000001",
"buildingName": "Sample Residence Chiyoda",
"buildingType": "Rental mansion",
"address": "Tokyo, Chiyoda-ku",
"stations": [
"Sample Line/Sample Station walk 5 min",
"Second Line/Second Station walk 9 min"
],
"buildingAge": "8 years",
"buildingFloors": "10 floors",
"floor": "3rd floor",
"rentYen": 95000,
"rentDisplay": "9.5man yen",
"mgmtFeeYen": 5000,
"depositYen": 95000,
"keyMoneyYen": 0,
"layout": "1LDK",
"areaSqm": 35.5,
"url": "https://suumo.jp/chintai/jnc_000200000001/",
"imageUrl": "https://img01.suumo.com/front/gazo/fr/bukken/000/000200000001/000200000001_go.jpg",
"name": "Sample Residence Chiyoda",
"transport": [
"Sample Line/Sample Station walk 5 min"
],
"facing": "South",
"buildingKind": "Mansion",
"layoutBreakdown": "Western room 6.0, DK 8.0",
"structure": "Reinforced concrete",
"floorsDetail": "3rd floor of a 10-floor building",
"builtMonth": "2016-04",
"parking": "Nearby, 15000 yen a month",
"moveIn": "Immediate",
"dealType": "Brokerage",
"conditions": "No pets",
"totalUnits": "20",
"infoUpdatedAt": "2026/09/20",
"guaranteeCompany": "Guarantee company required",
"otherInitialCost": "Key exchange, 22000 yen",
"otherMonthlyCost": "Cleaning fee, 22000 yen",
"remarks": "Short-term cancellation fee may apply within the first year.",
"point": "No key money",
"pointText": "Renovated, quiet street, near the local shops",
"agencyName": "Sample Realty Co.",
"photos": [
"https://img01.suumo.com/front/gazo/fr/bukken/000/000200000001/000200000001_1o.jpg",
"https://img01.suumo.com/front/gazo/fr/bukken/000/000200000001/000200000001_2o.jpg"
],
"photoCount": 2,
"sourceType": "search",
"sourceId": "13101",
"sourceUrl": null,
"position": 1,
"scrapedAt": "2026-09-29T04:00:00Z",
"changeType": "UPDATED",
"changedFields": [
"rentYen"
],
"firstSeenAt": "2026-08-01T04:00:00Z",
"lastSeenAt": "2026-09-29T04:00:00Z"
}Ways to use this data
- Apartment hunters and relocation services: compare rent, fees and station access across neighborhoods before booking viewings.
- Real estate market researchers: track average rent and the layout mix by ward or city over time.
- Rental alert products and proptech apps: feed newly listed and price-changed rooms into your own app, bot or dashboard.
- Property managers and agencies: watch competitor pricing and vacancy in specific target buildings.
- Data journalists and academics: build a historical dataset of Japan's rental market for reporting or research.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Suumo.jp Scraper return?
The documented output for Suumo.jp Scraper includes room id, building id, building, building type, address, stations, age and building floors. Availability of each field depends on the source page and the selected mode.
How much does Suumo.jp Scraper cost?
It costs $1.80 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new or changed rooms on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on recurring updates. Each run then returns only new and updated rooms, unchanged ones are not billed, and gone rooms can be reported too once a run has scanned its scope end to end.
Why did a room show up as EXPIRED and then REAPPEARED?
This is a known issue. If a scheduled run with also return rooms that are gone switched on has a max rooms limit, and the limit runs out on exactly the last room of a result page while the search has more pages, the rooms on the unread pages are wrongly reported as gone. The next complete run finds them again and labels them REAPPEARED. Leave max rooms at 0 on schedules that report gone rooms to avoid it.
Why were no gone rooms reported this run?
Gone rooms are only reported after a run that read every one of its sources to the end. If a limit stopped the run, one city or link hit max pages or ran out of max rooms partway through a page, a source failed, or the run continued a previous one, detection is skipped for the whole run (the run log says why) and the rooms stay tracked. Nothing is marked gone by mistake in that case; the next complete run reports them.
Why are photos, the spec table or the agency name empty?
Those fields only come from a room's own page. Turn on room detail reading, or paste room links directly (/chintai/jnc_.../), which are always read in full. The search page alone carries rent, fees, layout, area, address, stations and building age.
