# Propertypal Property Search Scraper (`stealth_mode/propertypal-property-search-scraper`) Actor

Scrape property listings from PropertyPal.com across Ireland with comprehensive details including prices, locations, EPC ratings, agent info, and 75+ data fields per property — perfect for real estate analysts, market researchers, and property investment platforms.

- **URL**: https://apify.com/stealth\_mode/propertypal-property-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## PropertyPal Property Search Scraper: Extract Irish Real Estate Listings Instantly

---

### What Is PropertyPal.com?

PropertyPal.com is Ireland's largest property portal, hosting residential and commercial listings across the Republic of Ireland and Northern Ireland. It aggregates thousands of active properties from agents nationwide, making it a critical resource for buyers, renters, and market analysts. Collecting this data manually is impractical — the **PropertyPal Property Search Scraper** automates extraction, delivering structured property intelligence at scale.

---

### Overview

The **PropertyPal Property Search Scraper** extracts property listings from PropertyPal search result pages, capturing comprehensive details for each property. It serves:

- **Real estate agents** monitoring competitor listings and pricing
- **Property investors** analyzing market trends and investment opportunities
- **Market researchers** studying Irish property supply and demand
- **Data platforms** building property databases and aggregators
- **Valuation analysts** gathering comparable sales data

Key strengths include configurable extraction limits per page, graceful failure handling, and extraction of premium listing flags (Featured, Prime, Premier status) that indicate market visibility and pricing tiers.

---

### Input Format

The scraper accepts a JSON configuration object specifying which pages to scrape and how:

