Pinhome Property Scraper Indonesia avatar

Pinhome Property Scraper Indonesia

Pricing

from $4.00 / 1,000 property results

Go to Apify Store
Pinhome Property Scraper Indonesia

Pinhome Property Scraper Indonesia

Scrape Pinhome property listings across Indonesia for sale and rent. Extract prices, price per m², locations, land and building area, bedrooms, bathrooms, agents, developers, financing, and rental terms. Monitor NEW, PRICE_CHANGED, UPDATED, and safely verified REMOVED listings.

Pricing

from $4.00 / 1,000 property results

Rating

0.0

(0)

Developer

ProdukDigitalAli

ProdukDigitalAli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Unofficial and independent. This Actor is not affiliated with, endorsed by, sponsored by, or operated by Pinhome.

What is this Actor?

Pinhome Property Scraper Indonesia extracts public Pinhome sale and rent listings into structured, analysis-ready property data.

Use it for:

  • property aggregation,
  • market and price analysis,
  • price-per-m² research,
  • agent and developer intelligence,
  • listing monitoring,
  • price-change monitoring,
  • dashboards, APIs, scheduled workflows, and AI/data pipelines.

The default input starts from https://www.pinhome.id/jual/rumah. You can also provide other public Pinhome search URLs or direct property detail URLs.

Main output fields

The Actor aims to extract:

  • stable listingId and canonical listingUrl,
  • sale/rent transaction type,
  • property type and new/secondary listing type,
  • exact or range price,
  • structured rental pricePeriod and minimumLeaseMonths when Pinhome publishes them,
  • Pinhome price per m² when public,
  • transparent calculated price-per-land/building-m² fallbacks for exact-price records,
  • location and address,
  • bedrooms and bathrooms,
  • land/building area,
  • floors, certificate, furnishing, electricity, water source, carports,
  • facilities and financing options,
  • agent/developer information,
  • description and public update label,
  • monitoring state and price-change fields.

Source values can be missing when Pinhome does not publish them for a listing.

Quick start

{
"startUrls": [
{"url": "https://www.pinhome.id/jual/rumah"}
],
"maxItems": 20,
"maxPages": 5,
"concurrency": 8,
"monitorMode": false,
"emitChangesOnly": false,
"detectRemoved": false,
"maxRemovedChecks": 50,
"monitorKey": "default",
"proxyConfiguration": {"useApifyProxy": false},
"requestTimeoutSeconds": 30,
"maxRetries": 3
}

Price-per-m² fields

The Actor keeps source and calculated metrics separate:

  • pricePerM2 — preferred usable price-per-m² metric,
  • pricePerM2Source = PINHOME — Pinhome published the value,
  • pricePerM2Source = CALCULATED_LAND — calculated from exact price / exact land area,
  • pricePerM2Source = CALCULATED_BUILDING — calculated from exact price / exact building area,
  • pricePerLandM2Calculated — explicit land-area calculation,
  • pricePerBuildingM2Calculated — explicit building-area calculation.

For listings with price or area ranges, the Actor does not invent a single calculated price-per-m² value.

For rental listings, calculated price-per-m² values inherit the listing's rental period. Use pricePeriod (year, month, week, or day) to interpret the metric. minimumLeaseMonths is extracted from Pinhome's public minimum-duration label when available.

Privacy and public listing data

The Actor is designed for public property metadata. It keeps public agent/developer names when shown on the listing, but direct phone numbers, WhatsApp links, and email addresses are redacted from description.

Monitoring

Enable monitorMode to persist state for a repeatable scope.

Change types:

  • NEW — first observation,
  • PRICE_CHANGED — exact price or price range changed,
  • UPDATED — another meaningful property field changed,
  • UNCHANGED — meaningful data stayed the same,
  • REMOVED — a missing prior listing was independently confirmed unavailable.

Relative source labels such as Diperbarui 1 hari lalu are retained in output but excluded from the meaningful fingerprint, so time passing alone does not create UPDATED noise.

With emitChangesOnly: true, unchanged rows are suppressed. A successful monitoring run can therefore emit zero dataset items.

A property disappearing from the current search page is not enough to mark it removed. The Actor verifies the original detail URL and requires repeated 404/410 confirmation. Network errors, timeouts, 5xx responses, or an inconclusive 200 response never become REMOVED.

Local VS Code testing

This project includes ready-to-run inputs under test_inputs/ and a PowerShell helper.

Parser smoke test:

powershell -ExecutionPolicy Bypass -File scripts/run_local_test.ps1 INPUT_20.json

Larger parser test:

powershell -ExecutionPolicy Bypass -File scripts/run_local_test.ps1 INPUT_100.json

Monitoring sequence — do not purge storage between runs:

powershell -ExecutionPolicy Bypass -File scripts/run_local_test.ps1 MONITOR_NEW.json
powershell -ExecutionPolicy Bypass -File scripts/run_local_test.ps1 MONITOR_UNCHANGED.json
python scripts/seed_price_change_test.py
powershell -ExecutionPolicy Bypass -File scripts/run_local_test.ps1 MONITOR_PRICE_CHANGED.json
powershell -ExecutionPolicy Bypass -File scripts/run_local_test.ps1 MONITOR_REMOVED.json

The price-change seeder modifies only local monitoring state; it does not modify production Actor code or live Pinhome data.

Expected local monitoring validation

A stable test sequence should look approximately like:

  • baseline: NEW ≈ 30,
  • repeat: UNCHANGED ≈ 30, emittedResults = 0,
  • controlled price test: one PRICE_CHANGED,
  • removal safety: lowering maxItems creates removal candidates, but still-active detail URLs remain in state and are not emitted as REMOVED.

Live inventory can change between runs, so a genuine new listing or real price change is not automatically a bug.

API and schedules

After deployment, the Actor can be run from Apify Console, API, schedules, tasks, and integrations. For recurring monitoring, keep both the same monitorKey and comparable startUrls.

Limitations

  • Only public Pinhome pages are supported.
  • Website markup and URL patterns can change.
  • Search pages can change ordering between runs.
  • New development pages can represent project-level price/specification ranges rather than one exact physical unit.
  • maxItems is a ceiling, not a guarantee that a specific query currently exposes that many reachable detail pages.
  • Large-scale collection should be validated for reliability and cost before publication pricing is finalized.

Responsible use

Use this Actor responsibly and only for publicly available information. Users are responsible for ensuring that their collection and use of data complies with applicable laws, contractual obligations, and platform requirements.

This Actor is unofficial and independent. It is not affiliated with, endorsed by, sponsored by, or operated by Pinhome.