Suumo Japan Property Listings Scraper avatar

Suumo Japan Property Listings Scraper

Pricing

from $1.44 / 1,000 item extracteds

Go to Apify Store
Suumo Japan Property Listings Scraper

Suumo Japan Property Listings Scraper

Export public SUUMO Japan rental and used-condo listings with stable IDs, prices, fees, layouts, areas, locations, station access, images, and canonical URLs.

Pricing

from $1.44 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Export SUUMO Japan property listings as clean rental and used-condominium records. Give the Actor the public search URLs produced by SUUMO's Japanese location and property filters. It follows result pages and returns stable listing IDs, normalized yen prices, fees, layouts, floor areas, addresses, station access, images, and canonical listing URLs.

The default dataset is designed for recurring inventory snapshots, market research, spreadsheet exports, and data pipelines. No SUUMO account is required.

What does this Actor do?

The Actor turns two public SUUMO search result formats into one consistent dataset:

  • rental searches under suumo.jp/chintai/;
  • used-condominium sale searches under suumo.jp/ms/chuko/.

Each rental unit becomes one row, even when several units appear under the same building. Each used-condo result becomes one row. Prices are preserved in their displayed context and normalized to integer Japanese yen.

Use a SUUMO search URL to retain the location and criteria you selected on the source site. The Actor then follows the visible next-page link until it reaches your item or page limit.

Who is it for?

This Actor is useful for:

  • real-estate analysts comparing asking rents or sale prices;
  • property managers tracking competing inventory;
  • relocation teams collecting current area options;
  • investors reviewing used-condo asking prices;
  • researchers building repeatable Japanese housing snapshots;
  • data engineers loading SUUMO records into a warehouse or BI tool;
  • operators comparing new, removed, and repriced listings between scheduled runs.

It is a data extractor, not a valuation model. It does not calculate yields, predict prices, or determine whether a property is available beyond what the result page currently displays.

Why use it?

  • Stable identity: listingId and buildingId support repeat-run comparisons.
  • Unified records: rent and sale results share one documented schema.
  • Normalized prices: Japanese 万円 values become integer yen.
  • Search provenance: every row retains the original searchUrl and result page.
  • Useful media: result-card image URLs and badges are included.
  • Bounded execution: maxItems and maxPagesPerUrl keep runs predictable.
  • Clear failures: blocked or unrecognized pages fail instead of returning a misleading empty success.
  • Low overhead: direct HTTP and HTML parsing avoid downloading image bodies or launching a browser.

Supported SUUMO searches

Supported inputs are public HTTPS result URLs on suumo.jp for:

  1. rental property searches, for example https://suumo.jp/chintai/tokyo/sc_shinjuku/;
  2. used-condominium sale searches, for example https://suumo.jp/ms/chuko/tokyo/sc_shinjuku/.

Choose city, ward, station, layout, price, walking distance, area, age, and other available criteria on SUUMO before copying the resulting URL. The Actor preserves those URL parameters.

Other SUUMO verticals, individual detail URLs, saved searches requiring an account, and agency contact extraction are not supported in this version.

Data you can extract

FieldMeaning
listingIdStable SUUMO listing or rentable-unit ID
buildingIdBuilding/property identifier when exposed
listingTyperent or sale
propertyTypeDisplayed Japanese property category
titleProperty or building name
priceYenNormalized monthly rent or sale price in JPY
rentYenMonthly rent in JPY for rentals
managementFeeYenMonthly management fee in JPY when shown
depositDeposit text as displayed
keyMoneyKey-money text as displayed
layoutLayout such as 1DK or 2LDK
floorAreaSqmFloor area in square metres
floorUnit floor when shown
addressJapanese location displayed in results
stationAccessRail line, station, and walking-access entries
buildingAgeDisplayed age or construction month
buildingFloorsBuilding floor count when exposed
imagesPublic result-card image URLs
tagsNew-listing and media badges
canonicalUrlAbsolute SUUMO detail URL
searchUrlOriginal search/filter context
pageResult page processed by this run
scrapedAtUTC extraction timestamp

Fields remain present with null or an empty array when SUUMO does not expose a value in that result format.

