# PropertyPal Ireland Property Scraper (`vivid-softwares/propertypal-ireland-property-scraper`) Actor

Scrape PropertyPal, the property website for Northern Ireland and the Republic of Ireland. Paste any search, agent or property URL to get listings for sale and to rent with prices, price history, photos, floor plans, videos, EPC/BER, views and agent contacts.

- **URL**: https://apify.com/vivid-softwares/propertypal-ireland-property-scraper.md
- **Developed by:** [VividSoftwares](https://apify.com/vivid-softwares) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$12.50 / 1,000 property listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does PropertyPal Ireland Property Scraper do?

**PropertyPal Ireland Property Scraper** extracts property listings from [PropertyPal](https://www.propertypal.com), the leading property website in **Northern Ireland** that also covers the **Republic of Ireland**. Paste **any PropertyPal search, agent or property URL** and get every matching listing as clean JSON, **for sale or to rent**. Each listing includes prices and "offers around" terms, the **full price and status history**, **page views and popularity ranking**, bedrooms, bathrooms and receptions, floor area, **EPC (NI) and BER (ROI) ratings**, heating, broadband speeds, rates and stamp duty. You also get the full description and key information table, **every photo, floor plan, video, 360 tour and brochure**, coordinates, and the agent's or developer's public contact details, including joint agents.

It is a **dedicated PropertyPal scraper** and a practical **Northern Ireland and Ireland property listings API**. Run it from Apify Console, call it over the API, schedule it, or connect it to AI agents through MCP.

- 🏠 **Residential for sale**: houses, detached, semi-detached, terraced, bungalows, apartments and house and land
- 🔑 **To rent**: houses, apartments, room lets, student rentals, holiday homes and independent living
- 🏗️ **New homes and developments** with every house type, unit status and price
- 🏢 **Commercial**: offices, serviced offices, retail, industrial, pubs and restaurants, hotels and B\&Bs, businesses and parking
- 🌾 **Land, sites, farms and agricultural land**
- 🔨 **Residential and commercial auctions** with auction date and end time
- 📍 Counties, towns, areas and **BT postcode districts**, with radius search, in pounds (NI) or euros (ROI)
- 📉 **Delisting report**: see which listings sold, let or were withdrawn since your last run

### Why use this PropertyPal scraper?

- **Every page, not just the first.** Paste one URL and the Actor collects every matching listing, up to your limit. Searches bigger than PropertyPal's 3,000-result display limit are split into smaller areas automatically.
- **Price history and demand data**: every price and status change with dates, total views, views in the last 30 days and PropertyPal's "most viewed" ranking.
- **Rich media**: all photos, floor plans, videos, 360 tours and brochure PDFs.
- **New-build detail**: developments with each house type, status, price and amenities, plus show-home times.
- **Only new listings on repeat runs**: listings you already received are skipped and not charged.
- **Delisted-listing report**: find out which listings disappeared since the last run, and whether they were removed or went sale agreed.

Common uses:

- **Property market research** across Belfast, Derry, Lisburn, Newry, Dublin, Cork and the rest of Ireland
- **Price-drop and time-on-market tracking** using the price history
- **Estate agent lead generation**: active agents and developers with their public office phone numbers
- **Rental market monitoring**: rents, deposits, furnishing and availability dates by area
- **Investor deal sourcing**: auctions, sites, farms and commercial property
- **Property data for AI agents**: structured Irish listings for assistants and automations

### How to scrape PropertyPal property listings

#### Option 1: paste a PropertyPal URL (recommended)

1. Go to [propertypal.com](https://www.propertypal.com) and search for a town, county or postcode. Add filters if you like: price, bedrooms, property type, sort order and so on.
2. Copy the results URL from your browser, for example `https://www.propertypal.com/property-for-sale/belfast/bedrooms-3/price-100000-250000`.
3. Paste it into **PropertyPal search, agent or property URLs**, set **Maximum listings** and click **Start**.

You can paste as many URLs as you like in one run. These PropertyPal pages all work:

- Area results: `/property-for-sale/belfast`, `/property-to-rent/dublin`, `/property-for-sale/bt9`
- Type pages: `/detached-houses-for-sale/county-down`, `/apartments-to-rent/belfast`, `/offices-to-rent/…`, `/agricultural-land-for-sale/…`, `/student-rentals/…`, `/holiday-homes-to-rent/…`, `/residential-auctions/…`, `/new-developments/…`
- Filtered results: bedrooms, price and sort segments such as `/bedrooms-3/price-150000-plus/sort-dateHigh`, and query-string versions
- PropertyPal's filtered `/search?…` results, with every filter: radius, sale agreed / let agreed, heating, EPC/BER, garage, year built, internal area, furnishing and more
- Estate agent, letting agent and developer pages: `/estate-agents/<agent>`, `/letting-agents/<agent>`, `/new-homes-agents/<developer>`. You get all of that company's listings.
- Development pages, property pages and short links like `propertypal.com/1091926`

#### Option 2: use the optional search builder

Pick one or more **Listing types** and **Locations**, then add any of PropertyPal's filters: bedrooms, price or rent, radius, sale agreed / let agreed, heating, energy rating, internal area, year built, garage, furnishing and more. Each listing type is searched in every location. You can combine URLs and builder searches in one run, and duplicates are removed.

Download results as JSON, CSV, Excel or HTML, or read them through the API.

### Input

The main input is `startUrls`. The other search fields belong to the optional search builder.

| Field | Description |
|---|---|
| `startUrls` | **Main input.** Any PropertyPal results, type, agent, developer, development or property page. Every matching listing is collected. |
| `propertyTypes` | 45 listing types, from `property-for-sale` and `property-to-rent` to `detached-houses-for-sale`, `room-lets-to-rent`, `offices-to-rent`, `agricultural-land-for-sale`, `new-developments` and `commercial-auctions` |
| `locations` | 1,750+ PropertyPal locations: both countries, every county, towns, areas and BT postcode districts, such as `belfast`, `county-down`, `dublin`, `bt9` |
| `minBedrooms`, `maxBedrooms` | 1 to 10 |
| `minPrice`, `maxPrice` | Sale price steps from 20,000 to 2,000,000 (£ in NI, € in ROI) |
| `minRent`, `maxRent` | Monthly rent steps from 100 to 3,000 |
| `sortBy` | Most popular, newest, recently updated, lowest or highest price, fewest or most bedrooms, auction date |
| `radius` | This area only, or ¼ mile to 25 miles |
| `includeAgreed` | Also return sale agreed / let agreed listings |
| `heating` | Gas, oil, electric |
| `minEnergyRating` | EPC or BER rating from A to F "or better" |
| `furnishing` | Furnished, part furnished, unfurnished, furnished or unfurnished (rentals) |
| `minFloorAreaSqm`, `minYearBuilt`, `garage` | Minimum internal area (sq m), built in or after, has a garage |
| `excludePriceOnApplication`, `coOwnershipOnly`, `excludeNewHomes`, `excludeBuildingSites`, `excludeStudentLettings` | Extra filters |
| `maxItems` | Maximum number of saved listings (default 50) |
| `scrapeDetails` | Read each listing page for the description, key information, price history, views, videos, tours, brochures and joint agents (default on) |
| `includeImages` | Include photo URLs (default on) |
| `includeDuplicates` | Include listings from previous runs (default off) |
| `reportDelisted` | Report listings that disappeared since your last run of the same search (default on, free) |
| `proxyConfiguration` | Apify Proxy, on by default |

#### Example input: PropertyPal URLs

```json
{
  "startUrls": [
    { "url": "https://www.propertypal.com/property-to-rent/belfast/price-700-1200" },
    { "url": "https://www.propertypal.com/estate-agents/templeton-robinson" }
  ],
  "maxItems": 100
}
```

#### Example input: search builder

```json
{
  "propertyTypes": ["detached-houses-for-sale", "bungalows-for-sale"],
  "locations": ["lisburn", "bt9"],
  "radius": "3",
  "minBedrooms": "3",
  "maxPrice": "350000",
  "includeAgreed": true,
  "heating": ["gas"],
  "sortBy": "dateHigh",
  "maxItems": 500
}
```

### Output

Each listing is one dataset item. Fields that PropertyPal does not provide for a listing are left out rather than guessed.

#### Example listing

```json
{
  "listing_id": "1091926",
  "url": "https://www.propertypal.com/22-lismain-street-ravenhill-belfast/1091926",
  "short_url": "https://www.propertypal.com/1091926",
  "result_type": "property",
  "search_section": "Residential property for sale",
  "title": "3 Bed Terrace House",
  "listing_status": "forSale",
  "status_text": "For sale",
  "sale_type": "sale",
  "property_category": "Residential",
  "property_style": "Terrace House",
  "style_groups": [
    "All Houses",
    "Terraced houses",
    "Houses (Ex. Bungalows)"
  ],
  "price_text": "Offers Around £185,000",
  "price": 185000,
  "price_qualifier": "Offers Around",
  "price_type": "OFFERS_AROUND",
  "currency": "GBP",
  "address": "22 Lismain Street, Ravenhill, Belfast, BT6 8NN",
  "address_line1": "22 Lismain Street",
  "address_line2": "Ravenhill",
  "house_number": "22",
  "street": "Lismain Street",
  "town": "Belfast",
  "county": "Antrim",
  "postcode": "BT6 8NN",
  "incode": "8NN",
  "outcode": "BT6",
  "country": "Northern Ireland",
  "latitude": 54.5855232403996,
  "longitude": -5.90207610942238,
  "google_maps_url": "https://www.google.com/maps/search/?api=1&query=54.585523,-5.902076",
  "street_view_url": "https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=54.585523,-5.902076",
  "bedrooms": 3,
  "bathrooms": 1,
  "reception_rooms": 1,
  "size": "100 sq m (1,076.4 sq ft)",
  "floor_area_sqm": 100,
  "floor_area_sqft": 1076.4,
  "epc_rating": "E44/C79",
  "heating": "Oil",
  "broadband_max_download_mbps": 900,
  "broadband_max_upload_mbps": 110,
  "rates": "£1,005.10 pa",
  "co_ownership_eligible": true,
  "prime_listing": true,
  "listing_tier": "GOLD",
  "key_features": [
    "Three storey terrace house off Ravenhill Avenue",
    "Entrance hall with solid timber flooring",
    "Through lounge with bay window",
    "Extended kitchen",
    "…"
  ],
  "description": "• Three storey terrace house off Ravenhill Avenue\n• Entrance hall with solid timber flooring\n• Through lounge with bay window\n• Extended kitchen\n• 3 double bedrooms\n• Large bathroom\n• U.P.V.C. framed  …",
  "key_info": [
    {
      "name": "Status",
      "value": "For sale"
    },
    {
      "name": "Style",
      "value": "Terrace House"
    },
    {
      "name": "Bedrooms",
      "value": "3"
    }
  ],
  "price_history": [
    {
      "date": "2026-07-26T19:47:16+0100",
      "status": "For sale",
      "price": 185000,
      "price_change": false,
      "status_change": true
    }
  ],
  "date_added": "2026-07-26T19:47:16+0100",
  "date_updated": "2026-09-21T11:44:39+0100",
  "views_total": 5982,
  "views_last_30_days": 1381,
  "popularity_rank": "1st most viewed in East Belfast",
  "advertiser_type": "agent",
  "agent_name": "Pooler Estate Agents",
  "agent_account_number": "ST0409219",
  "agent_phone": "028 9045 3319",
  "agent_phone_international": "+44 28 9045 3319",
  "agent_address": "36 Cregagh Road, Belfast, BT6 9EQ",
  "agent_website": "https://www.poolerestateagents.com",
  "agent_profile_url": "https://www.propertypal.com/estate-agents/pooler-estate-agents",
  "agent_logo_url": "https://media.propertypal.com/logo/250319143934/400x400/ST0409219/master.png",
  "main_image_url": "https://media.propertypal.com/hd/p/1090726/44621558.jpg",
  "images": [
    "https://media.propertypal.com/hd/p/1090726/44621558.jpg",
    "https://media.propertypal.com/hd/p/1090726/44621567.jpg",
    "…"
  ],
  "image_count": 31,
  "floorplans": [
    "https://media.propertypal.com/hd/p/1090726/44621555.jpg",
    "https://media.propertypal.com/hd/p/1090726/44621554.jpg",
    "https://media.propertypal.com/hd/p/1090726/44621556.jpg"
  ],
  "floorplan_url": "https://media.propertypal.com/hd/p/1090726/44621555.jpg",
  "detail_page_complete": true,
  "scraped_at": "2026-09-28T09:00:00+00:00",
  "seen_in_previous_run": false
}
```

#### Output fields

| Group | Fields |
|---|---|
| Listing | `listing_id`, `url`, `short_url`, `result_type` (property or development), `search_section`, `title`, `tagline`, `listing_status`, `status_text`, `sale_type`, `property_category`, `property_style`, `style_groups`, `featured`, `premium_listing`, `prime_listing`, `listing_tier`, `coming_soon` |
| Price | `price_text`, `price`, `price_min`, `price_max`, `price_qualifier`, `price_type`, `rent_frequency`, `currency` (GBP or EUR), `price_on_application` |
| Address | `address`, `address_line1`, `address_line2`, `building_name`, `unit_number`, `house_number`, `street`, `town`, `county`, `postcode`, `incode`, `outcode`, `country`, `latitude`, `longitude`, `google_maps_url`, `street_view_url` |
| Property | `bedrooms`, `bathrooms`, `reception_rooms`, `size`, `floor_area_sqm`, `floor_area_sqft`, `tenure`, `epc_rating`, `ber_rating`, `heating`, `broadband_max_download_mbps`, `broadband_max_upload_mbps`, `land_type`, `co_ownership_eligible`, `cash_sale_only` |
| Costs and rentals | `rates`, `rent_includes_rates`, `stamp_duty`, `deposit`, `lease_term`, `furnishing`, `available_from`, `viewable_from` |
| Description | `key_features` (the bullet points at the top of the listing), `description`, `key_info` (the key information table as shown) |
| History and demand | `price_history` (date, status, price, previous price, change %), `date_added`, `date_updated`, `views_total`, `views_last_30_days`, `popularity_rank` |
| Auctions | `auction_date`, `auction_end`, `auction_venue`, `auction_lot` |
| New homes | `development_name`, `development_url`, `total_units`, `available_units`, `development_homes`, `units`, `amenities`, `show_home_opening_times` |
| Agent | `advertiser_type` (agent, developer or private), `agent_name`, `agent_branch`, `agent_account_number`, `agent_phone`, `agent_phone_international`, `agent_address`, `agent_website`, `agent_profile_url`, `agent_licence_number`, `agent_logo_url`, `other_agents` |
| Media | `main_image_url`, `images`, `image_count`, `floorplans`, `floorplan_url`, `video_urls`, `virtual_tour_urls`, `brochures` |
| Run | `seen_in_previous_run`, `detail_page_complete`, `scraped_at` |

The Output tab has two views: **Overview** and **Prices and demand**. A `RUN_SUMMARY` record in the key-value store lists property URLs that are no longer listed (`unavailable_urls`) and any that could not be loaded (`failed_urls`). The `DELISTED_LISTINGS` record holds the delisting report (see below).

### Pagination, duplicates and new-listing monitoring

- The Actor reads each search page by page (12 listings per page) until it reaches the end of the results or your **Maximum listings**. PropertyPal shows at most 250 pages for one search. Bigger searches, such as all of Northern Ireland, are split into PropertyPal's own sub-areas with the same filters, so nothing is cut off.
- **Within a run**, each listing is saved once, even if it appears in several searches.
- **Across runs**, the Actor remembers the listings it has already saved for your account and skips them by default, so scheduled runs only return and charge for **new listings**. Turn on **Include listings from previous runs** to get everything again; `seen_in_previous_run` tells you which ones you had before. The history is kept in a dataset named `propertypal-history-<your user ID>` in your own Apify account.

### Delisted-listing report

Scheduled runs also tell you which listings **disappeared** since the last run of the same search, so you can track sales, lets and withdrawn properties.

- The Actor remembers every listing each search returned. On the next run of the same URL or builder search, listings that are no longer in the results are saved to the `DELISTED_LISTINGS` record in the run's key-value store (also linked from the Output tab).
- Each one is re-checked on PropertyPal and gets a `reason`: `removed_from_propertypal` (the listing page is gone) or `no_longer_matches_search`, with its `current_status` and `current_price_text`. For example, a home that went **Sale agreed** drops out of a for-sale search unless you include agreed listings.
- Every entry keeps the `address`, `last_price_text`, `last_status`, `last_seen_at` and the `search_url` it came from.
- The report is free: it is not charged as results. It needs the whole search to be read, so set **Maximum listings** above the number of results. Searches cut short by the limit are skipped for that run and compared again next time.

### Use the PropertyPal scraper through the API

```bash
curl -X POST "https://api.apify.com/v2/acts/vivid-softwares~propertypal-ireland-property-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls": [{"url": "https://www.propertypal.com/property-for-sale/belfast"}], "maxItems": 20}'
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("vivid-softwares/propertypal-ireland-property-scraper").call(run_input={
    "propertyTypes": ["property-to-rent"],
    "locations": ["belfast", "bt9"],
    "maxRent": "1200",
    "maxItems": 100,
})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(listing["price_text"], listing["address"], listing.get("available_from"))
```

#### JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('vivid-softwares/propertypal-ireland-property-scraper').call({
    startUrls: [{ url: 'https://www.propertypal.com/property-for-sale/dublin/sort-dateHigh' }],
    maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((home) => `${home.price_text} - ${home.address} (${home.views_total ?? 0} views)`));
```

### Property data for AI agents and MCP

The Actor works with the [Apify MCP server](https://mcp.apify.com), so assistants such as Claude, ChatGPT or Cursor can call it as a tool. Add `vivid-softwares/propertypal-ireland-property-scraper` to your MCP configuration and ask, for example:

- "List 3-bed houses for sale in South Belfast under £250,000 that dropped in price this month."
- "Which new developments in County Down still have homes available, and at what prices?"
- "Find the most viewed apartments to rent in Dublin added this week."

### How this PropertyPal scraper compares

We checked every other PropertyPal Actor in Apify Store in September 2026. This is what you get here that you won't find in one place anywhere else:

| What you get | This Actor | Other PropertyPal Actors in Apify Store |
|---|:---:|:---:|
| Northern Ireland **and** the Republic of Ireland (£ and €) | ✅ | 1 of 3 |
| Every listing page read in full: description, key information, price history | ✅ | 2 of 3 |
| Page views, views in the last 30 days and "most viewed" ranking | ✅ | None |
| Floor plans, videos and 360 tours as separate, ready-to-use fields | ✅ | None |
| New-build developments with every house type, status and price | ✅ | None |
| Clean, flat, documented fields (not raw website data) | ✅ | 2 of 3 |
| Many URLs in one run, **plus** a search builder with every PropertyPal filter | ✅ | None |
| Big searches split automatically past PropertyPal's 3,000-result display limit | ✅ | None |
| Only new listings on repeat runs | ✅ | 1 of 3 |
| Skipped repeat listings cost nothing (pay per result) | ✅ | None |
| Delisting report that says **why** a listing went: removed, or sale agreed / let agreed | ✅ | None |
| Pay only for results, no monthly rental | ✅ | 2 of 3 |

In short: one run gives you the market (every listing, in full), the demand (views and rankings), the history (price changes and delistings) and the contacts (all agents on the listing), at $12.50 per 1,000 listings.

### How much does it cost to scrape PropertyPal?

This Actor uses **pay-per-event** pricing: **$12.50 per 1,000 property listings**, which is $0.0125 for each listing saved to the dataset. You are not charged for search pages, retries, invalid input, listings that are no longer available, or listings skipped because you already received them. For example, 500 Belfast listings cost $6.25.

### Tips

- Paste the area or type URL you see on PropertyPal. Bedrooms, price and sort in the URL are applied on PropertyPal itself, which is the fastest option.
- **Speed:** with full details the Actor reads about 10 listings a second at the default 1 GB memory (1,000 listings in under 2 minutes), and about 13 a second at 2 GB. Pick more memory under **Run options** for very large runs.
- Turn off **Get full listing details** for even faster runs. You keep prices, addresses, rooms, EPC/BER, heating, photos, floor plans and agent contacts, but not the description, key information, price history, views, videos, tours or brochures.
- Schedule a daily run to monitor a market: only new listings are returned and charged, and `DELISTED_LISTINGS` shows what sold, let or was withdrawn.

### Data limitations

- **Private sellers and landlords** are contacted through PropertyPal's forms. Their contact details are never returned; these listings have `advertiser_type: private`.
- PropertyPal shows no phone number on some developer listings. In that case `agent_phone` is left out, and the selling agents' public numbers appear in `other_agents`.
- Size, tenure, rates, deposit, broadband and the other detail fields are only present when the advertiser or PropertyPal provides them.
- Views and popularity rankings are PropertyPal's own figures at the time of the run.

### Public contact data policy

The Actor only returns contact details that PropertyPal shows publicly for businesses: the agent's or developer's **office phone number, address and website**. It never returns private sellers' or landlords' details, staff emails, or anything behind a contact form. If you use agent contact data for outreach, follow UK GDPR, PECR and Irish data protection rules.

### FAQ

**What is the best PropertyPal scraper on Apify?** For complete data, this one. It is the only PropertyPal Actor in Apify Store that returns page views and popularity rankings, floor plans, videos and 360 tours as separate fields, development house types, and a delisting report with reasons. It covers both Northern Ireland and the Republic of Ireland, and on repeat runs you pay only for new listings. See the comparison above.

**Is there an official PropertyPal API?** PropertyPal does not offer a public listings API. This Actor gives you structured PropertyPal data through the Apify API.

**Is it legal to scrape PropertyPal?** The Actor collects publicly available listing information and paces its requests. You are responsible for how you use the data, including data protection rules. If in doubt, ask a lawyer.

**Does it cover the Republic of Ireland?** Yes. ROI listings come with prices in euros and BER ratings. Pick Irish counties and towns in the builder, or paste any PropertyPal URL for an Irish area.

**Can I scrape by postcode?** Yes. Pick Northern Ireland BT postcode districts such as BT9 in the builder, or paste `propertypal.com/property-for-sale/bt9`.

**Does it get more than the first page of results?** Yes. It collects every matching listing up to your limit, and splits very large searches so nothing is lost.

**Does it return duplicate listings?** No. Listings are de-duplicated within a run, and listings from your previous runs are skipped by default.

**Can you add a field or a custom version?** Open an issue on the Issues tab.

*This Actor is not affiliated with, endorsed by or connected to PropertyPal.*

# Actor input Schema

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

The easiest way to use this Actor: search on <a href="https://www.propertypal.com" target="_blank">propertypal.com</a>, then paste the results URL here. Every matching listing is scraped, not just the first page. Works with area pages (propertypal.com/property-for-sale/belfast), filtered searches, agent and developer pages, development pages and single property pages. Leave empty to use the search builder below.

## `propertyTypes` (type: `array`):

Optional search builder, used instead of or as well as URLs. Pick one or more listing types; each is searched in every location.

## `locations` (type: `array`):

The search builder runs only when you pick at least one location. Counties, towns, areas and Northern Ireland postcode districts across Northern Ireland and the Republic of Ireland.

## `minBedrooms` (type: `string`):

Minimum number of bedrooms.

## `maxBedrooms` (type: `string`):

Maximum number of bedrooms.

## `minPrice` (type: `string`):

For sale searches. In £ for Northern Ireland and € for the Republic of Ireland.

## `maxPrice` (type: `string`):

For sale searches.

## `minRent` (type: `string`):

For rental searches.

## `maxRent` (type: `string`):

For rental searches.

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

Order of results.

## `radius` (type: `string`):

Include listings within this distance of each location.

## `includeAgreed` (type: `boolean`):

Also return listings that are sale agreed or let agreed, as PropertyPal’s own checkbox does.

## `heating` (type: `array`):

Only listings with one of these heating types.

## `minEnergyRating` (type: `string`):

Only listings with this EPC or BER rating or better.

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

Rentals only.

## `minFloorAreaSqm` (type: `integer`):

Only listings with at least this internal area in square metres (1 sq m = 10.76 sq ft).

## `minYearBuilt` (type: `integer`):

Only homes built in or after this year.

## `garage` (type: `boolean`):

Only listings with a garage.

## `excludePriceOnApplication` (type: `boolean`):

Leave out listings without a published price.

## `coOwnershipOnly` (type: `boolean`):

Northern Ireland sales: only homes eligible for Co-Ownership.

## `excludeNewHomes` (type: `boolean`):

Sales: leave out new-build developments.

## `excludeBuildingSites` (type: `boolean`):

Sales: leave out building sites.

## `excludeStudentLettings` (type: `boolean`):

Rentals: leave out student lets.

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

Stop after saving this many listings. Each saved listing is one billable result.

## `scrapeDetails` (type: `boolean`):

Reads each listing page for the description, key information, price history, views, videos, tours, brochures and joint agents. Turn off for much faster runs with the search-result fields only.

## `includeImages` (type: `boolean`):

Return full-size photo URLs for each listing.

## `includeDuplicates` (type: `boolean`):

Off by default: listings you already received in an earlier run are skipped and not charged, so scheduled runs only return new listings. Turn on to get every matching listing again.

## `reportDelisted` (type: `boolean`):

Remembers every listing each search returns. On the next run of the same search, listings that have gone are saved to the DELISTED\_LISTINGS record with the reason: removed from PropertyPal, or still listed but no longer matching (for example now sale agreed). Free. Works when the whole search is read, so set Maximum listings above the search size.

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

Apify Proxy is recommended on the Apify platform.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.propertypal.com/property-for-sale/belfast"
    }
  ],
  "propertyTypes": [
    "property-for-sale"
  ],
  "minBedrooms": "",
  "maxBedrooms": "",
  "minPrice": "",
  "maxPrice": "",
  "minRent": "",
  "maxRent": "",
  "sortBy": "",
  "radius": "",
  "includeAgreed": false,
  "minEnergyRating": "",
  "garage": false,
  "excludePriceOnApplication": false,
  "coOwnershipOnly": false,
  "excludeNewHomes": false,
  "excludeBuildingSites": false,
  "excludeStudentLettings": false,
  "maxItems": 50,
  "scrapeDetails": true,
  "includeImages": true,
  "includeDuplicates": false,
  "reportDelisted": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `listings` (type: `string`):

No description

## `delisted` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# 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 = {
    "startUrls": [
        {
            "url": "https://www.propertypal.com/property-for-sale/belfast"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("vivid-softwares/propertypal-ireland-property-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 = {
    "startUrls": [{ "url": "https://www.propertypal.com/property-for-sale/belfast" }],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("vivid-softwares/propertypal-ireland-property-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 '{
  "startUrls": [
    {
      "url": "https://www.propertypal.com/property-for-sale/belfast"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call vivid-softwares/propertypal-ireland-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vivid-softwares/propertypal-ireland-property-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/0nyikgpg3Rk51voCR/builds/60BuD26LmiFWrN6Fr/openapi.json