```json
{
  "urls": [
    "https://www.propertypal.com/property-for-sale/republic-of-ireland/page-2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array | PropertyPal search result page URLs. Example: listing pages filtered by location, property type, or price range. |
| `max_items_per_url` | Integer | Maximum properties to extract per URL (e.g., `200` for full page extraction). Set lower values to limit volume. |
| `ignore_url_failures` | Boolean | If `true`, scraper continues if a URL fails; if `false`, execution stops. Recommended: `true` for bulk runs. |

> **Tip:** PropertyPal pages typically display 20–50 listings per page. Set `max_items_per_url` to 200+ to capture entire pages. You can apply filters on PropertyPal (location, type, price range) before copying the URL to target specific subsets.

***

### Output Format

**Sample output**

```json
{
  "id": 1080918,
  "path_id": "1082118",
  "path": "/13-the-anchorage-bettystown/1082118",
  "share_url": null,
  "display_address": "13 The Anchorage, Bettystown, A92YN96",
  "display_address_line_1": null,
  "display_address_line_2": null,
  "account": {
    "account_number": "ST0619222",
    "organisation": "O'Brien Collins Little",
    "organisation_branch": "",
    "display_address": "John Street, Drogheda, A92 H93X",
    "office_phone": {
      "country_code": 353,
      "display_number": "+353 41 987 5444",
      "international": "+353 41 987 5444",
      "national": "(041) 987 5444",
      "uk": "+353 41 987 5444"
    },
    "psr_licence_number": "004895",
    "website_url": null,
    "landing_page_url": null,
    "group_landing_page_url": null,
    "private_developer": false,
    "developer_primary_contact": false,
    "developer": false,
    "agent": true,
    "featured_agent": false,
    "details_enabled": true,
    "email_enabled": true,
    "show_address": true,
    "has_microsite": true,
    "include_fee_charges": false,
    "logo": {
      "standard": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
      "standard_background_colour": "#752c84",
      "alternative": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
      "alternative_background_colour": "#752c84",
      "premier": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
      "premier_background_colour": "#752c84"
    },
    "agent_logos": [
      {
        "logo_type": "STANDARD",
        "url": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
        "width": 600,
        "height": 525,
        "background_colour": "#752c84",
        "account_number": "ST0619222",
        "developer": false,
        "agent": true
      },
      {
        "logo_type": "ALTERNATIVE",
        "url": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
        "width": 600,
        "height": 525,
        "background_colour": "#752c84",
        "account_number": "ST0619222",
        "developer": false,
        "agent": true
      },
      {
        "logo_type": "PREMIER",
        "url": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
        "width": 600,
        "height": 525,
        "background_colour": "#752c84",
        "account_number": "ST0619222",
        "developer": false,
        "agent": true
      }
    ],
    "colours": {
      "secondary": "#353535",
      "srp_branding_text_colour": "#FFFFFF",
      "pdp_branding_bg_colour": "#353535",
      "pdp_branding_border_colour": "#353535",
      "pdp_branding_button_text_colour": "#FFFFFF",
      "srp_branding_bg_colour": "#353535",
      "pdp_branding_link_colour": "#353535",
      "pdp_branding_button_bg_colour": "#353535",
      "foreground": "#353535",
      "primary": "#FFFFFF"
    },
    "accreditations": null,
    "missing_accreditations": null,
    "propertypal_awards": null,
    "opening_times": null,
    "tier": "CUSTOM",
    "enhanced_branding": false,
    "search_url": null,
    "search_params": null,
    "membership_account": false
  },
  "development": null,
  "type": "property",
  "premium_listing": false,
  "featured_listing": false,
  "prime_listing": false,
  "current_prime_expiry_time": null,
  "current_prime_days_remaining": null,
  "current_prime_tier": null,
  "continuous_relisting": false,
  "images": [
    {
      "id": 42351321,
      "image_type": "Photograph",
      "display_order": 0,
      "url": "https://media.propertypal.com/large/p/1080918/42351321.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "UiED3gozR-WX%%oza~bIN2t8t7t7RnkDRjWC",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351321.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351321.jpg"
      },
      "premium_listing_order": null
    },
    {
      "id": 42351323,
      "image_type": "Photograph",
      "display_order": 1,
      "url": "https://media.propertypal.com/large/p/1080918/42351323.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "UIDU3~9D~CD$#TDgx_M|5Wtlvz$iOGt2ofs,",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351323.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351323.jpg"
      },
      "premium_listing_order": null
    },
    {
      "id": 42351320,
      "image_type": "Photograph",
      "display_order": 2,
      "url": "https://media.propertypal.com/large/p/1080918/42351320.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "UJHx7?v|Y59]_MpIa0$%9E%NaeRjwKa0S$I;",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351320.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351320.jpg"
      },
      "premium_listing_order": null
    },
    {
      "id": 42351319,
      "image_type": "Photograph",
      "display_order": 4,
      "url": "https://media.propertypal.com/large/p/1080918/42351319.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "UMG*]6%0~qWExtVraJjD4:NgNHS4W?NeNHR*",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351319.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351319.jpg"
      },
      "premium_listing_order": null
    },
    {
      "id": 42351324,
      "image_type": "Photograph",
      "display_order": 6,
      "url": "https://media.propertypal.com/large/p/1080918/42351324.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "UKIX]axuM{of_NtRt7oLIUM{t7WBMxayt7j]",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351324.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351324.jpg"
      },
      "premium_listing_order": null
    },
    {
      "id": 42351326,
      "image_type": "Photograph",
      "display_order": 7,
      "url": "https://media.propertypal.com/large/p/1080918/42351326.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "UHGIJ-Md_2x[_MD%NdI=H=-oR.NfVu%MM{W9",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351326.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351326.jpg"
      },
      "premium_listing_order": null
    },
    {
      "id": 42351336,
      "image_type": "Photograph",
      "display_order": 8,
      "url": "https://media.propertypal.com/large/p/1080918/42351336.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "UFINmyujk=%M}?={E1WUADJ7NeE1PBTJV@aJ",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351336.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351336.jpg"
      },
      "premium_listing_order": null
    },
    {
      "id": 42351337,
      "image_type": "Photograph",
      "display_order": 9,
      "url": "https://media.propertypal.com/large/p/1080918/42351337.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "UCEfE14;Di00~qxuIUs:00M{xu?axGE2Rjt5",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351337.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351337.jpg"
      },
      "premium_listing_order": null
    },
    {
      "id": 42351327,
      "image_type": "Photograph",
      "display_order": 10,
      "url": "https://media.propertypal.com/large/p/1080918/42351327.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "UIH_*;e7%f_N~o%LR6RP4nM}9ZD%EMR,aKs:",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351327.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351327.jpg"
      },
      "premium_listing_order": null
    },
    {
      "id": 42351330,
      "image_type": "Photograph",
      "display_order": 11,
      "url": "https://media.propertypal.com/large/p/1080918/42351330.jpg",
      "width": 1033,
      "height": 775,
      "blurhash": "U-DU0.ohWCaycbWCofj[TgbIaxfQS*a$offk",
      "urls": {
        "880x645:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/037002850005d57592/p/1080918/42351330.jpg",
        "340x255:_f_i_l_l__c_r_o_p": "https://media.propertypal.com/015400ff0005e1d780/p/1080918/42351330.jpg"
      },
      "premium_listing_order": null
    }
  ],
  "unit_number": "",
  "site_number": "",
  "building_name": "",
  "house_number": "13",
  "street": "The Anchorage",
  "address_line_1": null,
  "address_line_2": null,
  "town": "Bettystown",
  "region": "Meath",
  "postcode": "A92YN96",
  "country_code": "IRL",
  "coordinate": {
    "latitude": 53.69750450000001,
    "longitude": -6.2460911
  },
  "tag_line": "",
  "sale_type": {
    "key": "sale",
    "text": "Sale"
  },
  "property_type": {
    "key": "residential",
    "text": "Residential"
  },
  "style": {
    "key": "duplexApartment",
    "text": "Duplex Apartments",
    "property_type": "residential"
  },
  "agents": [
    {
      "account_number": "ST0619222",
      "organisation": "O'Brien Collins Little",
      "organisation_branch": "",
      "display_address": "John Street, Drogheda, A92 H93X",
      "office_phone": {
        "country_code": 353,
        "display_number": "+353 41 987 5444",
        "international": "+353 41 987 5444",
        "national": "(041) 987 5444",
        "uk": "+353 41 987 5444"
      },
      "psr_licence_number": "004895",
      "website_url": null,
      "landing_page_url": null,
      "group_landing_page_url": null,
      "private_developer": false,
      "developer_primary_contact": false,
      "developer": false,
      "agent": true,
      "featured_agent": false,
      "details_enabled": true,
      "email_enabled": true,
      "show_address": true,
      "has_microsite": true,
      "include_fee_charges": false,
      "logo": {
        "standard": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
        "standard_background_colour": "#752c84",
        "alternative": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
        "alternative_background_colour": "#752c84",
        "premier": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
        "premier_background_colour": "#752c84"
      },
      "agent_logos": [
        {
          "logo_type": "STANDARD",
          "url": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
          "width": 600,
          "height": 525,
          "background_colour": "#752c84",
          "account_number": "ST0619222",
          "developer": false,
          "agent": true
        },
        {
          "logo_type": "ALTERNATIVE",
          "url": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
          "width": 600,
          "height": 525,
          "background_colour": "#752c84",
          "account_number": "ST0619222",
          "developer": false,
          "agent": true
        },
        {
          "logo_type": "PREMIER",
          "url": "https://media.propertypal.com/logo/260318152033/400x400/ST0619222/master.png",
          "width": 600,
          "height": 525,
          "background_colour": "#752c84",
          "account_number": "ST0619222",
          "developer": false,
          "agent": true
        }
      ],
      "colours": {
        "secondary": "#353535",
        "srp_branding_text_colour": "#FFFFFF",
        "pdp_branding_bg_colour": "#353535",
        "pdp_branding_border_colour": "#353535",
        "pdp_branding_button_text_colour": "#FFFFFF",
        "srp_branding_bg_colour": "#353535",
        "pdp_branding_link_colour": "#353535",
        "pdp_branding_button_bg_colour": "#353535",
        "foreground": "#353535",
        "primary": "#FFFFFF"
      },
      "accreditations": null,
      "missing_accreditations": null,
      "propertypal_awards": null,
      "opening_times": null,
      "tier": "CUSTOM",
      "enhanced_branding": false,
      "search_url": null,
      "search_params": null,
      "membership_account": false
    }
  ],
  "furnished_type": null,
  "num_bedrooms": 3,
  "num_bathrooms": 2,
  "num_reception_rooms": null,
  "status": {
    "key": "forSale",
    "text": "For sale"
  },
  "price": {
    "price_type": "FIXED_PRICE",
    "rent_frequency": null,
    "currency_code": "EUR",
    "currency_symbol": "€",
    "price": 260000,
    "min_price": null,
    "max_price": null,
    "price_on_application": false,
    "price_hidden": false,
    "hidden_price_text": "POA",
    "price_prefix": "Price",
    "price_suffix": ""
  },
  "date_viewable_from": null,
  "date_available_from": null,
  "epc": null,
  "ber": {
    "alphanumeric_rating": "C2",
    "energy_performance_indicator": null
  },
  "ber_exempt": false,
  "listing_logos": null,
  "agent_logos": null,
  "description": null,
  "brief_text": "3 Bed Duplex Apartment",
  "listing_time": {
    "type": "added",
    "time_text": "12 minutes ago",
    "type_text": "Added"
  },
  "auction": false,
  "auction_end_time": null,
  "auction_time": null,
  "auction_lot": null,
  "auction_venue": null,
  "premier_available": false,
  "premier_available_from": null,
  "premier_available_time_period": null,
  "premier_boost_available": null,
  "premier_boost_available_from": null,
  "premier_boost_available_time_period": null,
  "coownership_only": false,
  "coownership_eligible": true,
  "hidden": false,
  "history": [
    {
      "difference": null,
      "price_on_application": false,
      "published_on_awp": true,
      "published": true,
      "time_modified": "2026-06-10T09:30:37+0100",
      "price": 260000,
      "status": {
        "key": "forSale",
        "text": "For sale"
      },
      "previous_status": null,
      "previous_price": null,
      "previous_published": false,
      "status_change": true,
      "price_change": false,
      "published_change": true,
      "published_on_awp_change": true,
      "difference_percentage": null,
      "price_prefix": "Price",
      "price_suffix": null
    }
  ],
  "published": true,
  "enhanced_branding": false,
  "primary_colour": null,
  "listing_tier": "STANDARD",
  "enhanced_branding_colours": null,
  "total_units": 1,
  "premier_highlight": null,
  "listing_updated_time": "2026-06-10T09:31:33+0100",
  "heating_type": null,
  "shortlisted": false,
  "sitemap_colours": [],
  "coming_soon": false,
  "coming_soon_text": null,
  "activation_time": "2026-06-10T09:30:37+0100",
  "cash_sale_only": false,
  "from_url": "https://www.propertypal.com/property-for-sale/republic-of-ireland"
}
```

Each property extracted returns a detailed record with 75+ fields, organized below:

#### Property Identification

| Field | Meaning |
|---|---|
| `ID` | Unique PropertyPal identifier for this listing |
| `Path ID` | Internal path/category identifier |
| `Path` | Property category path (e.g., "for-sale/houses") |
| `Share URL` | Shareable public URL for the property listing |
| `Display Address` | Full address as displayed to users |
| `Display Address Line 1` | First line of the formatted address |
| `Display Address Line 2` | Second line of the formatted address |

#### Address Components

| Field | Meaning |
|---|---|
| `Unit Number` | Apartment/unit number if applicable |
| `Site Number` | Site identifier for large developments |
| `Building Name` | Name of the apartment building or complex |
| `House Number` | Street number of the property |
| `Street` | Street name |
| `Address Line 1` | First address line in structured format |
| `Address Line 2` | Second address line in structured format |
| `Town` | Town or city name |
| `Region` | County or regional area |
| `Postcode` | Postal code (Eircode in Ireland) |
| `Country Code` | ISO country code (e.g., "IE") |
| `Coordinate` | GPS latitude/longitude for map placement |

#### Property Details

| Field | Meaning |
|---|---|
| `Property Type` | Category (e.g., House, Apartment, Bungalow, Commercial) |
| `Style` | Architectural style (e.g., Detached, Semi-detached, Terraced) |
| `Number of Bedrooms` | Bedroom count |
| `Number of Bathrooms` | Bathroom count |
| `Number of Reception Rooms` | Living/reception room count |
| `Furnished Type` | Furnished status (e.g., Furnished, Unfurnished, Part-furnished) |
| `Heating Type` | Primary heating system (e.g., Gas, Oil, Electric) |

#### Price & Sale Information

| Field | Meaning |
|---|---|
| `Price` | Listed asking price in EUR or GBP |
| `Sale Type` | Sale method (e.g., Standard Sale, Auction, Tender) |
| `Status` | Current status (e.g., For Sale, Sold, Withdrawn) |
| `Auction` | Whether the property is auction listed |
| `Auction Time` | Scheduled auction date/time |
| `Auction End Time` | When the auction closes |
| `Auction Lot` | Auction lot number |
| `Auction Venue` | Location of the auction |
| `Cash Sale Only` | If `true`, cash purchases only |

#### Energy & Compliance

| Field | Meaning |
|---|---|
| `EPC` | Energy Performance Certificate (UK standard) |
| `BER` | Building Energy Rating (Ireland standard) |
| `BER Exempt` | Whether the property is exempt from BER requirements |

#### Availability & Timeline

| Field | Meaning |
|---|---|
| `Date Viewable From` | Earliest viewing date |
| `Date Available From` | Move-in/available date for tenancies |
| `Listing Time` | When the listing was first published |
| `Listing Updated Time` | Timestamp of the last content update |
| `Activation Time` | When the listing became publicly visible |
| `Coming Soon` | Whether this is a pre-launch listing |
| `Coming Soon Text` | Custom "Coming Soon" message |

#### Premium & Promotion Flags

| Field | Meaning |
|---|---|
| `Premium Listing` | General premium status indicator |
| `Featured Listing` | Whether the property is featured in search results |
| `Prime Listing` | Prime/prominent placement flag |
| `Current Prime Expiry Time` | When Prime status expires |
| `Current Prime Days Remaining` | Days left in the current Prime period |
| `Current Prime Tier` | Prime tier level (e.g., Gold, Silver) |
| `Continuous Relisting` | Whether the listing auto-relists when expiring |
| `Premier Available` | Whether Premier upgrade is available |
| `Premier Available From` | Date Premier becomes available |
| `Premier Available Time Period` | Duration of Premier availability |
| `Premier Boost Available` | Whether Premier Boost is available |
| `Premier Boost Available From` | When Premier Boost starts |
| `Premier Boost Available Time Period` | Duration of Premier Boost |
| `Premier Highlight` | Special highlighting status |

#### Agent & Company Information

| Field | Meaning |
|---|---|
| `Account` | Agent/agency account name |
| `Agents` | List of assigned agents |
| `Agent Logos` | URLs of agent/agency logos |
| `Listing Logos` | URLs of custom listing logos |

#### Branding & Display

| Field | Meaning |
|---|---|
| `Enhanced Branding` | Whether custom branding is applied |
| `Primary Colour` | Primary brand color (hex value) |
| `Enhanced Branding Colours` | Full branding color palette |
| `Sitemap Colours` | Colors used in sitemap display |
| `Listing Tier` | Display tier/priority level |

#### Content & Media

| Field | Meaning |
|---|---|
| `Tag Line` | Short headline or summary text |
| `Description` | Full HTML property description |
| `Brief Text` | Short plain-text summary |
| `Images` | Array of image URLs for the property |

#### Development & Co-Ownership

| Field | Meaning |
|---|---|
| `Development` | Associated development project name |
| `Total Units` | Total units in the development |
| `Co-Ownership Only` | Whether co-ownership is required |
| `Co-Ownership Eligible` | Whether the property allows co-ownership |

#### Visibility & Management

| Field | Meaning |
|---|---|
| `Hidden` | Whether the listing is hidden from public view |
| `Published` | Whether the listing is publicly published |
| `Shortlisted` | User shortlist status indicator |
| `History` | Historical data or listing revisions |

***

### How to Use

1. **Identify target pages** — Navigate to PropertyPal.com, apply filters (location, price, type, etc.), and copy the search result page URL (e.g., `/property-for-sale/republic-of-ireland/page-2`).
2. **Prepare URLs** — Paste URLs into the `urls` array. You can add multiple pages to scrape them in a single run.
3. **Set extraction limits** — Use `max_items_per_url` to control volume. Higher values (e.g., `200`) extract entire pages; lower values sample listings.
4. **Enable fault tolerance** — Set `ignore_url_failures: true` to prevent interruptions if a page becomes unavailable mid-run.
5. **Run the scraper** — Start the actor and monitor progress. Check the log for any blocked or failed URLs.
6. **Export data** — Download results as JSON, CSV, or Excel. Import into spreadsheets, databases, or BI tools.

**Common tips:**

- PropertyPal URLs include pagination (page-1, page-2, etc.). Scrape multiple pages to build a complete market dataset.
- Premium listing flags (`Featured Listing`, `Prime Listing`) indicate agent investment and typically correlate with higher demand.
- The `BER` field is essential for Irish properties and affects buyer decisions and financing.

***

### Use Cases & Business Value

- **Market analysis:** Track property supply, pricing trends, and agent activity across regions
- **Investment research:** Identify undervalued properties or emerging neighborhoods
- **Competitive intelligence:** Monitor agent listings and promotional strategies
- **Lead generation:** Build datasets for real estate CRM and marketing platforms
- **Price benchmarking:** Compare properties by type, location, and features for valuation
- **Development tracking:** Monitor new projects and unit availability

The PropertyPal Property Search Scraper eliminates hours of manual browsing, delivering structured data that feeds directly into analytics dashboards, investment models, and market intelligence platforms.

***

### Conclusion

The **PropertyPal Property Search Scraper** is the fastest way to access comprehensive Irish property market data. With 75+ fields per listing and flexible configuration, it transforms PropertyPal search results into actionable intelligence for investors, agents, and researchers. Start scraping today and unlock insights that shape better real estate decisions.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## `proxy` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "urls": [
    "https://www.propertypal.com/property-for-sale/republic-of-ireland/page-2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {
    "urls": [
        "https://www.propertypal.com/property-for-sale/republic-of-ireland/page-2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/propertypal-property-search-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 = {
    "urls": ["https://www.propertypal.com/property-for-sale/republic-of-ireland/page-2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/propertypal-property-search-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.propertypal.com/property-for-sale/republic-of-ireland/page-2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call stealth_mode/propertypal-property-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=stealth_mode/propertypal-property-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Propertypal Property Search Scraper",
        "description": "Scrape property listings from PropertyPal.com across Ireland with comprehensive details including prices, locations, EPC ratings, agent info, and 75+ data fields per property — perfect for real estate analysts, market researchers, and property investment platforms.",
        "version": "0.0",
        "x-build-id": "SaXMbtBAQMu1y4Ocf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~propertypal-property-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-propertypal-property-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/stealth_mode~propertypal-property-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-propertypal-property-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/stealth_mode~propertypal-property-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-propertypal-property-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the property list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your scraper."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
