Daft.ie Scraper avatar

Daft.ie Scraper

Pricing

from $2.40 / 1,000 results

Go to Apify Store
Daft.ie Scraper

Daft.ie Scraper

Irish property listings from daft.ie as clean JSON: price, bedrooms, bathrooms, floor area, BER rating, stamp duty, price per m², area, county, photos; listing pages add description, features, dates and rental terms. Agent or private as a flag; contact data never collected. Pay per result.

Pricing

from $2.40 / 1,000 results

Rating

0.0

(0)

Developer

Lowland Data

Lowland Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Daft.ie Scraper — Irish property listings for sale, rent and sharing, GDPR-safe

Extract property listings from daft.ie — Ireland's largest property portal — as clean, structured JSON. Price, bedrooms, bathrooms, floor area, BER rating, stamp duty, price per square metre, facilities, posting time, area, county and photos on every row; the seller's description and feature list, the first-posted and updated dates, the view counter and, on rentals, availability, furnishing, lease length and the price history when you ask for the listing pages. Homes for sale, homes for rent and rooms in shared homes, from one actor. Ready for price monitoring, investment screening, market research and data pipelines.

No agent or landlord personal data, ever. This scraper is built GDPR-first: agent names, phone numbers, licence numbers, logos, street addresses, eircodes and coordinates never appear in the output — not as an option you have to remember to switch off, but by design. The only seller information included is whether the listing comes from an agent or a private owner.

Quick start (30 seconds)

  1. Put the place into place — e.g. dublin-city, cork-city, galway, an area such as blackrock-dublin, a Dublin district such as dublin-6-dublin, or ireland for the whole country.
  2. Click Start. That's the whole minimum setup: homes for sale, newest first.
  3. When the run finishes, open the dataset's Overview tab for a clean table, or Export it as CSV/Excel/JSON.

Switch offerType to rent or share, add price and bedroom filters, keep sortBy on newest and put the run on a schedule for a daily watch.

What you can build with it

  • Screen a county for investment homes. Search place: cork-city, offerType: buy, priceMaxEur: 300000, bedsMin: 2 and get every matching listing with priceCents, pricePerSqmCents, floorAreaSqm, berRating, stampDutyCents and area — a yield screen in one run.
  • Watch an area for new listings. Keep sortBy: newest, cap maxItems at a page, and schedule the run daily; the newest Blackrock houses land in your sheet or Slack with the price already parsed and postedAt on every row.
  • Follow the rental market. offerType: rent on dublin-city returns the rent as priceCents with its period, and the listing page adds availableFrom, furnished, leaseLength and the site's own priceHistory, so a rent index per district is a pivot table away.
  • Feed an AI agent clean data. Every field is structured, predictable and free of personal data, so an assistant or pipeline can consume it directly — no scrubbing, no compliance review before you store it.

What you get

Each listing is one dataset item:

{
"listingId": "6701188",
"url": "https://www.daft.ie/for-sale/keady-galleon-stillorgan-park-blackrock-co-dublin/6701188",
"propertyType": "Detached",
"category": "Residential / House / Detached House",
"offerType": "buy",
"priceCents": 129500000,
"currency": "EUR",
"priceDisplay": "€1,295,000",
"bedrooms": 4,
"bedroomsDisplay": "4 Bed",
"bathrooms": 2,
"floorAreaSqm": 166,
"berRating": "E",
"sellingType": "By Private Treaty",
"stampDutyCents": 1590000,
"pricePerSqmCents": 780000,
"featuredLevel": "featured",
"status": "published",
"postedAt": "2026-10-22T06:40:56.194Z",
"facilities": ["Parking"],
"area": "Blackrock",
"county": "Dublin",
"countryCode": "IE",
"sellerType": "professional",
"imageUrls": ["https://media.daft.ie/eyJidWNrZXQi...jpg"]
}

With Fetch listing pages on (or for listings named in listingIds), each item also carries the seller's description and features, firstPostedAt, updatedAt, views and, on rentals, availableFrom, furnished, leaseLength and priceHistory — the listing page's whole fact sheet.

Field notes, so you know exactly what you are buying:

  • priceCents is the asking price on sales and the rent on rentals and rooms, with pricePeriod saying month or week. A price the site quotes as "From" carries priceFrom: true; a price on application has no priceCents at all.
  • pricePerSqmCents and stampDutyCents are the site's own figures, present on sales.
  • bedrooms and bathrooms are counts; bedroomsDisplay keeps the site's label, which on rooms is the room kind (Double Room).
  • berRating is the Building Energy Rating, A1 to G, or exempt.
  • postedAt is a full timestamp on search rows and a date on listing pages.
  • area, county and postalDistrict are locality-level: the house, the street, the eircode and the coordinates are never collected, for agents as for private owners, even where the site publishes the full address.
  • offerType is buy, rent or share; category is the site's own section path.
  • listingId is the number at the end of the listing address. listingIds takes the number or the whole address.

How much does it cost to scrape daft.ie?

$3.00 per 1,000 listings delivered, pay-as-you-go: no subscription, and you pay per result rather than per hour. A run that finds nothing still costs the $0.005 actor start. In plain dollars:

  • 100 listings ≈ $0.30 — a daily area watch.
  • 500 listings ≈ $1.50 — a solid town snapshot.
  • A 4,000-listing crawl ≈ $12.00 — a whole city, deduplicated.

The price is all-inclusive: your runs' platform usage, including the residential proxy, is covered by it. daft.ie answers only requests from consumer networks, so the actor runs through an Apify residential proxy by default — that is the form's default, nothing to configure, and nothing extra on the bill.

Free-plan runs are limited to a sample of 5 items, enough to evaluate the output format against your real query.

Not technical? Let your AI assistant set it up

Copy this into ChatGPT, Claude or any AI assistant, fill in the one line, and follow the conversation:

Help me set up the "Daft.ie Scraper" actor on Apify
(https://apify.com/lowlanddata/daft-scraper). Guide me one step at a time.
What I want to watch: [E.G. "2-bed apartments for sale in Dublin under 400,000 euro"]
Guide me to:
1. Propose my input values: place (a town, area or county as the site names it, e.g.
dublin-city, cork-city or blackrock-dublin), offerType (buy, rent or share), the
price and bedroom filters I need, sortBy "newest" for monitoring, and maxItems.
2. Decide whether I need scrapeDetails (the description, feature list, dates and
rental terms from each listing page) or whether the search rows are enough.
3. Create a free Apify account (apify.com), open the actor page, paste the values
into the Input form, and start a run.
4. Set up a daily Schedule in the Apify Console with the same input, plus an email
or Slack integration so new results reach me automatically.
5. Show me how to export results as CSV/Excel, or read them from the API if I code.
6. If the results are what I wanted, remind me at the end to leave a quick rating on the actor page, and to report anything broken or missing on its Issues tab.

Input

FieldDescription
placeTown, area or county as the site names it (dublin-city, cork-city, galway, blackrock-dublin, dublin-6-dublin), or ireland. The display name (Blackrock, Dublin) works too.
offerTypebuy (default), rent or share.
listingIdsRe-check known listings by id or address instead of searching; each read from its own page; gone listings are skipped and not billed. Up to 50.
priceMinEur, priceMaxEurPrice band in euros (asking price, or monthly rent).
bedsMin, bedsMaxBedroom count band.
sortBynewest (default), price_asc, price_desc, relevance.
maxItemsStop after this many listings (default 1000).
scrapeDetailsRead each listing's page for the full fact sheet. One extra request per listing.

A run needs a place or a list of listingIds; anything else is optional. An unknown place or an inverted band fails before the run starts, with the reason in the status message.

Finding a place

Type the place as the site spells it in its addresses: https://www.daft.ie/property-for-sale/blackrock-dublin means place: blackrock-dublin. Towns are town-county (blackrock-dublin, abbeyfeale-limerick), the cities are dublin-city, cork-city, galway-city, limerick-city, Dublin districts are dublin-6-dublin, a county is its name (galway, kerry), and ireland is the whole country. The display name the site shows works as well, and a bare dublin or cork is read as the city.

Use it from your code

Run the actor and get items straight back with one HTTP call (fine for scoped runs up to ~5 minutes):

curl "https://api.apify.com/v2/acts/lowlanddata~daft-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-X POST -H "Content-Type: application/json" \
-d '{"place": "dublin-city", "offerType": "buy", "maxItems": 100}'

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('lowlanddata/daft-scraper').call({
place: 'dublin-city',
offerType: 'buy',
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lowlanddata/daft-scraper").call(
run_input={"place": "dublin-city", "offerType": "buy", "maxItems": 100})
items = client.dataset(run["defaultDatasetId"]).list_items().items

For large crawls, start the run asynchronously and fetch the dataset when the finished-run webhook fires. Schedules (e.g. a daily price snapshot), webhooks and the Make/Zapier/n8n integrations all work out of the box — this is a standard Apify actor.

Use it with AI agents (MCP)

Claude, Cursor and other MCP-capable agents can run this scraper as a tool through Apify's hosted MCP server: the agent fills in the search itself, starts the run and reads the results — no glue code.

Claude Code:

$claude mcp add apify --transport http "https://mcp.apify.com?actors=lowlanddata/daft-scraper"

Cursor or Claude Desktop (add a custom connector / MCP server with this URL):

https://mcp.apify.com?actors=lowlanddata/daft-scraper

Sign in with your Apify account when prompted — runs are billed to it. Setup details per client: Apify MCP docs, or start from this actor's own MCP page: apify.com/lowlanddata/daft-scraper/api/mcp.

Prompts that work once connected:

  • "Find the 50 cheapest two-bed apartments for sale in Dublin on daft.ie and give me the price per square metre by district."
  • "Snapshot every house for sale in Cork city and tell me the median price and the share rated BER D or worse."
  • "List today's newest rentals in Galway under 1,800 euro on daft.ie and flag any that are furnished."

Beyond the first page

daft.ie serves 20 listings a page and 49 pages of any one query — 980 listings. Below that, every page comes through up to the count the site reports. Above it, when maxItems asks for more, the run splits the query by price band until every band fits the window and walks the bands one by one, so a county with thousands of homes still comes through whole. Narrow queries (an area, a price band, a bedroom count) run in seconds; a whole city is a few minutes of paced pages.

Public listing data — prices, areas, energy ratings, localities, photos — is public commercial information, and this scraper is built so that the hard part of the question never arises: no personal data enters your dataset in the first place. The Irish Data Protection Commission is strict on personal data; an output that carries none is the point of this actor, not an afterthought.

The output is produced by a whitelist: only named, non-personal fields are read from each listing; the seller block — agent, phone numbers, licence number, logos, profile image — and the street, the eircode and the coordinates are never touched, for agents as for private owners, and a test on every build fails if any of them appears. Requests are paced, run through a residential proxy as a visitor's would be, and nothing is done to defeat the site's access controls.

One honest limit: descriptions and feature lists are the seller's own words, delivered as-is. If a seller chooses to type an address or contact details into their text, that text is not rewritten — the guarantee covers the data fields, not the content sellers publish about themselves.

Is there a daft.ie API alternative?

daft.ie publishes no public API for its listings. This actor is the practical alternative: the same listings as structured JSON through one HTTP call (run-sync-get-dataset-items), on a schedule, or as an MCP tool for AI agents — with the GDPR question already answered in the data itself.

Does daft.ie block scrapers?

daft.ie serves its search results and listing pages to ordinary consumer traffic, with the data embedded in the page, and answers requests from datacenter networks with a security check. This actor stays inside that welcome: it reads the pages the way a visitor does, through a residential exit, paced, with the load kept negligible. No CAPTCHA fights, no bot-wall cat-and-mouse — which is also why runs are fast and reliable enough for daily schedules. Should the site refuse a request anyway, the run retries on a fresh proxy exit a few times, then stops and says in its status how many listings it collected.

How do I monitor daft.ie prices?

Keep sortBy: newest with your place and filters, cap maxItems to a page or two, and add a daily (or hourly) Schedule in the Apify Console with an email/Slack integration on the runs — every new listing lands in your inbox with the price already parsed. To follow particular listings over time, put their ids into listingIds: each run returns their current price and status, and a sold or withdrawn listing is reported in the log and not billed. The AI-assistant prompt above walks a non-technical user through exactly this setup.

FAQ

Can I get agent or landlord contact details? No — by design. That is the product: data you can store, share and process without a GDPR review. The output tells you only whether the listing comes from an agent or a private owner.

Which sections does it cover? Homes for sale, homes for rent and rooms in shared homes, chosen with offerType. Same columns on all three.

Can I get only the newest listings? Sort by newest and cap maxItems; every row carries postedAt, so a daily schedule with a small cap is a daily watch.

How fresh is the data? Live at run time — every run queries the site directly. For continuous freshness, schedule the actor.

Can I export to Excel or CSV? Yes — every dataset exports as CSV, Excel, JSON or XML from the Apify Console or API.

What happens on a big county? The site serves 980 listings per query. The run walks them 20 a page until maxItems; raise it above 980 and the query is split by price band so the whole county comes through.

Do I get the full fact sheet? Search rows carry price, bedrooms, bathrooms, floor area, BER rating, stamp duty, price per m², facilities, posting time, area and county. Turn on scrapeDetails for the listing page's description, feature list, dates, view counter and, on rentals, availability, furnishing, lease length and price history.

Do I need residential proxies for daft.ie? Yes, daft.ie only answers requests from consumer networks. The actor's default proxy setting is already an Apify residential proxy; leave it as it is. The price covers it.

Does it work with Make, Zapier or n8n? Yes — it is a standard Apify actor; all platform integrations, webhooks and schedules apply.

Working the property markets of the British Isles? The same GDPR-clean guarantee, same output shape:

Troubleshooting

The actor fails fast with the reason in the run's status message:

  • "Daft knows no place called ..." — spell the place as the site's addresses do (dublin-city, blackrock-dublin, galway); the message lists the closest matches.
  • "Provide a place to search (e.g. dublin-city), or the listingIds to re-check." — the form was submitted without either.
  • "Daft returned no readable results before anything could be fetched." — the site refused every proxy exit tried; retry in a few minutes.
  • Fewer items than requested on a free plan — the 5-item free sample cap; run on a paid Apify plan for full results.

Support

Found an issue or missing a field you need? Open an issue on the actor's Issues tab — reports get fixed, this actor is actively maintained.

Working well for you? A rating on this page takes ten seconds and helps other buyers find a GDPR-clean option among the lookalikes — it is also the clearest signal of what we should build next.