Taiwan Real Estate Sold Prices API in English avatar

Taiwan Real Estate Sold Prices API in English

Pricing

from $4.00 / 1,000 property records

Go to Apify Store
Taiwan Real Estate Sold Prices API in English

Taiwan Real Estate Sold Prices API in English

Get Taiwan's official real estate sold prices and rents in English (MOI actual price registration): NT$ per ping and m², size, age and building type for sales, pre-sales and rentals, plus district medians. Any city, every 10 days, back to 2012. No API key. API or MCP, $4 per 1,000 rows.

Pricing

from $4.00 / 1,000 property records

Rating

0.0

(0)

Developer

Japan Open Data

Japan Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Get Taiwan's official real estate sold prices in English: every registered home, land and parking sale, pre-sale (off-plan) contract and rental, with price per ping and per m², size, building age and type, and district medians. This Actor reads the Ministry of the Interior's actual price registration open data (實價登錄, updated every 10 days) and returns clean, flat JSON: one row per transaction, plus summary rows with the median price per district.

  • All 22 cities and counties, any district: Taipei, New Taipei, Taoyuan, Taichung, Tainan, Kaohsiung, Hsinchu and the rest.
  • Latest 10-day batch (published on the 1st, 11th and 21st of each month) or any past quarter back to 2012 Q4.
  • Sales, pre-sales and rentals in one tool, with the same English field names.
  • Official English street and district names (Chunghwa Post), prices in NT$, areas in m² and ping (坪).
  • Privacy by design: addresses end at the road, section and lane. House numbers, alleys, floors, land lot numbers and the free-text remarks are never returned (see Privacy).
  • Built for pipelines and AI agents: flat camelCase fields, a status on every row, plain-English errors that are never charged. No API key, no login.

Why use this instead of the MOI website or a Taiwanese price site?

MOI search site / CSV downloadTaiwanese price sites and APIsThis Actor
LanguageChinese onlyChinese onlyEnglish (Chinese kept alongside)
FormatCSV per city with ROC dates, full-width digits, 30+ Chinese columnsWeb pages, or an API with a Chinese-only sign-upFlat JSON, ISO dates, numbers as numbers
Price per ping and per m²Per m² onlyYesBoth, plus district medians
Special deals (related parties, government, rooftop additions)Buried in a free-text remarkPartlyYes/no flags, and left out of the medians
Past quartersDownload and merge by handVariesperiod: "2026Q2"
API, schedules, MCPNoPaid plansYes

What can you do with Taiwan Real Estate Sold Prices API?

  • Foreign investors, funds and brokers - benchmark an asking price against what actually sold in the same district and street this month, in NT$ per ping.
  • Proptech and data teams - feed a pricing model or a dashboard with every registered sale, pre-sale and rental, refreshed every 10 days.
  • Relocation and corporate housing - median rents per district and what a furnished whole unit rents for.
  • Analysts and journalists - quarter-by-quarter district medians for a market report.
  • AI agents - answer "what do apartments sell for in Da'an District, Taipei?" with one tool call and a source link.

How to use

  1. Click Try for free. The default input returns the newest 20 sales in Da'an District, Taipei plus one summary row, in a few seconds.
  2. Change City or county (English, pinyin or Chinese all work: Taipei, Taibei, 臺北市, 台北) and District (Xinyi, Banqiao, 大安區), or clear the district to get the whole city with one summary row per district.
  3. Choose Transaction type: sale, presale or rent.
  4. For history, set Period to a finished quarter such as 2026Q2.

Via the API with only "city", you get the whole city: the newest 20 transactions (often land-only deals first) plus one summary row per district. Add "propertyType": "building" for homes and apartments.

Run it on a schedule

The MOI publishes a new batch on the 1st, 11th and 21st of each month. Create a Schedule in Apify Console that runs on the 2nd, 12th and 22nd with your city, and add a webhook or integration (Google Sheets, Slack, your database) to receive the rows.

Input

