Get Japan Real Estate data with one API
The Japan Real Estate API returns Japanese property listings as clean JSON.
5 active endpoints, on 1 and 2 credit tiers.
- POST/japan-re/v1/search
- POST/japan-re/v1/detail
- POST/japan-re/v1/areas
- POST/japan-re/v1/listings/search
- POST/japan-re/v1/listings/detail
What Japan Real Estate endpoints does ReefAPI ship?
5 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Japan Real Estate API
3 of 5 endpoints, ready to run
Search SUUMO property listings in any of Japan's 47 prefectures.
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the Japan Real Estate API works
Japan Real Estate is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 185 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Reading a Japanese listing without misplacing four zeros
Japanese property prices are quoted in man-yen (units of 10,000). The number you get back is not. price_jpy is already multiplied out into ordinary yen, while the filter you send, max_price_man, is still in man-yen. Getting those two the wrong way round is a factor of 10,000. All values measured on 2026-08-27.
| Field or parameter | Unit and meaning | Measured |
|---|---|---|
| price_jpy | Ordinary yen, already expanded out of man-yen | Rent price_ja '7.5万円' returned price_jpy 75000. Sale price_ja '498万円' returned price_jpy 4980000. |
| max_price_man | Your filter, in MAN-YEN, not yen | 10 means 100,000 yen a month for rent; 5000 means 50,000,000 yen for a sale |
| area_m2 | Square metres. SUUMO publishes m2, not tsubo, so nothing is converted | 17.62 on a Tokyo 1K rental, 52.54 on an Osaka 1LDK resale |
| madori | The Japanese layout code, returned as published | 1K, 1LDK, 3LDK, and ワンルーム for a studio |
| listing_id, rentals | 12 digits, zero-padded. URL is /chintai/jnc_<id>/ | 000109252250 |
| listing_id, sales | 8 digits. The URL is path-based, /ms/chuko/<pref>/sc_<ward>/nc_<id>/ | 20227675. `detail` needs the url for sales; an id alone returns MISSING_PARAM |
| station_access[] | One entry per line, with walk_minutes parsed from the Japanese string | A Tokyo rental returned three: 1, 10 and 16 minutes on three different lines |
| areas.ar | SUUMO region code, 9 values from 010 to 090 | tokyo 030, osaka 060, fukuoka 090 |
| areas.ta | JIS prefecture code, 01 to 47 | hokkaido 01, tokyo 13, osaka 27, okinawa 47 |
| admin_fee_jpy | Monthly management fee on rentals, separate from rent | 10000 on a 75,000 yen apartment, i.e. the real monthly outlay is 85,000 |
One page is not a fixed 30 rows. A single rent page for Tokyo returned 52 items, because SUUMO lists several units under one building block and each unit becomes its own row. Two rows can therefore share title_ja, address_ja, area_m2 and building_age_years while carrying different listing_id, bukken_code and price_jpy. Deduplicate on listing_id, never on building name.
What people build with Japan Real Estate
The jobs this data is most often used for.
endpoints
credits per call
Investors call search to track Japanese listing prices by area.
Dashboards use detail and madori to enrich a property.
Analysts use areas to size a Japanese market.
What Japan Real Estate data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 185 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/japan-re/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"prefecture":"tokyo","listing_type":"rent","max_pages":1}'import requests
r = requests.post(
"https://api.reefapi.com/japan-re/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"prefecture": "tokyo",
"listing_type": "rent",
"max_pages": 1
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Japan Real Estate.
Get a free key →Is price_jpy in man-yen or in yen?▾
In yen, already multiplied out, and both transaction types were checked. A Tokyo rental showing price_ja '7.5万円' returned price_jpy 75000, and an Osaka resale showing price_ja '498万円' returned price_jpy 4980000. You never need to multiply by 10,000. The one place man-yen survives is the filter: max_price_man is in man-yen, so 10 caps rent at 100,000 yen a month and 5000 caps a sale at 50 million yen.
Why does `detail` reject my sale listing_id?▾
Because SUUMO sale pages have no id-only URL to reconstruct. Rentals live at /chintai/jnc_<12-digit id>/ and can be fetched by listing_id alone; sales live at a path that includes the prefecture and the ward, such as /ms/chuko/osaka/sc_osakasayama/nc_20227675/, which cannot be derived from the id. Passing a sale listing_id returned MISSING_PARAM saying exactly that. Copy the `url` from the search result instead and pass it with the matching listing_type.
What extra fields does a sale detail carry over a search row?▾
The recurring costs and the building facts a buyer needs, and they arrive as Japanese strings rather than parsed numbers: management_fee_ja ('8600円/月(委託(通勤))'), repair_fund_ja ('4130円/月'), total_units_ja ('293戸'), zoning_ja ('2種住居'), handover_ja ('即引渡可') and updated_ja ('2026年8月2日'). Those five are not advertised in the action's declared return shape but were present on the sale listing measured. Budget for the monthly fees separately: on that 4.98 million yen apartment they came to 12,730 yen a month before anything else.
Why does title_ja change between search and detail on a sale listing?▾
Because the two pages title the same property differently. The search row carried the agent's marketing headline, and the detail page for the same listing carried a generated title of building name, price and layout. property_name_ja is the field that stayed identical across both, so use it as the building's name and treat title_ja as display copy. On rentals the two agree, since a rental row is titled with the building name in both places.
How do I find the right prefecture value?▾
Call `areas`, which returns all 47 with four fields each: a romaji slug, the kanji name, ar and ta. The slug or the kanji both work as the `prefecture` parameter. ar is the SUUMO region grouping, only nine values from 010 to 090, so tokyo and kanagawa share 030 while kyoto and osaka share 060. ta is the JIS prefecture code, unique per prefecture, 01 for hokkaido through 47 for okinawa. Pass `query` to filter, for example 'osa' returned only osaka.
Why are deposit_jpy and key_money_jpy null?▾
They came back null on all three Tokyo rentals sampled, along with deposit_ja and key_money_ja. SUUMO does not print shikikin and reikin on every listing page, and where the page does not print them there is nothing to parse, so the field is null rather than zero. Read null as unknown, not as 'no deposit required'. admin_fee_jpy is more reliably present on search rows, at 8,000 to 10,000 yen a month on the listings measured.
How much does one page actually return, and how do I get more?▾
It varies by listing type. A Tokyo rent page returned 52 items and an Osaka buy_apartment page returned 30, both with max_pages 1, because rentals list every available unit under one building block. has_next_page and next_page tell you whether to continue, and max_pages up to 20 merges pages in a single call, stopping early on an empty page. meta.stop_reason says which limit ended the run.
What do station_access entries look like, and is walk_minutes reliable?▾
Each entry has access_ja, the raw Japanese line naming the railway line and station, plus walk_minutes and bus_minutes parsed out of it. Search rows return every line a property is near: one Tokyo rental came back with three entries at 1, 10 and 16 minutes on the Hanzomon, Oedo and Shinjuku lines, each number matching its own access_ja string. The formatting differs slightly between rent and sale pages, so keep access_ja as the source of truth and treat walk_minutes as the sortable convenience field.
What is the Japan Real Estate API?▾
Japan Real Estate API is a ReefAPI endpoint group for japan property listings and details. It returns live JSON through POST requests under /japan-re/v1.
Is the Japan Real Estate API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Japan Real Estate calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Japan Real Estate login or account?▾
No login to Japan Real Estate is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Japan Real Estate data?▾
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Japan Real Estate API use?▾
Japan Real Estate actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Japan Real Estate from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call japan-re actions with the same key, credit pool and JSON envelope used by normal REST requests.
11 Real Estate APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Japan Real Estate, you are one call away from the rest of the category — no second contract, no second integration.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 184 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts.