Singapore HDB Resale Flat Prices Scraper avatar

Singapore HDB Resale Flat Prices Scraper

Pricing

from $6.15 / 1,000 results

Go to Apify Store
Singapore HDB Resale Flat Prices Scraper

Singapore HDB Resale Flat Prices Scraper

Scrape Singapore HDB resale flat prices and transactions from data.gov.sg, no API key. Filter by town, flat type, price, floor area and month (1990 to now). Get resale price, price per sqm and sqft, storey, lease and geocoded address. Export JSON, CSV, Excel.

Pricing

from $6.15 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Singapore HDB Resale Flat Prices Scraper

Singapore HDB Resale Flat Prices Scraper

Scrape Singapore HDB resale flat prices and transactions straight from the official government open data (data.gov.sg), with no API key and no account on the source. Get every field HDB publishes for each resale, from 1990 to the present, plus derived analytics (price per sqm and sqft, lease age, remaining lease in months) and a geocoded address (postal code, latitude, longitude). This is the most complete HDB resale price scraper and Singapore property prices data feed on Apify.

Here is one real result, with every field the actor returns:

{
"month": "2026-09",
"transactionYear": 2026,
"transactionQuarter": "2026-Q3",
"town": "TAMPINES",
"flatType": "4 ROOM",
"block": "859A",
"streetName": "TAMPINES AVE 5",
"storeyRange": "07 TO 09",
"storeyRangeMid": 8,
"storeyMin": 7,
"storeyMax": 9,
"floorAreaSqm": 104,
"floorAreaSqft": 1119.45,
"flatModel": "Model A",
"leaseCommenceDate": "1988",
"leaseCommenceYear": 1988,
"leaseAgeYears": 38,
"remainingLease": "60 years 07 months",
"remainingLeaseMonths": 727,
"remainingLeaseYears": 60.58,
"resalePrice": 675000,
"priceCurrency": "SGD",
"pricePerSqm": 6490.38,
"pricePerSqft": 602.97,
"fullAddress": "859A TAMPINES AVE 5",
"postalCode": "521859",
"latitude": 1.355063074078523,
"longitude": 103.9380571628706,
"formattedAddress": "859A TAMPINES AVENUE 5 TAMPINES PARKVIEW SINGAPORE 521859",
"datasetPeriod": "2017-present",
"contentHash": "6d5e429f4270b29c",
"source": "Singapore HDB resale flat transactions (data.gov.sg)",
"observedAt": "2026-09-06T09:42:31.106Z"
}

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

This is a data.gov.sg HDB scraper for the official resale flat transactions published by the Housing & Development Board. It applies the filters you pass, paginates through matching transactions across five official datasets that together span 1990 to the present (about 986,000 records), and writes one clean record per resale. On top of the raw feed it computes floor area in square feet, price per sqm and per sqft, storey band low, mid and high, lease age at sale, and remaining lease in months and years. It also geocodes each address through Singapore's official OneMap service to add postal code, latitude, longitude and a standardized address. Prices are in Singapore dollars. No API key is required.

Why this scraper

  • Full history. Reads all five official HDB resale datasets, 1990 to present, not just the recent one.
  • More filters. Town, flat type, flat model, block, price range, floor area range, month range and free-text search, all combinable.
  • Richer output. Price per sqm and sqft, storey low/mid/high, lease age, remaining lease in months and years, and a geocoded address that most alternatives do not provide.
  • Ready for analysis. A stable contentHash per transaction for deduping, plus an optional market-stats add-on for benchmarking.
  • No API key, no browser, no account. Pure HTTP against the official open data portal.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the 10 most recent HDB resale transactions.

{
"maxTransactions": 10,
"sortByNewest": true
}

Every input field is optional. Leave the filters empty to pull the full transaction history newest first, up to maxTransactions.

Input reference

FieldTypeRequiredDefaultDescription
maxTransactionsintegerno10Maximum number of resale transactions to collect. Large pulls are paced automatically because the source rate-limits anonymous access.
townstringno(all)One HDB town, case-insensitive exact match, for example ANG MO KIO, TAMPINES, BEDOK, WOODLANDS.
flatTypestringno(all)One flat type, exact match, for example 3 ROOM, 4 ROOM, 5 ROOM, EXECUTIVE, MULTI-GENERATION.
flatModelstringno(all)One flat model, exact match, for example Improved, New Generation, Maisonette, Model A, Premium Apartment.
blockstringno(all)One block number, exact match, for example 406, 605.
searchQuerystringno(empty)Free-text search across the transaction, for example a street name or block (ANG MO KIO AVE 10, 406).
minPriceintegerno(none)Keep only transactions with a resale price of at least this amount in SGD.
maxPriceintegerno(none)Keep only transactions with a resale price of at most this amount in SGD.
minFloorAreaSqmintegerno(none)Keep only transactions with a floor area of at least this many square metres.
maxFloorAreaSqmintegerno(none)Keep only transactions with a floor area of at most this many square metres.
fromMonthstringno(none)Keep only transactions in or after this month, format YYYY-MM.
toMonthstringno(none)Keep only transactions in or before this month, format YYYY-MM.
datasetPeriodstringnoallWhich official dataset(s) to read: all (1990 to present), 2017-present, 2015-2016, 2012-2014, 2000-2012, 1990-1999.
sortByNewestbooleannotrueReturn the most recent months first. Turn off for source (oldest-first) order.
includeMarketStatsbooleannofalsePaid add-on (paid plans only). Adds town + flat-type segment market context to each transaction. See Billing.

Filters combine with logical AND. Note: transactions before 2015 do not carry a remaining-lease value at source, so remainingLease fields are null for that period.

Output reference

One dataset item per resale transaction. Values are null when the source value is absent.

FieldTypeDescription
monthstringTransaction month in YYYY-MM format.
transactionYearintegerTransaction year (derived).
transactionQuarterstringTransaction quarter, for example 2026-Q3 (derived).
townstringHDB town, for example TAMPINES.
flatTypestringFlat type, for example 4 ROOM, EXECUTIVE, MULTI-GENERATION.
blockstringBlock number.
streetNamestringStreet name.
storeyRangestringStorey band, for example 07 TO 09.
storeyRangeMidintegerMidpoint of the storey band (derived).
storeyMinintegerLow storey of the band (derived).
storeyMaxintegerHigh storey of the band (derived).
floorAreaSqmnumberFloor area in square metres.
floorAreaSqftnumberFloor area in square feet (derived).
flatModelstringHDB flat model, for example Model A.
leaseCommenceDatestringYear the lease commenced, as published.
leaseCommenceYearintegerLease commencement year as a number.
leaseAgeYearsintegerFlat age at time of sale, transactionYear minus leaseCommenceYear (derived).
remainingLeasestringRemaining lease as published, for example 60 years 07 months.
remainingLeaseMonthsintegerRemaining lease in whole months (derived).
remainingLeaseYearsnumberRemaining lease in years (derived).
resalePriceintegerResale price in Singapore dollars.
priceCurrencystringAlways SGD.
pricePerSqmnumberresalePrice / floorAreaSqm (derived).
pricePerSqftnumberresalePrice / floorAreaSqft (derived).
fullAddressstringBlock and street joined into one address.
postalCodestring6-digit postal code from OneMap geocoding, or null.
latitudenumberLatitude from OneMap geocoding, or null.
longitudenumberLongitude from OneMap geocoding, or null.
formattedAddressstringStandardized address from OneMap, or null.
datasetPeriodstringWhich official dataset the record came from, for example 2017-present.
contentHashstringStable 16-char hash of the transaction, handy for deduping across runs.
priceVsSegmentMedianPctnumberOnly with the market-stats add-on: percent above or below the segment median price.
segmentStatsobjectOnly with the market-stats add-on: median, average, min, max price and price per sqm for the town + flat-type segment.
sourcestringData source label.
observedAtstringISO 8601 timestamp when the record was collected.
errorstringPresent only on a failed run: a single item with a populated error field is written instead of results.

Comparison with other actors

FeatureThis actor (scrapers.lat)unfenced-group/hdb-resale-scrapersingaporedata/singapore-hdb-resale-transactions
SourceOfficial data.gov.sg, no API keyOfficial data.gov.sgOfficial data.gov.sg
History coverage1990 to present (all 5 datasets)1990 to present1990 to present
Town filterYesYesYes
Flat type filterYesYesYes
Flat model filterYesNoNo
Block filterYesNoNo
Price range filterYesNoNo
Floor area range filterYesNoNo
Month range filterYesYesNo
Free-text searchYesNoYes
Price per sqm and sqftYesYesNo
Storey low / mid / highYesmin and max onlyNo
Lease age and remaining lease in monthsYeslease age onlyNo
Geocoding (postal, lat, lng)YesNoNo
Stable content hashYesYesNo
Market-stats add-onYes (optional)NoNo

This actor accepts every input and returns every field the alternatives do, and adds flat-model and block filters, price and floor-area range filters, geocoding, storey low/mid/high, and an optional market-stats add-on.

Run via API and CLI

Start a run and read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~singapore-hdb-resale-prices-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"town":"TAMPINES","flatType":"4 ROOM","fromMonth":"2024-01","maxTransactions":50}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~singapore-hdb-resale-prices-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"minPrice":1000000,"maxTransactions":500}'

Apify CLI:

apify call scrapers_lat/singapore-hdb-resale-prices-scraper \
--input '{"town":"YISHUN"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object.

Billing and limits

  • Pay per result. You are charged per record returned (result event). See the pricing tab.
  • Market-stats add-on. Optional, paid plans only. When includeMarketStats is on, each transaction is enriched with its town + flat-type segment context (median, average, min, max price and price per sqm) and a priceVsSegmentMedianPct, billed as one Detail record event per enriched transaction, only when stats are produced.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxTransactions.
  • Source rate limit. The data.gov.sg portal throttles anonymous access, so large pulls are paced automatically.

FAQ and troubleshooting

Do I need an HDB or data.gov.sg API key? No. The actor reads the public open data with no API key and no account on the source.

How far back does the data go? 1990 to the present, across five official datasets. Set datasetPeriod to target one period. Transactions before 2015 do not carry a remaining-lease value at source.

A run returned 0 records. Why? The filter matched nothing. Check the exact town, flatType or flatModel spelling, widen the price or area range, or clear the filters. Zero-result runs are not charged.

Why is latitude or postalCode null? The OneMap geocoder could not resolve that block and street. Missing values are returned as null, never invented.

Are the per-area prices official? No. pricePerSqm, pricePerSqft, floorAreaSqft and the market-stats fields are computed from the official resalePrice and floorAreaSqm.

Is this an official HDB tool? No. It is independent and unaffiliated with the Housing & Development Board. It reads only publicly available data from data.gov.sg and OneMap.


Scraper de Precios de Reventa de Pisos HDB de Singapur

Extrae precios y transacciones de reventa de pisos HDB de Singapur directamente de los datos abiertos oficiales del gobierno (data.gov.sg), sin clave API y sin cuenta en la fuente. Obtén todos los campos que HDB publica para cada reventa, desde 1990 hasta hoy, mas campos analiticos derivados (precio por m2 y por pie cuadrado, antiguedad del arrendamiento, arrendamiento restante en meses) y una direccion geocodificada (codigo postal, latitud, longitud). Este es el scraper de precios de reventa HDB y el feed de datos de precios de propiedades de Singapur mas completo de Apify.

Aqui tienes un resultado real, con todos los campos que devuelve el actor:

{
"month": "2026-09",
"transactionYear": 2026,
"transactionQuarter": "2026-Q3",
"town": "TAMPINES",
"flatType": "4 ROOM",
"block": "859A",
"streetName": "TAMPINES AVE 5",
"storeyRange": "07 TO 09",
"storeyRangeMid": 8,
"storeyMin": 7,
"storeyMax": 9,
"floorAreaSqm": 104,
"floorAreaSqft": 1119.45,
"flatModel": "Model A",
"leaseCommenceDate": "1988",
"leaseCommenceYear": 1988,
"leaseAgeYears": 38,
"remainingLease": "60 years 07 months",
"remainingLeaseMonths": 727,
"remainingLeaseYears": 60.58,
"resalePrice": 675000,
"priceCurrency": "SGD",
"pricePerSqm": 6490.38,
"pricePerSqft": 602.97,
"fullAddress": "859A TAMPINES AVE 5",
"postalCode": "521859",
"latitude": 1.355063074078523,
"longitude": 103.9380571628706,
"formattedAddress": "859A TAMPINES AVENUE 5 TAMPINES PARKVIEW SINGAPORE 521859",
"datasetPeriod": "2017-present",
"contentHash": "6d5e429f4270b29c",
"source": "Singapore HDB resale flat transactions (data.gov.sg)",
"observedAt": "2026-09-06T09:42:31.106Z"
}

📥 Entrada · 📤 Salida · 💰 Precios · ▶️ Ejemplos

Tabla de contenido

Que hace

Es un scraper de data.gov.sg HDB para las transacciones de reventa oficiales publicadas por la Junta de Vivienda y Desarrollo (HDB). Aplica los filtros que pasas, pagina las transacciones que coinciden en cinco conjuntos de datos oficiales que juntos cubren de 1990 a hoy (unos 986.000 registros) y escribe un registro limpio por reventa. Sobre el feed original calcula la superficie en pies cuadrados, el precio por m2 y por pie cuadrado, el piso bajo, medio y alto de la banda, la antiguedad del arrendamiento en la venta y el arrendamiento restante en meses y anos. Tambien geocodifica cada direccion con el servicio oficial OneMap de Singapur para anadir codigo postal, latitud, longitud y una direccion normalizada. Los precios estan en dolares de Singapur. No se necesita clave API.

Por que este scraper

  • Historial completo. Lee los cinco conjuntos de datos oficiales de reventa HDB, de 1990 a hoy, no solo el reciente.
  • Mas filtros. Ciudad, tipo de piso, modelo de piso, bloque, rango de precio, rango de superficie, rango de meses y busqueda de texto libre, todos combinables.
  • Salida mas rica. Precio por m2 y por pie cuadrado, piso bajo/medio/alto, antiguedad del arrendamiento, arrendamiento restante en meses y anos, y una direccion geocodificada que la mayoria de alternativas no ofrece.
  • Listo para analisis. Un contentHash estable por transaccion para deduplicar, mas un complemento opcional de estadisticas de mercado para comparar.
  • Sin clave API, sin navegador, sin cuenta. HTTP puro contra el portal oficial de datos abiertos.

Inicio rapido

Abre el actor, pega esto en la entrada y presiona Run. Devuelve las 10 transacciones de reventa HDB mas recientes.

{
"maxTransactions": 10,
"sortByNewest": true
}

Todos los campos de entrada son opcionales. Deja los filtros vacios para extraer todo el historial de transacciones, lo mas reciente primero, hasta maxTransactions.

Referencia de entrada

CampoTipoRequeridoPredeterminadoDescripcion
maxTransactionsenterono10Numero maximo de transacciones a recopilar. Las extracciones grandes se pausan automaticamente porque la fuente limita el acceso anonimo.
towntextono(todas)Una ciudad HDB, coincidencia exacta sin distincion de mayusculas, por ejemplo ANG MO KIO, TAMPINES, BEDOK, WOODLANDS.
flatTypetextono(todos)Un tipo de piso, coincidencia exacta, por ejemplo 3 ROOM, 4 ROOM, 5 ROOM, EXECUTIVE, MULTI-GENERATION.
flatModeltextono(todos)Un modelo de piso, coincidencia exacta, por ejemplo Improved, New Generation, Maisonette, Model A, Premium Apartment.
blocktextono(todos)Un numero de bloque, coincidencia exacta, por ejemplo 406, 605.
searchQuerytextono(vacio)Busqueda de texto libre en la transaccion, por ejemplo una calle o bloque (ANG MO KIO AVE 10, 406).
minPriceenterono(ninguno)Conserva solo transacciones con un precio de reventa de al menos este monto en SGD.
maxPriceenterono(ninguno)Conserva solo transacciones con un precio de reventa de como maximo este monto en SGD.
minFloorAreaSqmenterono(ninguno)Conserva solo transacciones con una superficie de al menos estos metros cuadrados.
maxFloorAreaSqmenterono(ninguno)Conserva solo transacciones con una superficie de como maximo estos metros cuadrados.
fromMonthtextono(ninguno)Conserva solo transacciones en o despues de este mes, formato YYYY-MM.
toMonthtextono(ninguno)Conserva solo transacciones en o antes de este mes, formato YYYY-MM.
datasetPeriodtextonoallQue conjunto(s) de datos leer: all (1990 a hoy), 2017-present, 2015-2016, 2012-2014, 2000-2012, 1990-1999.
sortByNewestbooleanonotrueDevuelve los meses mas recientes primero. Desactiva para el orden de origen (mas antiguo primero).
includeMarketStatsbooleanonofalseComplemento de pago (solo planes de pago). Anade contexto de mercado por ciudad y tipo de piso a cada transaccion. Ver Facturacion.