FieldTypeDefaultWhat it does
citytext (required)TaipeiAny city or county, in English (New Taipei, Kaohsiung, Hsinchu County), pinyin (Taibei, Gaoxiong) or Chinese (臺北市, 台中). Hsinchu and Chiayi mean the cities; add County for the counties.
districttextDa'an (prefilled in Console)One district / township within the city (Da'an, Daan, Xinyi District, 大安區). Empty or omitted (for example in an API call) = the whole city, with one summary row per district.
transactionTypesale / presale / rentsaleExisting property and land sales, pre-sale contracts of new projects, or rentals.
periodtextlatestlatest = the newest 10-day batch; or a finished quarter from 2012Q4 (e.g. 2026Q2; the MOI code 115S2 also works).
propertyTypeany / building / land / parkinganybuilding = anything with a building (homes, shops, offices, with or without parking).
sortBydate / pricedateNewest first, or highest total price (monthly rent for rentals) first.
maxResultsinteger20Transaction rows to return (1 to 20,000). Summary rows always use all matching transactions.
includeSummarybooleantrueAdds rowType: "summary" rows with count and medians per district (and the whole city when no district is set).

Input examples

{ "city": "New Taipei", "district": "Banqiao", "transactionType": "sale", "propertyType": "building", "maxResults": 200 }
{ "city": "Kaohsiung", "period": "2026Q2", "maxResults": 1, "includeSummary": true }
{ "city": "台北", "district": "信義區", "transactionType": "rent", "sortBy": "price" }

Output

Transaction row (real data, latest batch published September 2026; some fields trimmed):

{
"status": "ok",
"rowType": "transaction",
"transactionType": "sale",
"transactionDate": "2026-08-11",
"city": "Taipei City",
"district": "Da'an District",
"street": "Ln. 176, Sec. 1, Da'an Rd.",
"locationEnglish": "Ln. 176, Sec. 1, Da'an Rd., Da'an District, Taipei City",
"locationChinese": "臺北市大安區大安路一段176巷",
"propertyType": "land+building",
"buildingType": "Mid-rise residential (up to 10 floors, elevator)",
"mainUse": "Residential",
"mainMaterial": "Reinforced concrete (RC)",
"totalFloors": 9,
"builtDate": "2026-05-13",
"buildingAgeYears": 0.2,
"buildingAreaSqm": 30.86,
"buildingAreaPing": 9.34,
"rooms": 1,
"livingRooms": 0,
"bathrooms": 1,
"totalPriceTwd": 15880000,
"unitPriceTwdPerSqm": 514582,
"unitPriceTwdPerPing": 1701097,
"parkingSpaceCount": 0,
"urbanZoning": "Residential",
"relatedPartyTransaction": false,
"includesRooftopAddition": false,
"hasOtherRemarks": false,
"currency": "TWD",
"period": "latest",
"periodDescription": "latest batch: sales registered 2026-09-01 to 2026-09-10; pre-sales signed 2026-08-01 to 2026-08-10; rentals signed 2026-08-01 to 2026-08-10",
"sourceFileUrl": "https://plvr.land.moi.gov.tw/Download?type=csv&fileName=a_lvr_land_a.csv",
"fetchedAt": "2026-09-24T22:31:21Z"
}

Summary row (same run):

{
"status": "ok",
"rowType": "summary",
"summaryLevel": "district",
"transactionType": "sale",
"city": "Taipei City",
"district": "Da'an District",
"transactionCount": 52,
"medianSampleCount": 44,
"excludedFromMedianCount": 8,
"medianTotalPriceTwd": 33100000,
"medianUnitPriceTwdPerPing": 1229162,
"medianUnitPriceTwdPerSqm": 371822,
"medianBuildingAreaPing": 31.58,
"medianBuildingAgeYears": 38.5,
"currency": "TWD"
}

Free rows: an error row for invalid input (for example "Unknown district \"Banqiao\" in Taipei City: use one of its districts ... or leave \"district\" empty for the whole city.") and a not_found row when nothing matches.

Output fields