Getting started

  1. Open SUUMO and configure a rental or used-condo search.
  2. Copy the search result URL from your browser.
  3. Add it to SUUMO search URLs.
  4. Keep maxItems small for a first run.
  5. Click Start.
  6. Open the run's Storage tab and select the default dataset.
  7. Export JSON, CSV, Excel, XML, or RSS from Apify.

A useful first input is:

{
"startUrls": [
{ "url": "https://suumo.jp/chintai/tokyo/sc_shinjuku/" }
],
"maxItems": 25,
"maxPagesPerUrl": 1,
"listingTypes": ["rent"]
}

Input parameters

startUrls

Required array of 1–20 public SUUMO search URLs. Strings and Apify request-list objects are accepted by the runtime. Only HTTPS URLs whose hostname is suumo.jp or a subdomain are accepted.

maxItems

Maximum unique rows saved across all inputs. Default: 100. Range: 1–10,000. The Actor stops accepting records as soon as the limit is reached.

maxPagesPerUrl

Maximum visible result pages followed for each URL. Default: 3. Range: 1–100. Use this with maxItems to define a bounded snapshot.

listingTypes

Optional array containing rent, sale, or both. It filters normalized output; it does not convert a rental URL into a sale search.

minPriceYen and maxPriceYen

Optional inclusive filters in integer Japanese yen. For rentals, they apply to monthly rent. For used condos, they apply to the displayed sale price. Rows without a normalized price do not pass an enabled price filter.

Output example

A rental row has this shape:

{
"listingId": "100500000001",
"buildingId": "000100000001",
"listingType": "rent",
"propertyType": "賃貸マンション",
"title": "サンプルレジデンス",
"priceYen": 128000,
"rentYen": 128000,
"managementFeeYen": 8000,
"deposit": "12.8万円",
"keyMoney": "12.8万円",
"layout": "1LDK",
"floorAreaSqm": 42.5,
"floor": "3階",
"address": "東京都新宿区西新宿1",
"stationAccess": ["JR山手線/新宿駅 歩8分"],
"buildingAge": "築8年",
"buildingFloors": "12階建",
"images": ["https://img01.suumo.com/sample/property.jpg"],
"tags": ["新着"],
"canonicalUrl": "https://suumo.jp/chintai/jnc_000100000001/",
"searchUrl": "https://suumo.jp/chintai/tokyo/sc_shinjuku/",
"page": 1,
"scrapedAt": "2026-01-15T12:00:00.000Z"
}

The example values are anonymized, but the field shape matches current runtime output.

How much does it cost to export SUUMO property listings?

The Actor uses pay-per-event pricing:

  • Actor start: $0.005 once per run.
  • Property listing: tiered by your Apify plan; BRONZE is currently $0.0024 per saved row.

At the current BRONZE rate:

Saved listingsEstimated Actor charge
25$0.065
100$0.245
1,000$2.405

These examples include one start event and exclude your normal Apify platform usage. Only unique rows that pass filters and are saved produce the property-listing event. Failed requests, duplicates, and rejected rows are not item events. Check the live pricing panel because plan tiers can differ.

Recurring inventory monitoring

Schedule the same Actor input daily or weekly with an Apify Task. Export or integrate the default dataset after each run. Then compare rows by listingId:

  • ID present only in the newest snapshot: potentially new listing;
  • ID missing from the newest snapshot: potentially removed inventory;
  • same ID with changed priceYen: displayed asking-price change;
  • same ID with changed fees or tags: listing-card update.

The Actor emits snapshots. It does not keep history or label changes itself, so store prior datasets in your own database, spreadsheet, or automation flow.

Spreadsheet and BI workflow

Download the dataset as CSV or Excel from the Storage tab. Use listingId as the primary comparison key. Use searchUrl to separate areas or property criteria. Keep scrapedAt as the snapshot timestamp.

For dashboards, normalize stationAccess and images arrays in your destination if your BI tool expects one value per row.

API usage with cURL

Start a synchronous run and return dataset items:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~suumo-japan-property-listings-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url":"https://suumo.jp/chintai/tokyo/sc_shinjuku/"}],
"maxItems": 25,
"maxPagesPerUrl": 1
}'

Keep API tokens in secrets or environment variables rather than source code.

