URA Singapore Property Data Scraper avatar

URA Singapore Property Data Scraper

Pricing

from $2.00 / 1,000 output rows

Go to Apify Store
URA Singapore Property Data Scraper

URA Singapore Property Data Scraper

Fetches project summaries, sale transaction history, and rental history from URA's PMI Mobile property data service, by project name, street, district, or full island-wide crawl.

Pricing

from $2.00 / 1,000 output rows

Rating

0.0

(0)

Developer

R.L.

R.L.

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

11 days ago

Last modified

Categories

Share

What does URA Singapore Property Data Scraper do?

This Actor pulls live private residential property market data straight from the same backend that powers URA's official PMI Mobile app — project sale price/rental summaries, unit-level sale transaction history, and quarterly rental statistics — for any project in Singapore, any street, an entire URA planning district, or the whole island at once. Run it manually, on a schedule, or trigger it from the Apify API to keep a property-market dataset continuously up to date.

Why use URA Singapore Property Data Scraper?

  • Market research & investment analysis — track price/rental trends for specific projects or districts over time.
  • Portfolio monitoring — watch transaction and rental activity for buildings you own or manage.
  • Real estate proptech & data products — feed structured Singapore property data into dashboards, models, or apps without maintaining your own scraper.
  • Comparative analysis — pull an entire district's worth of projects in one run to compare price/rental performance.

How to use URA Singapore Property Data Scraper

  1. Click Try for free or set up input in the Input tab.
  2. Pick a lookup mode -- projectNames, streetNames, and districts are all searchable dropdowns pre-populated from URA's own project index, so there's no free-text typing or guessing exact names:
    • Specific projects — pick one or more from the projectNames dropdown (e.g. "THE SAIL @ MARINA BAY").
    • Specific streets — pick one or more from the streetNames dropdown.
    • A district — pick one or more from the districts dropdown to fetch every known project in those districts.
    • Free-text search — type into searchQuery to reproduce the app's own search box (case-insensitive substring match against project and street names, e.g. "sail" finds "THE SAIL @ MARINA BAY", "RIVERSAILS", "VERSAILLES"). Combine with districts to scope it.
    • The whole index — set crawlAll to true to fetch all ~3,200 projects island-wide (use maxProjects to cap this for a first test run).
  3. Choose which data types to include: project summary, transaction history, rental history.
  4. Run the Actor and download results from the Dataset tab, or read them via the Apify API/CLI.

Input

FieldTypeDescription
projectNamesarray of stringsExact/near-exact project names to fetch directly
streetNamesarray of stringsStreet names to fetch directly (best-effort)
searchQuerystringFree-text substring search over project/street names, same as the app's search box
districtsarray of stringsURA district codes (0128) to browse via the bundled project index
crawlAllbooleanFetch every project in the bundled index
maxProjectsintegerCap on resolved projects/streets actually fetched (0 = no cap)
includeProjectSummarybooleanFetch project-level summary
includeTransactionsbooleanFetch sale transaction history
includeRentalsbooleanFetch rental history
transactionMonths / rentalQuartersintegerHow far back to request (URA caps actual results at the project's available history)
concurrencyintegerParallel project fetches
requestDelayMsintegerPause between calls per project

Example input:

{
"districts": ["09", "10"],
"includeProjectSummary": true,
"includeTransactions": true,
"includeRentals": true,
"maxProjects": 100
}

Output

Each dataset item is one record — a project summary, a single sale transaction, or a single quarter of rental stats — tagged with dataType and the project/street/district it belongs to.

{
"dataType": "transaction",
"projectName": "THE SAIL @ MARINA BAY",
"streetName": null,
"districtCode": "01",
"districtName": "Raffles Place, Cecil, Marina, People's Park",
"floorRange": "01 to 05",
"areaSqft": 883.0,
"areaSqm": 82.05,
"price": 1608000.0,
"refPeriod": "JUL 2026",
"unitPricePsf": 1822.0,
"unitPricePsm": 19611.87
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data fields

URA reports area and price rates in imperial units (sqft, PSF) only -- this Actor derives the metric equivalents (sqm, PSM) itself using 1 sqm = 10.7639 sqft, so every row carries both.

FieldApplies toDescription
projectName, streetName, districtCode, districtNameallProject/location context
lastTransactedRefPeriod, lastTransactedValuePsf, lastTransactedValuePsmprojectSummaryMost recent transacted price rate and period
lastRentalRefPeriod, lastRentalValuePsf, lastRentalValuePsmprojectSummaryMost recent median rental rate/month and period
marketSegment, tenure, propertyTypeprojectSummarySegment (CCR/RCR/OCR), tenure, property type code
floorRange, areaSqft, areaSqm, price, unitPricePsf, unitPricePsm, refPeriodtransactionPer-unit sale record
medianPsfPerMonth, medianPsmPerMonth, p25PsfPerMonth, p25PsmPerMonth, p75PsfPerMonth, p75PsmPerMonth, refPeriodrentalQuarterly rental price distribution

How much does it cost to scrape URA property data?

This Actor makes lightweight SOAP calls, not browser rendering, so it's cheap to run on Apify's compute-unit pricing. A single project lookup (summary + full transaction + rental history) typically completes in a few seconds. Fetching a whole district (dozens to low hundreds of projects) or the full island-wide index (~3,200 projects) scales roughly linearly — use maxProjects and the default polite concurrency/requestDelayMs settings to keep runs predictable in both cost and load on URA's servers.

Tips

  • Start with a maxProjects cap when exploring districts or crawlAll mode.
  • Project names must match URA's own naming closely — check data.gov.sg's URA Property Transaction dataset or the PMI app if a lookup returns nothing.
  • Keep concurrency modest (default 5) — this is a public government service, not a bulk API.

FAQ, disclaimers, and support

This Actor calls a public, unauthenticated web service used by URA's own PMI Mobile app to serve property market data to the public. It performs read-only queries and does not require credentials. Data accuracy and availability depend entirely on URA; this Actor does not modify, cache-poison, or resell URA data beyond what the source service already returns.

The bundled project name/street/district index is a static snapshot (dated 2014) used only to resolve which projects exist for district/island-wide browsing — all price, rental, and transaction data returned for each project is fetched live at run time. Very recently launched projects that are not yet in this static index may not surface via districts/crawlAll mode; use projectNames directly for those.

Found a bug or have a feature request? Use the Issues tab on this Actor's page.