Rumah123 Scraper With Agents | Fast & Reliable avatar

Rumah123 Scraper With Agents | Fast & Reliable

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Rumah123 Scraper With Agents | Fast & Reliable

Rumah123 Scraper With Agents | Fast & Reliable

Extract structured Indonesian property listings from Rumah123 with agent data, pricing, locations, and property details. Built for enterprise-grade real estate intelligence, lead generation, and automated CRM or analytics pipelines across Indonesia markets.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

1

Bookmarked

18

Total users

5

Monthly active users

12 days ago

Last modified

Share

Rumah123 Scraper

Slug: fatihtahta/rumah123-scraper

Overview

Rumah123 Scraper collects structured property listing data from Rumah123, including titles, prices, property types, listing status, locations, room counts, sizes, facilities, media, and agent or agency details when available. It is designed for teams that need consistent listing data from search pages or specific listing URLs without manual copy-paste. Rumah123 is one of Indonesia's major real estate marketplaces, making it a useful source for property market analysis, inventory tracking, lead enrichment, and localized research. The actor automates repetitive collection workflows and returns standardized JSON records you can use directly in reports, pipelines, and operational systems. This helps reduce manual effort, improve consistency across runs, and save time when working at scale.

Why Use This Actor

  • Market researchers and analysts: Track listing supply, pricing, property mix, and geographic trends across cities, districts, and listing types.
  • Product and content teams: Build property directories, landing pages, market snapshots, and neighborhood content with structured listing data.
  • Developers and data engineers: Feed ETL jobs, dashboards, warehouses, and APIs with JSON records that are easy to store, transform, and join.
  • Lead generation and enrichment teams: Identify listings, agents, agencies, and location-level inventory for outreach, enrichment, or qualification workflows.
  • Monitoring and competitive tracking: Watch changes in price ranges, promotions, furnishing mix, and available inventory for selected markets or URL sets.

Input Parameters

Provide any combination of URLs, queries, and filters to define the listings you want to collect.

ParameterTypeDescriptionDefault
listingTypestringListing category to collect. Allowed values: sale (for sale), rent (for rent).sale
sortOrderstringSort order for results. Allowed values: recommended, price-asc, price-desc, posted-desc, posted-asc, land-size-desc, building-size-desc.recommended
locationstringLocation keyword such as a city, district, neighborhood, street, or landmark. Example: Jakarta Selatan, Bandung, Nusa Dua.
promotionsstring[]Promotional filters to include. Allowed values: promotion, price-reduced, free-fees, zero-dp, bank-owned, njop.[]
property-typestring[]Property categories to include. Allowed values: house, apartment, land, shophouse, factory, office, commercial-space, warehouse, villa, boarding-house, hotel.[]
min_priceintegerMinimum listing price in IDR. Leave empty to avoid a lower price bound.
max_priceintegerMaximum listing price in IDR. Leave empty to avoid an upper price bound.
min_bedroomsstringMinimum bedroom count. Allowed values: 1, 2, 3, 4.
min_bathroomsstringMinimum bathroom count. Allowed values: 1, 2, 3, 4.
min_floorsstringMinimum number of floors. Allowed values: 1, 2, 3, 4.
furninshing_conditionstring[]Furnishing preferences to include. Allowed values: fully-furnished, partially-furnished, unfurnished.[]
property_facilitiesstring[]Facilities the listing should mention. Allowed values: air-conditioning, parking, cctv, security, wifi.[]
min_land_sizeintegerMinimum land size in square meters.
max_land_sizeintegerMaximum land size in square meters.
min_building_sizeintegerMinimum building size in square meters.
max_building_sizeintegerMaximum building size in square meters.
startUrlsstring[]One or more direct Rumah123 URLs. You can provide search result pages or individual listing URLs. When present, these URLs are used instead of the search filters above.
limitintegerMaximum number of listings to collect per search or start URL. Leave empty to collect all available results.

Example Inputs

Scenario: Search by location and price band

{
"listingType": "sale",
"sortOrder": "price-desc",
"location": "Jakarta Selatan",
"property-type": ["house"],
"min_price": 1500000000,
"max_price": 5000000000,
"min_bedrooms": "3",
"limit": 150
}

Scenario: Direct URL collection

{
"startUrls": [
"https://www.rumah123.com/jual/cari/?location=bali",
"https://www.rumah123.com/properti/badung/hos40272095/"
],
"limit": 100
}
{
"listingType": "rent",
"location": "Bandung",
"property-type": ["apartment"],
"max_price": 120000000,
"min_bathrooms": "1",
"furninshing_condition": ["fully-furnished"],
"property_facilities": ["parking", "security", "wifi"],
"limit": 80
}

Output

6.1 Output destination

The actor writes results to an Apify dataset as JSON records. And the dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.

6.2 Record envelope