Los filtros se combinan con AND logico. Nota: las transacciones anteriores a 2015 no traen un valor de arrendamiento restante en la fuente, por lo que los campos remainingLease son null en ese periodo.

Referencia de salida

Un elemento del dataset por transaccion de reventa. Los valores son null cuando el valor de origen no existe.

CampoTipoDescripcion
monthtextoMes de la transaccion en formato YYYY-MM.
transactionYearenteroAno de la transaccion (derivado).
transactionQuartertextoTrimestre de la transaccion, por ejemplo 2026-Q3 (derivado).
towntextoCiudad HDB, por ejemplo TAMPINES.
flatTypetextoTipo de piso, por ejemplo 4 ROOM, EXECUTIVE, MULTI-GENERATION.
blocktextoNumero de bloque.
streetNametextoNombre de la calle.
storeyRangetextoBanda de piso, por ejemplo 07 TO 09.
storeyRangeMidenteroPunto medio de la banda de piso (derivado).
storeyMinenteroPiso bajo de la banda (derivado).
storeyMaxenteroPiso alto de la banda (derivado).
floorAreaSqmnumeroSuperficie en metros cuadrados.
floorAreaSqftnumeroSuperficie en pies cuadrados (derivado).
flatModeltextoModelo de piso HDB, por ejemplo Model A.
leaseCommenceDatetextoAno de inicio del arrendamiento, tal como se publica.
leaseCommenceYearenteroAno de inicio del arrendamiento como numero.
leaseAgeYearsenteroAntiguedad del piso en la venta, transactionYear menos leaseCommenceYear (derivado).
remainingLeasetextoArrendamiento restante tal como se publica, por ejemplo 60 years 07 months.
remainingLeaseMonthsenteroArrendamiento restante en meses enteros (derivado).
remainingLeaseYearsnumeroArrendamiento restante en anos (derivado).
resalePriceenteroPrecio de reventa en dolares de Singapur.
priceCurrencytextoSiempre SGD.
pricePerSqmnumeroresalePrice / floorAreaSqm (derivado).
pricePerSqftnumeroresalePrice / floorAreaSqft (derivado).
fullAddresstextoBloque y calle unidos en una direccion.
postalCodetextoCodigo postal de 6 digitos de OneMap, o null.
latitudenumeroLatitud de OneMap, o null.
longitudenumeroLongitud de OneMap, o null.
formattedAddresstextoDireccion normalizada de OneMap, o null.
datasetPeriodtextoDe que conjunto oficial proviene el registro, por ejemplo 2017-present.
contentHashtextoHash estable de 16 caracteres de la transaccion, util para deduplicar entre ejecuciones.
priceVsSegmentMedianPctnumeroSolo con el complemento de estadisticas: porcentaje por encima o debajo de la mediana del segmento.
segmentStatsobjetoSolo con el complemento: mediana, promedio, minimo, maximo de precio y precio por m2 del segmento ciudad + tipo de piso.
sourcetextoEtiqueta de la fuente de datos.
observedAttextoMarca de tiempo ISO 8601 de cuando se recopilo el registro.
errortextoPresente solo en una ejecucion fallida: se escribe un unico elemento con error en lugar de resultados.

Comparacion con otros actores