FieldMeaning
statusok (charged), not_found or error (free)
rowTypetransaction or summary
transactionTypesale, presale or rent
transactionDateContract date (ISO). Sales are published by registration date, so a batch can contain some older contracts
city, district, street, locationEnglishOfficial English names (Chunghwa Post). street ends at road, section and lane; streetNameSource is pinyin for the 1-2% of roads not in the Chunghwa Post table
landSection / landSectionChineseLand-only rows: the cadastral section (no lot number)
cityChinese, districtChinese, streetChinese, locationChineseThe same place in Chinese
propertyTypeland+building, land+building+parking, land, building, parking (rentals: building, building+parking, ...)
buildingType, mainUse, mainMaterialEnglish categories (mainUseChinese keeps the registered wording)
totalFloors, builtDate, buildingAgeYearsFloors of the whole building, completion date, age at the contract date
landAreaSqm/Ping, buildingAreaSqm/Ping, mainBuildingAreaSqm/Ping, auxiliaryAreaSqm, balconyAreaSqmAreas. 1 ping = 3.3058 m². Building area includes the shared common area
rooms, livingRooms, bathrooms, hasPartitions, hasManagementOrganization, hasElevatorLayout and building facts
totalPriceTwd, unitPriceTwdPerSqm, unitPriceTwdPerPingSales / pre-sales. The total includes parking; the MOI unit price excludes separately priced parking
parkingSpaceCount, parkingType, parkingAreaSqm, parkingPriceTwdParking in the deal
landParcelCount, buildingCountNumber of land parcels and buildings in the deal
urbanZoning (+urbanZoningDetailChinese), nonUrbanZone, nonUrbanLandUseZoning in English
projectNameChinese, contractCancelled, cancellationDatePre-sales only: the project (building development) name and whether the contract was cancelled
monthlyRentTwd, rentTwdPerSqm, rentTwdPerPing, rentalType, furnished, hasBuildingManager, leaseStart, leaseEnd, includedEquipment, rentalServiceTypeRentals only
relatedPartyTransaction, governmentSaleOrPurchase, includesRooftopAddition, includesAdditionOrUnregisteredStructure, parkingOnlyTransaction, defectiveProperty, includesPublicFacilityReservedLand, priceIncludesFurnishingsOrRenovation, surfaceRightsBuilding, presaleOrSeparateRegistrationYes/no flags derived from the official remark (sales)
leaseRenewal, rentIncludesManagementFee, socialHousingProgram, sharedTenancy, partialPremisesLeaseYes/no flags derived from the official remark (rentals)
hasOtherRemarksThe official remark said something that is not one of the flags above (the text itself is not returned)
Summary: transactionCount, medianSampleCount, excludedFromMedianCount, medianTotalPriceTwd, medianUnitPriceTwdPerPing, medianUnitPriceTwdPerSqm, medianMonthlyRentTwd, medianRentTwdPerPing, medianBuildingAreaPing, medianBuildingAgeYears, landOnlyCount, earliestTransactionDate, latestTransactionDateMedians use transactions with a building and leave out related-party, government, parking-only, defective-property and public-facility-land deals
period, periodDescription, sourceFileUrl, sourceUrl, fetchedAt, attributionProvenance
errorPlain-English reason on free rows

How much does it cost?

Pay per event - you pay per returned property record (a transaction row or a district summary row with status: "ok"), plus a tiny fee per run:

EventPrice
Property record (result-row)$0.004 per row ($4.00 per 1,000)
Actor start (apify-actor-start)$0.001 per run

not_found and error rows are free. No subscription, no minimum.