Every normal listing row uses the shared real estate shape:

  • record_type (string, required): Current value is property_listing.
  • record_id (string, required): Stable Rumah123 listing identifier when available.
  • source_context (object, required): Source name, source URLs, seed metadata, page index, and external IDs.
  • entity (object, optional): Human-readable listing title, description, and public URL.
  • listing (object, optional): Listing ID, sale/rent label, status dates, auction data, and listing flags.
  • pricing (object, optional): Display price, numeric price, currency, price range, installments, and rent variants.
  • location (object, optional): Address text, district, city, province, postal code, country, and coordinates.
  • property (object, optional): Property type, rooms, parking, areas, furnishing, condition, certificates, and amenities.
  • media (object, optional): Main image, image URLs, and media count.
  • contact_details (object, optional): Direct phone, WhatsApp, email, website, and contact records when available.
  • relationships (object, optional): Embedded agent, agency, developer, project, and source profile URLs.
  • attributes (object, optional): Rumah123 tags, badges, flags, preserved detail payloads, and source-specific metadata.

Recommended idempotency key: record_type + ":" + record_id.

6.3 Example

{
"record_type": "property_listing",
"record_id": "hos41615716",
"source_context": {
"source_name": "Rumah123",
"source_domain": "rumah123.com",
"source_url": "https://www.rumah123.com/jual/cari/?q=hos41615716",
"listing_url": "https://www.rumah123.com/properti/jakarta-selatan/hos41615716/",
"seed_id": "b34d3e147863",
"seed_type": "url",
"seed_value": "https://www.rumah123.com/properti/jakarta-selatan-pejaten/brand-new-luxury-american-classic-pejaten-barat-jakarta-selatan-hos41615716/",
"seed_url": "https://www.rumah123.com/jual/cari/?q=hos41615716",
"page_index": 1,
"external_ids": {
"listing_id": "hos41615716",
"fingerprint": "c2bb14da0a46208bfbf3"
}
},
"entity": {
"title": "Brand New Luxury American Classic Pejaten Barat Jakarta Selatan",
"description": "Luxury American Classic Pejaten Barat Detail : SHM LT 360 m2 LB 1.100 m2...",
"short_description": "Luxury American Classic Pejaten Barat Detail : SHM LT 360 m2 LB 1.100 m2...",
"url": "https://www.rumah123.com/properti/jakarta-selatan/hos41615716/"
},
"listing": {
"listing_id": "hos41615716",
"listing_type": "Dijual",
"listing_type_code": "0",
"posted_at": "2026-05-24T11:38:22+00:00",
"created_at": "2026-05-23T07:17:45+00:00",
"updated_at": "2026-05-23T07:17:46+00:00",
"is_primary_project": false,
"rent_type": -1
},
"pricing": {
"price_text": "Rp 17,7 Miliar",
"price_numeric": 17700000000,
"currency": "IDR",
"price_min": 17700000000,
"price_max": 17700000000,
"price_per_land_meter_numeric": 0,
"price_tag": "Rp 17,7 Miliar",
"advertised_installment": "Cicilan : Rp 80 Jutaan/bulan",
"installments": [
{
"amount": 86965970,
"tenor": 20,
"formattedAmount": "Rp 86 Jutaan",
"formattedTenor": "Tenor 20 Tahun"
}
]
},
"location": {
"address": "Pejaten, Jakarta Selatan",
"full_address": "Pejaten, Jakarta Selatan",
"district": "Pejaten",
"city": "Jakarta Selatan",
"province": "DKI Jakarta",
"latitude": -6.27799,
"longitude": 106.842484,
"coordinates": {
"latitude": -6.27799,
"longitude": 106.842484
}
},
"property": {
"property_type": "Rumah",
"property_taxonomy": {
"property_type_code": "0",
"listing_type_code": "0"
},
"bedrooms": 6,
"bathrooms": 7,
"parking_spaces": 2,
"carports": 2,
"garages": 2,
"floors": 4,
"land_area_sqm": 360,
"floor_area_sqm": 1100,
"furnishing": "Semi Furnished",
"condition": "Bagus",
"certificate": "SHM",
"electricity": "Lainnya",
"payment_method": "Cash Keras, KPR",
"amenities": ["Tempat Jemuran", "Kolam Renang", "Teras", "AC"],
"features": ["Bisa Nego", "Cash Keras/KPR", "Perumahan/Komplek"]
},
"media": {
"main_image_url": "https://picture.rumah123.com/r123-images/1080x720-fit/customer/1417790/listing/hos41615716/enhanced/fda97a62a647173e059640cf50d269d7.jpg",
"image_urls": [
"https://picture.rumah123.com/r123-images/1080x720-fit/customer/1417790/listing/hos41615716/enhanced/fda97a62a647173e059640cf50d269d7.jpg"
],
"media_count": 25
},
"contact_details": {
"name": "Farah Maulina",
"phone": "+6282297811004",
"whatsapp": "+6282297811004",
"email": "maulinafarah@gmail.com",
"website": "https://www.rumah123.com/agen-properti/magna-selaras/farah-maulina-1417790/"
},
"relationships": {
"agent": {
"id": "1417790",
"uuid": "9adfb9c3-6455-4da9-9b02-6383b52c62f3",
"name": "Farah Maulina",
"profile_url": "https://www.rumah123.com/agen-properti/magna-selaras/farah-maulina-1417790/",
"agency_name": "Magna Selaras"
},
"agency": {
"name": "Magna Selaras",
"url": "https://www.rumah123.com/agen-properti/magna-selaras-385238/"
}
},
"attributes": {
"tags": ["Bisa Nego", "Cash Keras/KPR", "Perumahan/Komplek"],
"badges": [
{
"label": "Dekat Sekolah",
"active": true,
"sequence": 19,
"category": "Quick Label"
}
],
"flags": {
"isUnderNjop": false,
"isFavorite": false,
"isNpl": false,
"isPrimaryProject": false
},
"source_specific": {
"slug": "/properti/jakarta-selatan-pejaten/brand-new-luxury-american-classic-pejaten-barat-jakarta-selatan-hos41615716/",
"detail": {
"listingId": "hos41615716",
"listingStatus": 1
}
}
}
}

