# PropertyGuru Singapore Scraper (`rigelbytes/propertyguru-sg-scraper`) Actor

Scrape Singapore property listings from PropertyGuru for sale and rent. Apply the same filters as the website (type, price, HDB/condo/landed, size, MRT, tenure) and optionally enrich with listing details, agent profiles, and reviews.

- **URL**: https://apify.com/rigelbytes/propertyguru-sg-scraper.md
- **Developed by:** [Rigel Bytes](https://apify.com/rigelbytes) (community)
- **Categories:** Real estate, Integrations, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.70 / 1,000 listings

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## PropertyGuru Singapore Scraper

**Scrape Singapore property listings from [PropertyGuru](https://www.propertyguru.com.sg)** — the country's #1 property portal — for real estate market research, price monitoring, investment analysis, and agent lead generation. Apply the same filters as the website (sale or rent, HDB/condo/landed, price range, bedrooms, MRT distance, tenure, size, PSF), optionally enrich listings with full details, photos, floor plans, and coordinates, and even pull agent profiles and written reviews. Export everything as JSON, CSV, or Excel — for just **$2** per 1,000 listings.

### What can PropertyGuru Singapore Scraper do for you?

- **Build a complete Singapore property database** — scrape for-sale and for-rent listings across HDB, condos, landed homes, and commercial categories with one run.
- **Replicate every website filter** — price range, bedrooms, bathrooms, floor size, land size, PSF, MRT walking distance, tenure, TOP year, furnishing, verified listings, videos, floor plans, keyword, and more.
- **Enrich listings with full detail pages** — descriptions, high-resolution photos, floor plans, videos, amenities, project facilities, nearest MRT stations, nearby schools, district, postal code, and exact coordinates.
- **Generate agent leads** — extract the listing agent's name, CEA license number, agency, rating, review count, and full profile, plus paginated written reviews when enabled.
- **Monitor Singapore's property market** — track asking prices and PSF by district, project, and property type over time with scheduled runs.
- **Automate manual browsing** — replace hours of clicking through PropertyGuru with a single API call or scheduled Actor run.

### What data can you extract from PropertyGuru?

| Data | Fields |
|------|--------|
| 🏷️ **Listing basics** | `id`, `url`, `title`, `headline`, `description`, `listingType` (sale/rent) |
| 💰 **Pricing** | `price`, `priceText`, `psf`, `currency` |
| 🏠 **Property details** | `propertyType`, `propertyName`, `bedrooms`, `bathrooms`, `floorAreaSqft`, `landAreaSqft`, `furnishing`, `floorLevel`, `tenure`, `developer`, `rentalType`, `leaseTerm`, `availableFrom` |
| 📍 **Location** | `address`, `streetName`, `postalCode`, `district`, `districtCode`, `region`, `hdbEstate`, `latitude`, `longitude`, `mrt`, `nearbyMrt`, `nearbySchools` |
| 🖼️ **Media** | `imageUrls`, `floorPlanUrls`, `videoUrls`, `hasFloorPlans`, `hasVideo`, `thumbnailUrl` |
| 🏊 **Features** | `amenities`, `facilities` |
| 🤝 **Agent info** | `agentName`, `agentLicense`, `agencyName`, `agencyLicense`, `agentRating`, `agentReviewCount`, `agent` (full profile object with reviews) |
| 🔍 **Source tracking** | `sourceQuery`, `sourceUrl`, `listedOn`, `scrapedAt` |

### Why use this scraper?

- 📊 **Market research** — analyze asking prices, PSF, and inventory across Singapore's districts for reports and newsletters.
- 📈 **Price monitoring** — track how listings and prices change weekly or daily to spot market trends early.
- 🏢 **Investment analysis** — compare rental yield, PSF, and tenure across projects to shortlist investment opportunities.
- 🤝 **Agent lead generation** — build lists of top agents by agency, rating, and transaction history for outreach.
- ⚡ **Automation** — feed scraped data into your CRM, spreadsheet, or data warehouse with webhooks and the Apify API.

### Pricing

- **$2/1,000 listings** (dataset items)
- Optional **$2/1,000 listing detail pages** enriched (`scrapeListingDetails`)
- Optional **$2/1,000 agent profiles** extracted (`scrapeAgentInfo` / `scrapeAgentReviews`)
- Volume discounts on Apify plans: **Bronze $1.90**, **Silver $1.80**, **Gold $1.70** per 1,000 events
- No hidden fees or limits on usage.

Unlock lower rates:

- **Bronze:** [Upgrade to Bronze plan](https://apify.com/pricing)
- **Silver:** [Upgrade to Silver plan](https://apify.com/pricing)
- **Gold:** [Upgrade to Gold plan](https://apify.com/pricing)

### How to use PropertyGuru Singapore Scraper

1. **Create a free Apify account** at [apify.com](https://apify.com) and sign in.
2. **Open the Actor** at [PropertyGuru Singapore Scraper](https://apify.com/rigelbytes/propertyguru-sg-scraper).
3. **Enter your search** — type an area or keyword like "Orchard" or "Tampines" in *Search Queries*, or paste PropertyGuru search/listing URLs.
4. **Pick your filters** — choose sale or rent, property type group, price range, bedrooms, and any other filter you would use on the website.
5. **Click Start** — the run scrapes listings and pushes them to your dataset.
6. **Download the data** — export as JSON, CSV, HTML, or Excel from the Storage tab, or fetch it via API.

### Input

All input fields are optional — provide only the ones you need.

| Field | Type | Description |
|-------|------|-------------|
| `searchQueries` | array (string) | Locations or keywords to search (e.g. "Orchard", "District 9"). Mapped to PropertyGuru's freetext search box. Leave empty to scrape all listings matching your filters. |
| `startUrls` | array (URL) | PropertyGuru search or listing URLs copied from the browser. Search URLs are paginated as-is; listing URLs are scraped directly. Filters apply to Search Queries, not Start URLs. |
| `listingType` | select | `sale` (Buy) or `rent` (For Rent). |
| `propertyTypeGroup` | select | All, `N` (Condo), `L` (Landed), or `H` (HDB). |
| `propertyTypeCode` | array (select) | Specific property types — Condominium, Apartment, Executive Condominium, Terrace, Bungalow, Shophouse, HDB room sizes (1-Room through Jumbo), and more. Empty = all types in the group. |
| `minPrice` / `maxPrice` | integer | Asking price in SGD. For sale: total price (e.g. 500000). For rent: monthly rent (e.g. 2500). |
| `bedrooms` / `bathrooms` | array (select) | Count filters. `5` means 5 or more; `0` (bedrooms) means Studio. |
| `entireUnitOrRoom` | select | Rent only: Entire Unit vs Room. |
| `isVerified` | boolean | Only PropertyGuru verified listings. |
| `minSize` / `maxSize` | integer | Floor area in sqft. |
| `minSizeLand` / `maxSizeLand` | integer | Land/plot size in sqft (landed). |
| `minPricePerArea` / `maxPricePerArea` | integer | Price per square foot (PSF) in SGD. |
| `distanceToMRT` | select | Max walking distance to MRT/LRT: 250 m to 1.5 km. |
| `distanceFromCentre` | select | Search radius in km when the query is a point location. |
| `floorLevel` | array (select) | Ground, Low, Mid, High, or Penthouse. |
| `tenureCode` | array (select) | Freehold, 99/103/110/999/9999-year leasehold, Unknown. |
| `minTopYear` / `maxTopYear` | integer | Earliest/latest TOP or completion year. |
| `furnishing` | array (select) | Unfurnished, Partially Furnished, Fully Furnished. |
| `unitFeatures` | array (select) | Aircon, Balcony, Bath tub, Corner unit, Helper's room, Private pool, Renovated, Terrace. |
| `projectFeatures` | array (select) | Gym, Parking, Swimming pool, Tennis court. |
| `lastPosted` | select | Listed within 3 days, 1 week, 2 weeks, or 1 month. |
| `withStream` / `withFloorplans` | boolean | Only listings with video/virtual tour, or with a floor plan. |
| `keyword` | string | Extra keyword matched against listing text (e.g. Terrace, Garage). |
| `leaseTerm` | array (select) | Rent only: 1/2/3+ years, Short Term, Flexible. |
| `availability` | select | Rent only: immediate to after 3 months. |
| `roomType` | array (select) | Room rentals: Master, Common, Shared. |
| `maxTenants` | select | Room rentals: 1 to 4+. |
| `tenantGender` | select | Room rentals: any, male, or female tenants. |
| `tenancyConditions` | array (select) | Room rentals: aircon, no owner, pets, utilities, visitors, WiFi. |
| `cookingType` | select | Room rentals: no cooking, light, or all cooking. |
| `isDiversityFriendly` | boolean | Rent only: "Everyone Welcome" listings. |
| `sortBy` | select | Recommended, Newest, Price, PSF, or Size — ascending or descending. |
| `scrapeListingDetails` | boolean | Open each listing page for description, photos, amenities, coordinates, and unit details. Charges the listing-details event per listing. |
| `scrapeAgentInfo` | boolean | Open the listing agent's profile for license, agency, rating, and bio. |
| `scrapeAgentReviews` | boolean | Also paginate the agent's written reviews. Implies Scrape Agent Information. |
| `maxItems` | integer | Maximum listings to scrape (0 = unlimited). |
| `maxConcurrency` | integer | Detail/agent pages opened in parallel (1–8, default 5). |
| `proxyConfiguration` | object | Apify Residential proxy required (PropertyGuru is behind Cloudflare). Defaults to Residential + SG country. |

#### 📝 Copy for Use:

```json
{
    "searchQueries": ["Orchard", "Tampines"],
    "listingType": "sale",
    "propertyTypeGroup": "N",
    "minPrice": 800000,
    "maxPrice": 3000000,
    "bedrooms": ["2", "3", "4"],
    "distanceToMRT": "1",
    "tenureCode": ["F", "L99"],
    "sortBy": "newest",
    "scrapeListingDetails": true,
    "scrapeAgentInfo": true,
    "scrapeAgentReviews": true,
    "maxItems": 50,
    "maxConcurrency": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "SG"
    }
}
```

### Output

Each dataset item is one PropertyGuru Singapore listing. Here is a sample item with `scrapeListingDetails` and agent enrichment enabled:

```json
{
    "id": "500084521",
    "url": "https://www.propertyguru.com.sg/listing/for-sale-orchard-court-500084521",
    "title": "Orchard Court",
    "headline": "Good value, Cheap, Motivated Seller, Good facing, Value Buy in Town.",
    "description": "4 bedrooms and 3 Bathroom\nGood facing for the rooms\nWalking distance to Somerset and Dhoby Ghaut MRT...",
    "price": 1790000.0,
    "priceText": "S$ 1,790,000",
    "psf": 1241.33,
    "listingType": "SALE",
    "propertyType": "Apartment",
    "bedrooms": 4,
    "bathrooms": 3,
    "floorAreaSqft": 1442.0,
    "address": "19 Oxley Road",
    "district": "Orchard / River Valley",
    "districtCode": "D09",
    "postalCode": "238619",
    "latitude": 1.298655,
    "longitude": 103.841626,
    "imageUrls": ["https://sg1-cdn.pgimgs.com/listing/500084521/UPHO.159038433.V550/Orchard-Court-...jpg"],
    "nearbyMrt": ["NS23 Somerset MRT Station", "NS24 Dhoby Ghaut MRT Station"],
    "agentName": "Jasmine Wee",
    "agentLicense": "R064516H",
    "agencyName": "PROPNEX REALTY PTE. LTD.",
    "agentRating": 5.0,
    "agentReviewCount": 1,
    "scrapedAt": "2026-08-13T15:24:09Z"
}
```

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

![PropertyGuru Singapore Scraper output](https://github.com/faizanalii/apify-images/blob/main/PropertyGuru%20Singapore%20Scraper.gif?raw=true)

### Why Choose This Scraper?

- **Affordable**: Pay $2 per 1,000 listings scanned, plus optional $2/1,000 for details and $2/1,000 for agent enrichment.
- **Comprehensive**: Every PropertyGuru filter is supported — property type, price, size, PSF, MRT distance, tenure, furnishing, features, and more — for both sale and rent.
- **Easy to Use**: Describe your search in plain words ("Orchard", "Tampines") — no URLs or technical setup required.
- **Reliable**: Handles PropertyGuru's Cloudflare protection with a residential proxy session and retries, so runs complete without manual babysitting.

### Recommended Proxy Providers

- ## **Shifter**

  - Reliable residential proxies all over the world.
  - Cheap rates
  - [Order Shifter Now](https://shifter.io/r/YoBB/order)
  - Get 10% Off any product, use coupan `rigelbytes-YoBB`.

- ## **OxyLabs**

  - **100M+ Proxies**
  - Fastest proxies in the market
  - Real profile, human-like Residential IPs
  - Quality assurance framework for most reliable IPs
  - [Get Proxies](https://oxylabs.go2cloud.org/aff_c?offer_id=7\&aff_id=1366\&url_id=7)

- ## **DataImpulse**

  - Covers **200+ Counties**
  - Reliable Residential Proxies for just $1/GB
  - [Get Residential Proxies](https://dataimpulse.com/?aff=89421)

### [![Learn More About Proxies](https://img.shields.io/badge/Learn_More-About_Proxies-blue?style=for-the-badge)](#understanding-proxies)

### 🙌 Why Buy Through Our Affiliate Link?

- Exclusive Deals: Some providers may offer special discounts or bonuses when you use our link.
- Support Our Work: Each purchase helps us maintain and improve the tools and services we provide.
- No Extra Cost: You pay the same price, but part of it goes to supporting our efforts.

### API Usage

#### Running via Apify Console

You can run this actor from the Apify Console by providing the necessary input parameters.

#### Running via API

You can trigger this actor using the Apify API, passing the required input in the request body.

##### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR-APIFY-TOKEN")

run_input = {
    "searchQueries": ["Orchard"],
    "listingType": "sale",
    "propertyTypeGroup": "N",
    "maxItems": 50,
}

run = client.actor("rigelbytes/propertyguru-sg-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], item["priceText"], item["district"])
```

##### JavaScript

```javascript
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR-APIFY-TOKEN" });

const runInput = {
    searchQueries: ["Orchard"],
    listingType: "sale",
    propertyTypeGroup: "N",
    maxItems: 50,
};

const run = await client.actor("rigelbytes/propertyguru-sg-scraper").call(runInput);

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.log(item.title, item.priceText, item.district);
});
```

##### cURL

```shell
curl "https://api.apify.com/v2/acts/rigelbytes~propertyguru-sg-scraper/runs?token=YOUR-APIFY-TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQueries": ["Orchard"],
    "listingType": "sale",
    "propertyTypeGroup": "N",
    "maxItems": 50
  }'
```

### Scheduling & Deduplication

- **Scheduling** — Singapore listings churn daily, so run hourly for new-listing alerts (with `sortBy: "newest"`) or daily for market monitoring and price tracking. In the Apify Console's Scheduler tab, create a recurring task per search query — e.g. one task for "Orchard" and another for "Tampines" — so each area's dataset stays tidy. You can also start a scheduled Actor run via the [Scheduler API](https://docs.apify.com/platform/scheduler/scheduler-api).
- **Deduplication** — every output item includes a unique PropertyGuru `id`, which is the correct key for deduping. Each run writes to its own dataset by default, so repeated runs accumulate items. To build one clean dataset, reuse the same dataset across runs by passing its `datasetId` in your API call (Apify's storage then deduplicates identical records), or key on `id` yourself when merging exports:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR-APIFY-TOKEN")

run = client.actor("rigelbytes/propertyguru-sg-scraper").call(
    run_input={"searchQueries": ["Orchard"], "listingType": "sale"},
    options={"dataset_id": "YOUR-PERSISTENT-DATASET-ID"},  # reuse the same dataset every run
)
```

- **Webhooks** — set up a webhook on run completion to push new listings into your CRM, database, or spreadsheet automatically.

### 🚀 Other Tools by Rigel Bytes

Explore **140** more scraping tools by Rigel Bytes, organized by use case:

#### 📱 Social Media

Scrape Instagram, TikTok, LinkedIn, and more for content research and marketing intelligence.

- **[Export Instagram Reels](https://apify.com/rigelbytes/export-instagram-reels)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Facebook Ads Scraper](https://apify.com/rigelbytes/facebook-ads-scraper)** — Extract posts, profiles, and engagement data from Facebook for content research, influencer tracking, and marketing analytics.
- **[Instagram Analytics Tool](https://apify.com/rigelbytes/instagram-analytics-tool)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Comment Scraper](https://apify.com/rigelbytes/instagram-comment-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Creator Stats](https://apify.com/rigelbytes/instagram-creator-stats)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Engagement Tool](https://apify.com/rigelbytes/instagram-engagement-tool)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Post Scraper](https://apify.com/rigelbytes/instagram-post-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[instagram-posts](https://apify.com/rigelbytes/instagram-posts)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Profile Scraper](https://apify.com/rigelbytes/instagram-profile-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Reel Scraper](https://apify.com/rigelbytes/instagram-reel-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[linkedin-company-details](https://apify.com/rigelbytes/linkedin-company-details)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[Linkedin Company Scraper](https://apify.com/rigelbytes/linkedin-company-scraper)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[LinkedIn Job Scraper](https://apify.com/rigelbytes/linkedin-job-scraper)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[LinkedIn Profile Scraper](https://apify.com/rigelbytes/linkedin-profile-scraper)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[Reddit Comment Scraper](https://apify.com/rigelbytes/reddit-comment-scraper)** — Scrape comments from Reddit post URLs. Uses a stealth browser session with a sticky residential proxy — no Reddit...
- **[Reddit Profile Scraper](https://apify.com/rigelbytes/reddit-profile-scraper)** — Scrape Reddit user profiles — overview, posts, and comments. Uses CloakBrowser with a sticky residential proxy to...
- **[Reddit Community Scraper](https://apify.com/rigelbytes/reddit-scraper)** — Scrape posts from any Reddit community (subreddit). Bypasses captcha automatically and extracts post data including...
- **[Scrape Instagram Creators](https://apify.com/rigelbytes/scrape-instagram-creators)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Social Media Content Outlier Finder](https://apify.com/rigelbytes/social-media-content-outlier)** — Find unusually successful organic content across Instagram, TikTok, YouTube, Reddit, and LinkedIn by comparing each...
- **[Tiktok Comment Scraper](https://apify.com/rigelbytes/tiktok-comment-scraper)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[Tiktok Creator Stats](https://apify.com/rigelbytes/tiktok-creator-stats)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[Tiktok Engagement Rate](https://apify.com/rigelbytes/tiktok-engagement-rate)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[TikTok Profile Scraper](https://apify.com/rigelbytes/tiktok-profile-scraper)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[Twitter X Profile Scraper](https://apify.com/rigelbytes/twitter-x-profile-scraper)** — Extract posts, profiles, and engagement data from Twitter/X for content research, influencer tracking, and marketing analytics.
- **[YouTube Channel Scraper](https://apify.com/rigelbytes/youtube-channel-scraper)** — Extract posts, profiles, and engagement data from YouTube for content research, influencer tracking, and marketing analytics.
- **[YouTube Comment Scraper](https://apify.com/rigelbytes/youtube-comment-scraper)** — Extract posts, profiles, and engagement data from YouTube for content research, influencer tracking, and marketing analytics.
- **[YouTube Transcript Export](https://apify.com/rigelbytes/youtube-transcript-export)** — Extract posts, profiles, and engagement data from YouTube for content research, influencer tracking, and marketing analytics.

#### 🏠 Real Estate

Extract property listings, prices, and agent data from top real estate platforms.

- **[Aengevelt Scraper — German Real Estate Property Listings](https://apify.com/rigelbytes/aengevelt-scraper)** — Extract property listings from Aengevelt Immobilien. Get pricing, location, contact data, and images from Germany's...
- **[Airbnb Address Finder](https://apify.com/rigelbytes/airbnb-address-finder)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Availability Calendar](https://apify.com/rigelbytes/airbnb-availability-calendar)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Detailed Scraper - Search & Listing Details](https://apify.com/rigelbytes/airbnb-detailed-scraper)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Images Downloader](https://apify.com/rigelbytes/airbnb-images-downloader)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Listing](https://apify.com/rigelbytes/airbnb-listing)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Listing Urls](https://apify.com/rigelbytes/airbnb-listing-urls)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Property Details](https://apify.com/rigelbytes/airbnb-property-details)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Reviews](https://apify.com/rigelbytes/airbnb-reviews)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Scraper - Search & Listing Details](https://apify.com/rigelbytes/airbnb-scraper)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Apartments.com Scraper](https://apify.com/rigelbytes/apartments-scraper)** — Scrape rental listings from apartments.com by entering location search queries. Returns property details including...
- **[Aqar.fm Scraper — النسخة العربية](https://apify.com/rigelbytes/aqar-fm-scraper)** — Scrapes Saudi real estate listings from aqar.fm via Next.js RSC search API. Supports Arabic search paths, start...
- **[Asunnot Oikotie.fi Real Estate Scraper](https://apify.com/rigelbytes/asunnot-oikotie-fi)** — Scrape Finnish property listings from asunnot.oikotie.fi by location, filters, or search/listing URLs. Optionally...
- **[Bayut Scraper](https://apify.com/rigelbytes/bayut-scraper)** — Scrape property listings and market data from Bayut for market research, price monitoring, and investment analysis.
- **[BNP Paribas Real Estate Scraper](https://apify.com/rigelbytes/bnppre-scraper)** — Scrape commercial property listings from BNP Paribas Real Estate (bnppre.de) — offices, retail, industrial, and...
- **[Boliga Denmark Real Estate Scraper](https://apify.com/rigelbytes/boliga-dk-scraper)** — Scrape property listings from Boliga.dk (Denmark). Search by zip code, free text, or result URLs. Optionally fetch...
- **[Boligsiden.dk Scraper](https://apify.com/rigelbytes/boligsiden-dk-scraper)** — Scrape Danish real estate listings from Boligsiden.dk — for sale, sold, and rental properties with pricing, details,...
- **[CBRE Scraper — Extract German Commercial Property Listings](https://apify.com/rigelbytes/cbre-scraper)** — Scrape commercial real estate letting listings from CBRE Germany (cbre.de). Office & industrial property data for...
- **[Colliers Scraper — German Commercial Property Listings](https://apify.com/rigelbytes/colliers-scraper)** — Extract commercial property listings from Colliers.de — offices, industrial, retail & logistics with pricing, map...
- **[Crexi Scraper](https://apify.com/rigelbytes/crexi-scraper)** — Scrape Crexi.com commercial real estate listings for sale and lease with filters, search queries, URLs, and optional...
- **[Daft.ie Property Scraper](https://apify.com/rigelbytes/daft-ie-scraper)** — Scrapes property listings from Daft.ie including residential, rental, commercial, and new homes across Ireland.
- **[DAHLER Real Estate Scraper — German Property Listings API](https://apify.com/rigelbytes/dahler-scraper)** — Extract buy and rent property listings from DAHLER Immobilien across Germany, Austria, and Spain. Get prices,...
- **[dubai-listing-scraper](https://apify.com/rigelbytes/dubai-listing-scraper)** — Extract unlimited property listings from Bayut.com — the UAE's largest real estate platform. Get detailed property...
- **[Etuovi.com Real Estate Scraper](https://apify.com/rigelbytes/etuovi-scraper)** — Scrape Finnish property listings from Etuovi.com by search location, filters, or search/listing URLs. Optionally...
- **[Export Airbnb Calendar](https://apify.com/rigelbytes/export-airbnb-calendar)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Funda Netherlands Real Estate Scraper](https://apify.com/rigelbytes/funda-nl-scraper)** — Scrape property listings from Funda.nl — the largest real estate platform in the Netherlands. Supports buy and rent,...
- **[Furnished Finder Fast](https://apify.com/rigelbytes/furnished-finder-fast)** — Scrape property listings and market data from Furnished Finder for market research, price monitoring, and investment analysis.
- **[Extract Furnished Finder Hosts](https://apify.com/rigelbytes/furnished-finder-hosts)** — Scrape property listings and market data from Furnished Finder for market research, price monitoring, and investment analysis.
- **[FurnishedFinder](https://apify.com/rigelbytes/furnishedfinder)** — Scrape property listings and market data from Furnished Finder for market research, price monitoring, and investment analysis.
- **[German Real Estate MCP](https://apify.com/rigelbytes/german-realestate-mcp)** — MCP server for German real estate — 14 Rigel Bytes scrapers (ImmoScout24, Immowelt, Kleinanzeigen, RE/MAX, CBRE,...
- **[GrandCityProperty Scraper — Extract German Rental Listings](https://apify.com/rigelbytes/grandcityproperty)** — Extract rental property listings from GrandCityProperty.de — prices, floor plans, energy data, and contact details....
- **[Grossmann Berger Scraper — German Real Estate Listings](https://apify.com/rigelbytes/grossmann-berger-scraper)** — Extract property listings, prices, agent contacts, and images from grossmann-berger.de. From $2/1,000 listings....
- **[Hemnet.se Scraper - Swedish Real Estate Listings](https://apify.com/rigelbytes/hemnet-se-scraper)** — Scrape property listings from Hemnet.se including for-sale, upcoming, and sold homes. Search by URL or location...
- **[home.dk Real Estate Scraper](https://apify.com/rigelbytes/home-dk-scraper)** — Scrape Danish property listings from home.dk by search location, filters, or search/listing URLs. Optionally enrich...
- **[HouseSigma Scraper](https://apify.com/rigelbytes/housesigma-scraper)** — Scrape HouseSigma for-sale and for-lease listings with filters or map/search start URLs. Returns listing cards and...
- **[Immobiliare Italy Real Estate Scraper](https://apify.com/rigelbytes/immobiliare-it-scraper)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Immobilienscout24](https://apify.com/rigelbytes/immobilienscout24)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Immobilienscout24-scraper](https://apify.com/rigelbytes/immobilienscout24-scraper)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Immoweb Scraper - Belgium Property Listings](https://apify.com/rigelbytes/immoweb-scraper)** — Scrapes property listings from Immoweb.be. Supports search result extraction with optional property detail enrichment.
- **[Immowelt Property Scraper](https://apify.com/rigelbytes/immowelt-property-scraper)** — The Immowelt Scraper helps you extract unlimited real estate listings from Immowelt with complete details including...
- **[Immowelt Scraper](https://apify.com/rigelbytes/immowelt-scraper)** — The Immowelt Scraper helps you extract unlimited real estate listings from Immowelt with complete details including...
- **[JLL Property Scraper — Extract Commercial  Investment Listings](https://apify.com/rigelbytes/jll-scraper)** — Scrape commercial and investment property data from JLL Germany (gewerbeimmobilien.jll.de and invest.jll.com)....
- **[Land.com Agents Scraper](https://apify.com/rigelbytes/landdotcom-agents)** — Scrape property listings and market data from Land.com for market research, price monitoring, and investment analysis.
- **[Land.com Scraper](https://apify.com/rigelbytes/landdotcom-scraper)** — Scrape property listings and market data from Land.com for market research, price monitoring, and investment analysis.
- **[Nybolig Denmark Real Estate Scraper](https://apify.com/rigelbytes/nybolig-dk-scraper)** — Scrape property listings from Nybolig.dk (Denmark). Search by zip code, free text, filters, or result/listing URLs....
- **[Outdoorsy Scraper](https://apify.com/rigelbytes/outdoorsy-scraper)** — Scrape property listings and market data from Outdoorsy for market research, price monitoring, and investment analysis.
- **[PropertyFinder Eygpt](https://apify.com/rigelbytes/propertyfinder-eygpt)** — Scrape property listings and market data from Property Finder for market research, price monitoring, and investment analysis.
- **[Propertyfinder Scraper](https://apify.com/rigelbytes/propertyfinder-scraper)** — Scrape property listings and market data from Property Finder for market research, price monitoring, and investment analysis.
- **[Realtor.com Agent Scraper](https://apify.com/rigelbytes/realtor-agent-scraper)** — Scrape real estate agents from Realtor.com by city or ZIP code. Optionally fetch full agent profiles and reviews via...
- **[Realtor.com Scraper](https://apify.com/rigelbytes/realtor-scraper)** — Scrape Realtor.com property listings with full search filters via GraphQL. Supports price, beds/baths, property...
- **[Redfin Scraper](https://apify.com/rigelbytes/redfin-scraper)** — Scrape property listings and market data from Redfin for market research, price monitoring, and investment analysis.
- **[RE/MAX Germany Scraper](https://apify.com/rigelbytes/remax-scraper)** — Scrapes residential and commercial real estate listings from remax.de by German Bundesland. Extracts prices, areas,...
- **[Rent.com Scraper](https://apify.com/rigelbytes/rent-com-scraper)** — Scrape rental listings from rent.com — search by location query or URL. Extracts property details, photos, floor...
- **[Rightmove Scraper](https://apify.com/rigelbytes/rightmove-scraper)** — Scrape property listings and market data from Rightmove for market research, price monitoring, and investment analysis.
- **[RVshare Scraper](https://apify.com/rigelbytes/rvshare-scraper)** — Scrape property listings and market data from RVshare for market research, price monitoring, and investment analysis.
- **[Savills Property Scraper — Extract Listings by Location](https://apify.com/rigelbytes/savills-scraper)** — Scrape residential and commercial property listings from Savills by city. Get prices, addresses, sizes, bedrooms,...
- **[Unlimited Redfin Scraper](https://apify.com/rigelbytes/unlimited-redfin-scraper)** — Scrape property listings and market data from Redfin for market research, price monitoring, and investment analysis.
- **[Wüstenrot Immobilien Scraper — German Property Listings API](https://apify.com/rigelbytes/wuestenrot-immobilien)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Zillow Detail Scraper](https://apify.com/rigelbytes/zillow-detail-scraper)** — Scrape property listings and market data from Zillow for market research, price monitoring, and investment analysis.
- **[Zillow Scraper](https://apify.com/rigelbytes/zillow-scraper)** — Scrape property listings and market data from Zillow for market research, price monitoring, and investment analysis.
- **[Zoopla Scraper](https://apify.com/rigelbytes/zoopla-scraper)** — Scrape property listings and market data from Zoopla for market research, price monitoring, and investment analysis.

#### ✈️ Travel & Hospitality

Monitor rentals, bookings, and travel listings at scale.

- **[Autotrader Scraper](https://apify.com/rigelbytes/autotrader-scraper)** — Scrapes car listings from Autotrader.com with advanced search filters, pagination, and detailed vehicle data.
- **[CarMax Scraper](https://apify.com/rigelbytes/carmax-scraper)** — Scrapes used car listings from CarMax.com with search URL, zip code filtering, and pagination support.
- **[Cars.com Scraper](https://apify.com/rigelbytes/cars-scraper)** — Scrapes car listings from Cars.com using their GraphQL API. Extracts detailed vehicle data including price, specs,...
- **[Cars & Bids Scraper](https://apify.com/rigelbytes/carsandbids-scraper)** — Scrape live, upcoming, and past car auctions from Cars & Bids. Extract vehicle details, bids, photos, comments, and...
- **[Ticketmaster Scraper](https://apify.com/rigelbytes/ticketmaster-scraper)** — Collect rental and travel listings from Ticketmaster for pricing intelligence and availability tracking.

#### 🛒 E-commerce

Scrape products, prices, and marketplace data for competitive research.

- **[Amazon Product Scraper](https://apify.com/rigelbytes/amazon-product-scraper)** — Scrape products, prices, and seller data from Amazon for competitor monitoring, pricing, and product research.
- **[Amazon Search Scraper](https://apify.com/rigelbytes/amazon-scraper)** — Scrape products, prices, and seller data from Amazon for competitor monitoring, pricing, and product research.
- **[AutoScout24 Scraper](https://apify.com/rigelbytes/autoscout24-scraper)** — Scrape car listings from AutoScout24 with full filter support. Extract makes, models, prices, mileage, seller info,...
- **[Best Buy Product Scraper](https://apify.com/rigelbytes/best-buy-scraper)** — Scrape Best Buy US and Canada products by search query, category URL, or SKU. Optionally enrich each item with full...
- **[Daraz](https://apify.com/rigelbytes/daraz)** — Scrape products, prices, and seller data from Daraz for competitor monitoring, pricing, and product research.
- **[Etsy Scraper](https://apify.com/rigelbytes/etsy-scraper)** — Scrape products, prices, and seller data from Etsy for competitor monitoring, pricing, and product research.
- **[Homedepot Scraper](https://apify.com/rigelbytes/homedepot-scraper)** — HomeDepot Products Scraper lets you extract product data from homedepot.com using a collection URL and delivery ZIP....
- **[Kleinanzeigen Scraper](https://apify.com/rigelbytes/kleinanzeigen-scraper)** — Scrape listings from kleinanzeigen.de — search results and detail pages for any category (electronics, vehicles,...
- **[Otodom Scraper - Polish Real Estate Listings](https://apify.com/rigelbytes/otodom-scraper)** — Scrapes property listings from Otodom.pl, Poland's leading real estate marketplace. Supports filters for transaction...
- **[Zalando Product Scraper](https://apify.com/rigelbytes/zalando-scraper)** — Scrape product listings and optional product details from Zalando category pages and search queries.

#### 💼 Jobs & Recruitment

Collect job listings and company hiring data for market analysis.

- **[Glassdoor Jobs Scraper](https://apify.com/rigelbytes/glassdoor-jobs-scraper)** — Scrape job listings from Glassdoor by search query and location, with optional job detail enrichment.
- **[StepStone Jobs Scraper — Extract German/DACH Job Listings](https://apify.com/rigelbytes/stepstone-jobs-scraper)** — Scrape thousands of job listings from StepStone (DE, AT, BE, NL) with salary, skills, remote status & more. From...
- **[Upwork Jobs Scraper](https://apify.com/rigelbytes/upwork-jobs-scraper)** — Scrapes Upwork freelance job listings by keyword with full search filters (sort, experience, job type, budget,...
- **[ZipRecruiter Job Scraper](https://apify.com/rigelbytes/ziprecruiter-scraper)** — Scrape job listings from ZipRecruiter with search queries, locations, and radius filters. Extracts title, company,...

#### 📩 Lead Generation

Find business contacts, leads, and company data for sales and outreach.

- **[Booli.se Scraper](https://apify.com/rigelbytes/booli-se-scraper)** — Scrapes Swedish real estate listings from Booli.se — for sale, sold prices, and new construction. Supports search...
- **[Company Service Finder](https://apify.com/rigelbytes/company-service-finder)** — The Company Service Finder uses AI to extract and analyze company services from Google Search & Maps. Get detailed...
- **[Doctify Scraper](https://apify.com/rigelbytes/doctify-scraper)** — Doctify Scraper lets you extract doctor and practice data from doctify.com using a search results URL. Collect...
- **[Doctolib Scraper](https://apify.com/rigelbytes/doctolib-scraper)** — Scrape doctor profiles, availability, and practice details from Doctolib.de — Germany's largest medical appointment...
- **[FindLaw Law Firm Scraper - Attorney & Law Firm Data Extraction](https://apify.com/rigelbytes/findlaw-scraper)** — Scrape law firm profiles from FindLaw.com. Extract detailed attorney and firm information including contact details,...
- **[Finn.no Real Estate Scraper](https://apify.com/rigelbytes/finn-no-scraper)** — Scrape Norwegian real-estate listings from Finn.no with search URL or filter-based discovery, optional full details...
- **[Google Maps Scraper](https://apify.com/rigelbytes/google-maps-scraper)** — Find business leads and contact details from Google Maps for outbound sales, prospecting, and CRM enrichment.
- **[Krogsveen.no Real Estate Scraper](https://apify.com/rigelbytes/krogsveen-no-scraper)** — Scrape Norwegian real-estate listings from Krogsveen.no with search URL or filter-based discovery, optional full...
- **[LeadRocks Scraper](https://apify.com/rigelbytes/leadrocks-scraper)** — Export filtered B2B leads from the LeadRocks dataset by category, state, job title, company, and industry. Free...
- **[Website Services Finder](https://apify.com/rigelbytes/website-services-finder)** — Automatically extract and analyze company services from any business website using advanced AI. Choose from 5 AI...
- **[Zillow Agents](https://apify.com/rigelbytes/zillow-agents)** — Find business leads and contact details from Zillow for outbound sales, prospecting, and CRM enrichment.
- **[Zillow Agents Phone](https://apify.com/rigelbytes/zillow-agents-phone)** — Find business leads and contact details from Zillow for outbound sales, prospecting, and CRM enrichment.
- **[Zillow Agents Vault](https://apify.com/rigelbytes/zillow-agents-vault)** — Find business leads and contact details from Zillow for outbound sales, prospecting, and CRM enrichment.

#### ⭐ Reviews & Ratings

Monitor reviews and reputation data across review platforms.

- **[Airbnb Listing Reviews](https://apify.com/rigelbytes/airbnb-listing-reviews)** — Collect reviews and ratings from Airbnb for reputation monitoring and customer insights.
- **[BBB Scraper](https://apify.com/rigelbytes/bbb-scraper)** — Collect reviews and ratings from BBB for reputation monitoring and customer insights.
- **[Clutch.co Company Scraper](https://apify.com/rigelbytes/clutch-scraper)** — Scrape Clutch.co company listings, profiles, and reviews by directory URL or service + location search. Optional...
- **[Costco Product Scraper](https://apify.com/rigelbytes/costco-scraper)** — Scrapes product data from Costco.com including prices, descriptions, ratings, and availability. Supports search...
- **[HRS Hotel Reviews Scraper](https://apify.com/rigelbytes/hrs-hotel-reviews-scraper)** — Extract hotel details, room offers, and guest reviews from HRS hotel URLs.
- **[HRS Hotel Scraper](https://apify.com/rigelbytes/hrs-scraper)** — Scrapes hotel listings, prices, ratings, and amenities from HRS (hrs.com) by location and travel dates.
- **[Google Play Store App Reviews Scraper](https://apify.com/rigelbytes/playstore-app-reviews)** — Scrape Google Play Store app reviews by app ID or Play Store URL. Supports multiple apps, sorting, score filters,...
- **[Rottentomatoes Reviews Scraper](https://apify.com/rigelbytes/rottentomatoes-reviews-scraper)** — Collect reviews and ratings from Rotten Tomatoes for reputation monitoring and customer insights.
- **[TripAdvisor Reviews Scraper](https://apify.com/rigelbytes/tripadvisor-reviews-scraper)** — Scrape reviews from TripAdvisor hotel pages using GraphQL API with DataDome protection bypass.
- **[Trustpilot Reviews Scraper](https://apify.com/rigelbytes/trustpilot-reviews)** — Collect reviews and ratings from Trustpilot for reputation monitoring and customer insights.
- **[Yelp Scraper](https://apify.com/rigelbytes/yelp-scraper)** — Scrape Yelp business listings by search term, category, location, or URL. Optional full business details with phone,...

#### 🍔 Food & Delivery

Extract restaurant, grocery, and delivery platform data.

- **[Instacart Scraper](https://apify.com/rigelbytes/instacart-scraper)** — Scrape menus, stores, and delivery data from Instacart for data-driven research and automation.
- **[Lidl Product Scraper](https://apify.com/rigelbytes/lidl-scraper)** — Scrape Lidl supermarket products across Europe by search query or category/product URL. Optionally enrich each item...
- **[OpenTable Scraper](https://apify.com/rigelbytes/opentable-scraper)** — Scrape OpenTable restaurants by search query (with date/time/party size) or start URLs. Optional listing details and...
- **[Publix Scraper](https://apify.com/rigelbytes/publix-scraper)** — Scrape menus, stores, and delivery data from Publix for data-driven research and automation.

#### 📰 News & Media

Scrape news, articles, and media content for research.

- **[BizBuySell Scraper](https://apify.com/rigelbytes/bizbuysell-scraper)** — Scrape BizBuySell business-for-sale listings via search URLs or structured filters, with optional full listing details.
- **[SEC IPO Event Intelligence](https://apify.com/rigelbytes/ipo-events-api)** — Monitors SEC EDGAR for IPO filings and converts them into structured business events, with optional AI company...
- **[SEC Filings Scraper](https://apify.com/rigelbytes/sec-filings-intelligence)** — Retrieve clean, normalized SEC EDGAR filing data by ticker, CIK, or company name — with document links, optional...

#### 🛠️ Developer Tools

General-purpose scraping and automation tools.

- **[EU Tenders Scraper](https://apify.com/rigelbytes/eu-tenders-scraper)** — Scrape EU public procurement notices from TED (Tenders Electronic Daily) with advanced search filters,...
- **[Web Crawler](https://apify.com/rigelbytes/webcrawler)** — This web crawler is designed to provide users with complete flexibility by allowing them to use their \*\*own...

### Understanding Proxies:

When scraping data or browsing anonymously, proxies are essential. They act as intermediaries, masking your original IP address and allowing you to send requests from another location.

#### Why Use Proxies?

- Avoid IP Blocks: By routing requests through proxies, you prevent the target website from recognizing your IP as a scraper or spammer.
- Access Geo-restricted Content: Proxies let you access content or websites restricted by location.
- Enhance Anonymity: Hide your actual IP, ensuring privacy while scraping or browsing.

#### Types of Proxies

1. Residential Proxies
   - Real IP addresses provided by ISPs to home users.
   - They mimic regular users, making them harder to detect.
   - Best for: Long-term, undetectable scraping, and avoiding blocks.
2. Data Center Proxies
   - IP addresses from servers in data centers.
   - Faster and cheaper than residential proxies but easier to detect and block.
   - Best for: High-speed scraping, but with a higher risk of detection.
3. Mobile Proxies
   - IPs provided by mobile carriers (3G/4G/5G networks).
   - Very difficult to detect, as they appear as regular mobile users.
   - Best for: Mobile-related scraping or avoiding sophisticated blocks.

#### Rotating Proxies vs. Straight Proxies

- Rotating Proxies: Every request you send goes through a different proxy, making it harder for websites to detect patterns.
- Straight Proxies: All requests are sent through the same proxy, making it easier to track your IP.

### FAQs & Troubleshooting

#### Q: Why do I get "access denied" errors or empty results?

PropertyGuru sits behind Cloudflare and blocks data-center IPs. The actor needs the Apify Residential proxy — keep `proxyConfiguration` set to `useApifyProxy: true` with `apifyProxyGroups: ["RESIDENTIAL"]` and `apifyProxyCountry: "SG"` (Singapore IPs). If you still see "access denied" errors, reduce `maxConcurrency` to 3 and retry; the actor automatically warms up a browser session to pass Cloudflare's checks before scraping.

#### Q: What counts as a billable event, and when do I pay more than $2/1,000?

Every listing saved to the dataset charges the **dataset-item** event ($2/1,000). Enabling `scrapeListingDetails` charges the **listing-details** event per enriched listing, and `scrapeAgentInfo` / `scrapeAgentReviews` charge the **agent-info** event per listing with agent data — both also $2/1,000. Scrape only what you need: set `scrapeListingDetails` false when you only need search-level data (price, beds, location).

#### Q: What do the property type group codes mean?

`propertyTypeGroup` uses the same codes as PropertyGuru: empty = All, **N** = Condo (Condominium, Apartment, Executive Condominium, Walk-up, Cluster House), **L** = Landed (Terrace, Bungalow, Shophouse, Land Only, Town House, and more), **H** = HDB (1-Room/Studio through Jumbo, Executive, Multi-Generation, Terrace). All 45 specific types are available individually under `propertyTypeCode`.

#### Q: How do price filters behave for rent vs sale?

`minPrice`/`maxPrice` are always in SGD, but the scale differs: for `listingType: "sale"` it's the total asking price (e.g. 500000), for rent it's the monthly rent (e.g. 2500). The same applies to PSF filters (`minPricePerArea`/`maxPricePerArea`) — hundreds to thousands for sale, single-digit monthly PSF for rent. Bedrooms `"5"` means 5 or more, and bathroom `"5"` means 5+.

#### Q: Can I scrape without any search queries?

Yes. Leave `searchQueries` empty to scrape all listings matching your filters, or pass `startUrls` — PropertyGuru search URLs (paginated as-is) or direct listing URLs (scraped individually). Note that filters like `listingType`, price, and bedrooms apply to `searchQueries` only, not to `startUrls`; the filter behavior of pasted search URLs is whatever the URL itself encodes.

#### Q: How many listings can I scrape, and how fast?

`maxItems` caps the output (0 = unlimited). `maxConcurrency` (1–8, default 5) controls how many listing-detail and agent pages open in parallel — each tab uses the same sticky residential proxy session. Higher concurrency is faster but more likely to trip rate limits; 3–5 is a good balance for large runs.

### About Rigel Bytes

Rigel Bytes specializes in web scraping, automation, and data analytics. We help businesses extract and leverage valuable data for informed decision-making.

### Contact Us

- Email: contact@rigelbytes.com
- Book a meeting: https://cal.com/faizanali/appointments

Whether you need help configuring your runs, building a custom integration, or a brand-new scraper for a platform we don't cover yet — we are happy to help.

### Detailed Data

Here is a real output item from a sample run (truncated for readability):

```json
{
    "id": "500084521",
    "url": "https://www.propertyguru.com.sg/listing/for-sale-orchard-court-500084521",
    "title": "Orchard Court",
    "headline": "Good value, Cheap, Motivated Seller, Good facing, Value Buy in Town.",
    "description": "4 bedrooms and 3 Bathroom\nGood facing for the rooms\nWalking distance to Somerset and Dhoby Ghaut MRT...",
    "price": 1790000,
    "priceText": "S$ 1,790,000",
    "psf": 1241.33,
    "listingType": "SALE",
    "listingTypeText": "For Sale",
    "propertyType": "Apartment",
    "propertyTypeCode": "APT",
    "propertyTypeGroup": "N",
    "propertyName": "Orchard Court",
    "bedrooms": 4,
    "bathrooms": 3,
    "floorAreaSqft": 1442,
    "floorAreaText": "1,442 sqft",
    "furnishing": "Unfurnished",
    "postalCode": "238619",
    "streetName": "Oxley Road",
    "address": "19 Oxley Road",
    "district": "Orchard / River Valley",
    "districtCode": "D09",
    "region": "Orchard / Holland (D09-10)",
    "latitude": 1.298655,
    "longitude": 103.841626,
    "listedOn": "2026-08-13 15:24:09",
    "isVerified": false,
    "imageUrls": [
        "https://sg1-cdn.pgimgs.com/listing/500084521/UPHO.159038433.V550/Orchard-Court-Orchard-River-Valley-Singapore.jpg",
        "... 11 more images"
    ],
    "amenities": ["Air conditioner", "Balcony", "Car parking outside"],
    "nearbyMrt": ["NS23 Somerset MRT Station", "NE6 Dhoby Ghaut MRT Station", "... 4 more stations"],
    "agentId": "13057653",
    "agentName": "Jasmine Wee",
    "agentLicense": "R064516H",
    "agencyName": "PROPNEX REALTY PTE. LTD.",
    "agentUrl": "https://www.propertyguru.com.sg/agent/13057653",
    "agentRating": 5.0,
    "agentReviewCount": 1,
    "agent": {
        "id": "13057653",
        "name": "Jasmine Wee",
        "license": "R064516H",
        "agencyName": "PROPNEX REALTY PTE. LTD.",
        "yearsOfService": 4,
        "transactionCount": 35,
        "rating": 5.0,
        "reviewCount": 1,
        "reviews": ["... full written reviews when scrapeAgentReviews is enabled"]
    },
    "scrapedAt": "2026-08-13T15:24:09Z"
}
```

# Actor input Schema

## `searchQueries` (type: `array`):

Locations or keywords to search (e.g. "Orchard", "Tampines", "District 9", "Punggol MRT"). Mapped to PropertyGuru's freetext search box. Leave empty to scrape all listings matching the filters below. Primary input for AI agents — no URL required.

## `startUrls` (type: `array`):

PropertyGuru search or listing URLs copied from the browser (e.g. https://www.propertyguru.com.sg/property-for-sale?listingType=sale). Search URLs are paginated as-is; listing URLs are scraped directly. Filters below apply to Search Queries, not to Start URLs.

## `listingType` (type: `string`):

Buy (sale) or rent. Ignored when Start URLs already include listingType.

## `propertyTypeGroup` (type: `string`):

High-level type. Leave as All, or pick Condo, Landed, or HDB (Housing & Development Board public housing). Combined with Property Types below — empty Property Types means select all types in this group.

## `propertyTypeCode` (type: `array`):

Specific property types. Leave empty to include all types (or all types in the selected group). Condo: Condominium, Apartment, Walk-up, Cluster House, Executive Condominium. Landed: Terrace, Detached, Semi-Detached, Corner Terrace, Bungalow, Shophouse, Land Only, Townhouse, Conservation, Cluster. HDB: 1-Room/Studio through Jumbo, Executive Apartment/Maisonette, Multi-Generation, Terrace.

## `minPrice` (type: `integer`):

Minimum asking price in Singapore dollars. For sale this is the total price (e.g. 500000); for rent this is monthly rent (e.g. 2500).

## `maxPrice` (type: `integer`):

Maximum asking price in Singapore dollars.

## `bedrooms` (type: `array`):

Bedroom count. Studio is 0; 5 means 5 or more. Leave empty for any.

## `bathrooms` (type: `array`):

Bathroom count. 5 means 5 or more. Leave empty for any.

## `entireUnitOrRoom` (type: `string`):

For rent searches only: entire unit vs room rental. Leave empty for all.

## `isVerified` (type: `boolean`):

Only include PropertyGuru verified listings.

## `minSize` (type: `integer`):

Minimum internal floor area in square feet (e.g. 500, 1000).

## `maxSize` (type: `integer`):

Maximum internal floor area in square feet.

## `minSizeLand` (type: `integer`):

Minimum land/plot size in square feet (landed properties).

## `maxSizeLand` (type: `integer`):

Maximum land/plot size in square feet (landed properties).

## `minPricePerArea` (type: `integer`):

Minimum price per square foot. For sale this is typically hundreds to thousands; for rent it is a small monthly PSF.

## `maxPricePerArea` (type: `integer`):

Maximum price per square foot.

## `distanceToMRT` (type: `string`):

Maximum walking distance to the nearest MRT or LRT station. Leave empty for any.

## `distanceFromCentre` (type: `string`):

When a search query is a point location, limit results to this radius. Leave empty for the site default.

## `floorLevel` (type: `array`):

Floor band. Hidden on the site for landed-only searches. Leave empty for any.

## `tenureCode` (type: `array`):

Land tenure. Leave empty for any.

## `minTopYear` (type: `integer`):

Earliest TOP / completion year (e.g. 2010).

## `maxTopYear` (type: `integer`):

Latest TOP / completion year (e.g. 2026).

## `furnishing` (type: `array`):

Furnishing level. Leave empty for any.

## `unitFeatures` (type: `array`):

In-unit features. Leave empty for any.

## `projectFeatures` (type: `array`):

Project / condo facilities. Leave empty for any.

## `lastPosted` (type: `string`):

How recently the listing was posted. Leave empty for any date.

## `withStream` (type: `boolean`):

Only listings that include video or a virtual tour.

## `withFloorplans` (type: `boolean`):

Only listings that include a floor plan.

## `keyword` (type: `string`):

Optional extra keyword matched against listing text (e.g. Terrace, Garage, Eateries).

## `leaseTerm` (type: `array`):

Rental lease length. Leave empty for any.

## `availability` (type: `string`):

When the unit is available. Leave empty for any.

## `roomType` (type: `array`):

For room rentals only.

## `maxTenants` (type: `string`):

For room rentals only. Leave empty for any.

## `tenantGender` (type: `string`):

For room rentals only. Leave empty for any.

## `tenancyConditions` (type: `array`):

For room rentals only.

## `cookingType` (type: `string`):

For room rentals only. Leave empty for any.

## `isDiversityFriendly` (type: `boolean`):

Only listings marked as diversity-friendly / everyone welcome.

## `sortBy` (type: `string`):

Result ordering on search pages.

## `scrapeListingDetails` (type: `boolean`):

Open listing pages in parallel (see Max Concurrency) for description, photos, amenities, coordinates, and unit details. Charges the listing-details event per listing in addition to dataset-item.

## `scrapeAgentInfo` (type: `boolean`):

Open the listing agent profile for license, agency, rating, and bio. Charges the agent-info event per listing that includes agent data.

## `scrapeAgentReviews` (type: `boolean`):

Also paginate written agent reviews. Implies Scrape Agent Information. Included in the agent-info charge.

## `maxItems` (type: `integer`):

Maximum number of listings to scrape (0 = unlimited)

## `maxConcurrency` (type: `integer`):

How many listing-detail (and agent) pages to open at the same time. Each tab uses the same sticky residential proxy. Higher is faster; 3–5 is a good default (e.g. 5).

## `proxyConfiguration` (type: `object`):

Proxy settings. Apify Residential is required — PropertyGuru sits behind Cloudflare.

## Actor input object example

```json
{
  "searchQueries": [
    "Orchard"
  ],
  "startUrls": [
    {
      "url": "https://www.propertyguru.com.sg/property-for-sale?listingType=sale"
    }
  ],
  "listingType": "sale",
  "propertyTypeGroup": "",
  "entireUnitOrRoom": "",
  "isVerified": false,
  "distanceToMRT": "",
  "distanceFromCentre": "",
  "lastPosted": "",
  "withStream": false,
  "withFloorplans": false,
  "availability": "",
  "maxTenants": "",
  "tenantGender": "",
  "cookingType": "",
  "isDiversityFriendly": false,
  "sortBy": "recommended",
  "scrapeListingDetails": false,
  "scrapeAgentInfo": false,
  "scrapeAgentReviews": false,
  "maxItems": 10,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "SG"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

JSON array of scraped PropertyGuru Singapore listings at {{links.apiDefaultDatasetUrl}}/items

## `runStats` (type: `string`):

Record counts and timestamps for this run

## `run` (type: `string`):

Public console page for this run

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "Orchard"
    ],
    "startUrls": [
        {
            "url": "https://www.propertyguru.com.sg/property-for-sale?listingType=sale"
        }
    ],
    "maxItems": 10,
    "maxConcurrency": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "SG"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rigelbytes/propertyguru-sg-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQueries": ["Orchard"],
    "startUrls": [{ "url": "https://www.propertyguru.com.sg/property-for-sale?listingType=sale" }],
    "maxItems": 10,
    "maxConcurrency": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "SG",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("rigelbytes/propertyguru-sg-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "Orchard"
  ],
  "startUrls": [
    {
      "url": "https://www.propertyguru.com.sg/property-for-sale?listingType=sale"
    }
  ],
  "maxItems": 10,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "SG"
  }
}' |
apify call rigelbytes/propertyguru-sg-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rigelbytes/propertyguru-sg-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kh3ZtfaLdPp4VBw60/builds/ehRf1IB5nlwMtY6aC/openapi.json