API usage with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/suumo-japan-property-listings-scraper').call({
startUrls: [{ url: 'https://suumo.jp/ms/chuko/tokyo/sc_shinjuku/' }],
listingTypes: ['sale'],
maxItems: 20,
maxPagesPerUrl: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/suumo-japan-property-listings-scraper').call(run_input={
'startUrls': [{'url': 'https://suumo.jp/chintai/tokyo/sc_shinjuku/'}],
'maxItems': 25,
'maxPagesPerUrl': 1,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/suumo-japan-property-listings-scraper"

Claude Desktop setup

Add the following remote MCP server in Claude Desktop's connector settings.

Cursor setup

Add the same server object to Cursor's MCP configuration.

VS Code setup

Add the same remote endpoint through your VS Code MCP extension or workspace MCP settings.

All three clients can use this JSON configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/suumo-japan-property-listings-scraper"
}
}
}

Example prompts:

  • “Export 25 current Shinjuku rental listings from SUUMO.”
  • “Collect the first page of Shinjuku used-condo prices and floor areas.”
  • “Run my saved SUUMO search URLs and return IDs and prices for an inventory comparison.”

Reliability and retry behavior

SUUMO can occasionally return a temporary 503, 429, or network error. The Actor retries transient failures up to four times with bounded delays. It validates that the response contains a recognized rental or used-condo result structure. If every attempt fails, the run fails with the affected URL rather than emitting a false empty dataset.

No residential proxy or browser fallback runs automatically. That keeps transfer and compute predictable, but it means sustained source blocking can require a later implementation update.

Limits and responsible scaling

  • Keep page and item limits no larger than your actual analysis requires.
  • Avoid launching many overlapping runs for the same search.
  • Result order and inventory can change while a multi-page run is active.
  • Several rental units may share a building title and address but have different listingId values.
  • Search-card images may be resized variants and are not downloaded by the Actor.
  • Japanese labels are preserved where translation could alter source meaning.
  • Detail-only fields, agency contacts, descriptions, amenities, and complete photo galleries are outside the current scope.

Troubleshooting

The run says the URL is unsupported

Confirm it uses HTTPS and belongs to suumo.jp. Use a rental search under /chintai/ or a used-condo search under /ms/chuko/, not an individual detail URL.

The run fails after retries

Open the run log and identify the affected search URL. Retry later if SUUMO returned a temporary 5xx response. Reduce simultaneous runs before increasing limits. A challenge page is treated as a failure, not as zero results.

I received fewer rows than maxItems

maxItems is a ceiling, not a promised count. The selected search may have fewer pages, filters can reject records, duplicates are removed, or maxPagesPerUrl may stop first.

Why is a field null?

Rental and sale cards expose different attributes. The schema remains stable by using null for unavailable scalar fields and empty arrays for absent access, image, or tag lists.

This Actor extracts publicly displayed result-card data. You are responsible for complying with SUUMO's terms, robots guidance, applicable database rights, copyright, privacy rules, and local law. Use reasonable limits and a legitimate purpose. Do not use the Actor to harass property owners or agents, republish protected media, infer sensitive personal information, or bypass access controls.

The Actor is unofficial and is not affiliated with or endorsed by SUUMO or Recruit. Source availability and HTML structure can change without notice.

For comparable international property workflows, see:

These are separate sources and do not enrich or replace SUUMO records.

FAQ

Does it require a SUUMO login?

No. It accepts public supported search-result URLs.

Does it support rental and sale listings in one run?

Yes. Add rental and used-condo search URLs to the same input. The unified listingType field distinguishes them.

Does it scrape every type of property sale?

No. The current sale parser supports used-condominium search results. New condos, houses, land, commercial properties, and detail-only URLs are not claimed.

Can I monitor changes automatically?

Yes. Save the input as an Apify Task and schedule it. Store each run's dataset downstream, then compare stable IDs and normalized values.

Are prices final transaction prices?

No. They are asking rents or asking sale prices displayed in SUUMO search results at collection time.

Are image files stored in my dataset?

No. The dataset contains public image URLs exposed by the result card; the Actor does not download image binaries.

Can I export to CSV or Excel?

Yes. Use the default dataset's export controls or API endpoints. Array fields are serialized according to the selected export format.