UseRowsCost
Median price per ping for one district (maxResults: 1)2under 1 cent
District medians for a whole city (maxResults: 1, no district)about 15-40about $0.06-$0.17
Default run (Da'an District, 20 sales + 1 summary)21about $0.09
API call with only "city": "Taipei" (20 transactions + 13 summary rows)33about $0.13
Every sale in Taipei in one 10-day batchabout 370about $1.50
Every sale in one district for a quarterabout 200-1,000about $0.80-$4.00
One district on a schedule, every batch (3 runs a month)about 150 a monthabout $0.60 a month

Set Maximum cost per run in the run options to cap any run.

Use via API & MCP (AI agents)

REST API (synchronous, returns the rows):

curl -X POST "https://api.apify.com/v2/acts/japan-open-data~taiwan-property-sold-prices/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"city": "Taipei", "district": "Xinyi", "transactionType": "sale", "maxResults": 20}'

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("japan-open-data/taiwan-property-sold-prices").call(
run_input={"city": "New Taipei", "period": "2026Q2", "maxResults": 1})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
if row["rowType"] == "summary":
print(row.get("district"), row["transactionCount"], row["medianUnitPriceTwdPerPing"])

MCP: add the Apify MCP server (https://mcp.apify.com) to Claude, Cursor or any MCP client and enable the tool japan-open-data/taiwan-property-sold-prices.

Recommended settings for agents:

  • For "how much do homes cost in district X?", use {"city": "<city>", "district": "<district>", "propertyType": "building", "maxResults": 5} and quote the summary row's medianUnitPriceTwdPerPing and transactionCount.
  • For a city overview, leave district empty and set maxResults: 1: you get one summary row per district.
  • The latest batch covers only about 10 days; for a more stable median use a finished quarter ("period": "2026Q2").
  • Taiwanese prices are usually quoted in NT$ per ping (坪); 1 ping = 3.3058 m².
  • Quote periodDescription and sourceUrl in answers, and say that prices are declared prices, not appraisals.

Summary for AI assistants: This tool returns Taiwan's official Ministry of the Interior real-estate transaction records (actual price registration, updated every 10 days, quarters back to 2012) for a city and district as English JSON rows: date, street (no house number), building type, age, size in m² and ping, total price and price per ping or monthly rent, plus district median summary rows.

Privacy: what is left out

Since 2021 the official files include the full street address with house number and floor. Combined with the date and price, that can point to a specific owner in the land registry. This Actor therefore:

  • cuts every address after the road, section and lane (Ln. 176, Sec. 1, Da'an Rd.). Alleys (弄), house numbers (號) and floors (樓) are never returned, and neither is the floor of the unit that was sold;
  • returns only the cadastral section for land deals, never the land lot number (地號);
  • never returns the free-text remark (備註), which can contain masked names of buyers and sellers; well-known phrases are turned into yes/no flags instead;
  • drops the MOI case serial numbers and, for pre-sales, the building and unit number.

Buyers' and sellers' names are not in the official data. A consequence of this design: you cannot look up the sale history of one specific apartment, only of its street and district.

FAQ

How fresh is the data?

Each run downloads the MOI file live. The MOI publishes a new 10-day batch on the 1st, 11th and 21st of each month. Sales appear once they are registered, usually 1 to 2 months after the contract; pre-sales and rentals are reported by contract date.

Why are some contract dates older than the batch?

Sales are published by registration date. A contract signed long ago but registered recently appears in the current batch. transactionDate is always the contract date.

Are these appraisals?

No. They are the prices the parties declared to the government. Flags such as relatedPartyTransaction mark deals that may not be at market price; the summary medians leave them out.

What is a ping?

The unit Taiwanese buyers use for floor area: 1 ping (坪) = 3.3058 m² = 35.58 sq ft.

I read Chinese. Do I need this?

Maybe not. For a few look-ups, the MOI's own search site and Taiwanese price sites are free, and some Chinese-language APIs have free tiers. This Actor is for English-speaking users, pipelines and AI agents that need the records as clean English JSON, in bulk, on a schedule or through MCP, without a Chinese sign-up.

Yes. The MOI publishes it as open government data under the Open Government Data License 1.0, which allows commercial use and re-publishing with attribution. Every row carries the attribution, and personal details are removed (see Privacy).

Is this an official MOI service?

No. It re-publishes the MOI's open data under the Open Government Data License. It is not affiliated with, or endorsed by, the Ministry of the Interior.

Troubleshooting

SymptomFix
Unknown cityUse a Taiwanese city or county: Taipei, New Taipei, Taichung, Kaohsiung, Hsinchu County, 臺北市
Unknown districtThe district must be inside the city (Banqiao is in New Taipei, not Taipei). Leave it empty to see all districts
not_found in a small countyThe latest 10-day batch can be empty for small places; use a past quarter ("period": "2026Q2")
Quarter "has not ended yet" or "not published yet"Quarters appear a few weeks after they end; use latest or an earlier quarter
Run stopped earlyYour Maximum cost per run was reached

Known limitations

  • Street names come from the Chunghwa Post English table; about 1-2% of roads (for example new roads or intersections such as "A Rd. and B St.") are transliterated with Hanyu Pinyin instead (streetNameSource: "pinyin"). Some rural addresses have no road and show only the village or district.
  • English building types, uses and materials are fixed translations of the MOI categories; mainUseChinese keeps the registered wording.
  • Prices are in NT$ only; no currency conversion.
  • One city per run. Run it several times (or on a schedule) for more cities.

Data source and licence

Source: Ministry of the Interior, Department of Land Administration, Real Estate Actual Price Registration open data (不動產成交案件實際資訊資料供應系統; data.gov.tw datasets 77051 and 25119). English city, district and road names: Chunghwa Post, 縣市鄉鎮中英對照檔 and 路街中英對照. All licensed under the Open Government Data License, version 1.0. The data has been translated and reduced (addresses shortened, remarks converted to flags) by this Actor. This Actor is not affiliated with, or endorsed by, the Ministry of the Interior or Chunghwa Post.

More from Japan Open Data

Feedback

Found a wrong translation, a street name that should be in English, or want another field or another country's official sold prices? Open an issue on the Issues tab - it will be read.