FuncionEste actor (scrapers.lat)unfenced-group/hdb-resale-scrapersingaporedata/singapore-hdb-resale-transactions
Fuentedata.gov.sg oficial, sin clave APIdata.gov.sg oficialdata.gov.sg oficial
Cobertura historica1990 a hoy (5 conjuntos)1990 a hoy1990 a hoy
Filtro de ciudadSiSiSi
Filtro de tipo de pisoSiSiSi
Filtro de modelo de pisoSiNoNo
Filtro de bloqueSiNoNo
Filtro de rango de precioSiNoNo
Filtro de rango de superficieSiNoNo
Filtro de rango de mesesSiSiNo
Busqueda de texto libreSiNoSi
Precio por m2 y pie cuadradoSiSiNo
Piso bajo / medio / altoSisolo min y maxNo
Antiguedad y arrendamiento en mesesSisolo antiguedadNo
Geocodificacion (postal, lat, lng)SiNoNo
Hash de contenido estableSiSiNo
Complemento de estadisticas de mercadoSi (opcional)NoNo

Este actor acepta cada entrada y devuelve cada campo de las alternativas, y anade filtros de modelo de piso y de bloque, filtros de rango de precio y superficie, geocodificacion, piso bajo/medio/alto y un complemento opcional de estadisticas de mercado.

Ejecutar via API y CLI

Inicia una ejecucion y lee el dataset. Reemplaza <TOKEN> con tu token de API de Apify.

Ejecutar de forma sincrona y obtener los elementos del dataset en una llamada:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~singapore-hdb-resale-prices-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"town":"TAMPINES","flatType":"4 ROOM","fromMonth":"2024-01","maxTransactions":50}'

Iniciar una ejecucion de forma asincrona:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~singapore-hdb-resale-prices-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"minPrice":1000000,"maxTransactions":500}'

Apify CLI:

apify call scrapers_lat/singapore-hdb-resale-prices-scraper \
--input '{"town":"YISHUN"}'

Obtener resultados

Cada ejecucion escribe en un dataset. Obten los elementos como JSON, CSV o Excel cambiando format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginar datasets grandes
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> se devuelve como defaultDatasetId en el objeto de la ejecucion.

Facturacion y limites

  • Pago por resultado. Se cobra por registro devuelto (evento result). Consulta la pestana de precios.
  • Complemento de estadisticas de mercado. Opcional, solo planes de pago. Con includeMarketStats activo, cada transaccion se enriquece con el contexto de su segmento ciudad + tipo de piso (mediana, promedio, minimo, maximo de precio y precio por m2) y un priceVsSegmentMedianPct, facturado como un evento Detail record por transaccion enriquecida, solo cuando se producen estadisticas.
  • Sin cargo por fallo. Si una ejecucion falla, el actor escribe un unico elemento con error y no cobra por el. Las ejecuciones vacias no cuestan nada.
  • Limite de gasto respetado. Configura maxTotalChargeUsd en la ejecucion; al alcanzarlo, el actor deja de emitir y cobrar.
  • Los planes gratuitos de Apify estan limitados a 10 registros por ejecucion. Mejora tu plan para un maxTransactions mayor.
  • Limite de la fuente. El portal data.gov.sg limita el acceso anonimo, por lo que las extracciones grandes se pausan automaticamente.

Preguntas frecuentes

Necesito una clave API de HDB o de data.gov.sg? No. El actor lee los datos abiertos publicos sin clave API y sin cuenta en la fuente.

Hasta que ano llegan los datos? De 1990 a hoy, en cinco conjuntos oficiales. Usa datasetPeriod para elegir un periodo. Las transacciones anteriores a 2015 no traen valor de arrendamiento restante en la fuente.

Una ejecucion devolvio 0 registros. Por que? El filtro no coincidio con nada. Revisa la ortografia exacta de town, flatType o flatModel, amplia el rango de precio o superficie, o quita los filtros. Las ejecuciones sin resultados no se cobran.

Por que latitude o postalCode son null? El geocodificador OneMap no pudo resolver ese bloque y calle. Los valores faltantes se devuelven como null, nunca se inventan.

Los precios por superficie son oficiales? No. pricePerSqm, pricePerSqft, floorAreaSqft y los campos de estadisticas se calculan a partir del resalePrice y floorAreaSqm oficiales.

Es una herramienta oficial de HDB? No. Es independiente y sin afiliacion con la Junta de Vivienda y Desarrollo (HDB). Lee solo datos disponibles publicamente en data.gov.sg y OneMap.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the Housing & Development Board (HDB). Accesses only publicly available data from the official government open-data portal (data.gov.sg) and OneMap.