6.4 Field preservation

The previous flat fields are preserved in nested groups:

  • id, url, sourceUrl, seedId, seedType, seedValue, seedUrl, pageIndex, domain, and fingerprint moved to record_id, source_context, and entity; source slugs remain under attributes.source_specific.slug.
  • Price fields such as price, priceNumeric, priceMin, priceMax, priceTotal, priceTag, priceDrop, installments, rentType, and rentPrices moved to pricing and listing.
  • Address, city, province, district, postal code, country, latitude, and longitude moved to location.
  • Property facts such as propertyType, bedrooms, bathrooms, carports, garages, landSize, buildingSize, furnishing, condition, certificate, electricity, paymentMethod, facilities, and overview moved to property.
  • Media URLs moved to media.image_urls, with the first image also exposed as media.main_image_url.
  • Agent, agency, developer, and project fields moved to contact_details and relationships.
  • Rumah123-specific badges, flags, codes, partner fields, project labels, and the rich detail payload are preserved under attributes.

Data guarantees & handling

  • Best-effort extraction: fields may vary by region, session, listing availability, or UI experiments on the source site.
  • Optional fields: null-check in downstream code.
  • Deduplication: recommend record_type + ":" + record_id.

How to Run on Apify

  1. Open the actor in Apify Console.
  2. Configure your search parameters, such as listing type, location, property type, price range, and optional filters.
  3. Set the maximum number of outputs to collect.
  4. Click Start and wait for the run to finish.
  5. Download results in JSON, CSV, Excel, or other supported formats.

Scheduling & Automation

Scheduling

Automated Data Collection

You can schedule recurring runs to keep your property dataset fresh without starting each run manually. This is useful for tracking inventory, price changes, and market activity over time.

  • Navigate to Schedules in Apify Console
  • Create a new schedule (daily, weekly, or custom cron)
  • Configure input parameters
  • Enable notifications for run completion
  • Optional: add webhooks for automated processing

Integration Options

  • Webhooks: Trigger downstream actions when a run completes
  • Zapier: Connect to 5,000+ apps without coding
  • Make (Integromat): Build multi-step automation workflows
  • Google Sheets: Export results to a spreadsheet
  • Slack/Discord: Receive notifications and summaries
  • Email: Send automated reports via email

Performance

Estimated run times:

  • Small runs (< 1,000 outputs): ~2–3 minutes
  • Medium runs (1,000–5,000 outputs): ~5–15 minutes
  • Large runs (5,000+ outputs): ~15–30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record.

Compliance & Ethics

Responsible Data Collection

This actor collects publicly available property listing information from https://www.rumah123.com for legitimate business purposes, including:

  • Real estate research and market analysis
  • Lead enrichment and inventory monitoring
  • Competitive benchmarking and reporting

Users are responsible for ensuring their use of collected data complies with applicable laws, regulations, and the source website's terms. This section is informational and not legal advice.

Best Practices

  • Use collected data in accordance with applicable laws, regulations, and the target site's terms
  • Respect individual privacy and personal information
  • Use data responsibly and avoid disruptive or excessive collection
  • Do not use this actor for spamming, harassment, or other harmful purposes
  • Follow relevant data protection requirements where applicable (e.g., GDPR, CCPA)

Support

For help, use the actor page discussion area or open an issue with the run details. Include the input used with sensitive values redacted, the run ID, the expected versus actual behavior, and, if helpful, a small output sample.