DoneDeal Scraper

Irish classified ads from donedeal.ie as clean JSON: cars first, every section on request. Price, year, mileage, county, town, seller type, photos; ad...

Irish classified ads from donedeal.ie as clean JSON: cars first, every section on request. Price, year, mileage, county, town, seller type, photos; ad pages add make, model, attributes and features. Seller names, phones and addresses never collected. Pay per result.

$3.00 / 1,000 · Recently published - building its public record.

Run it on Apify → Free to try - runs bill per result on your own account.

What you give it

Every field is optional unless marked; sensible defaults do the rest.

FieldTypeWhat it doesDefault
section string The site section to search, as its address spells it: cars (default), motorbikes, tractors, farming, commercials, furniture, or all for every section. The section path of any search page on the site works. cars
make string Vehicle make, spelled as the site does: Toyota, BMW, Mercedes-Benz. Vehicle sections only. -
model string Vehicle model under the make: Corolla. Needs make. -
keywords string Words to search for in the ads, the way the site's search box takes them. -
county string Only ads in this county: Dublin, Cork, Galway, ... the 32 counties as the site names them. Leave empty for all of Ireland. -
listingIds array Re-check ads you already know instead of searching: one per line, as the number at the end of the ad address (the listingId of every dataset item) or the ad's full address. Each one is read from its own page, so it carries the description, every attribute, the feature list and the dates. An ad that is gone from the site is skipped, named in the log and not billed. When given, the search fields of this form are ignored and the run status says which. Up to 50. []
priceMinEur integer Only include ads priced at least this many euros. -
priceMaxEur integer Only include ads priced at most this many euros. -
yearMin integer Vehicles from this year on. -
yearMax integer Vehicles up to this year. -
mileageMinKm integer Vehicles with at least this mileage. -
mileageMaxKm integer Vehicles with at most this mileage. -
fuelType string As the site names it: Petrol, Diesel, Electric, Petrol hybrid, Diesel hybrid, Plug-in hybrid. -
transmission string Manual or automatic. -
sellerType string Only private sellers, or only dealers and traders. -
adType string Ads offering something for sale, or wanted ads. -
sortBy string Order of results: newest (best for monitoring), oldest, price_asc, price_desc, mileage_asc, mileage_desc, or relevance (the site's own order). newest
maxItems integer Stop after this many ads. Free-plan runs are capped at 5 items. The form starts at 25 for a cheap first run - that is the form's prefill, not a cap on your plan; clear it to use the default of 1000. The site serves a window of ads per query; above it the run splits the query by price band, so a whole section comes through when you raise it. 1000
scrapeDetails boolean The search row carries the title, price, year, mileage, county, town, posting time and cover photo. Turn this on to read each ad's own page for the description, make, model and every attribute (fuel, transmission, body, engine, colour, owners, NCT, road tax, ...), the feature list, every photo, the price drop, the dates and the view counter. One extra request per ad, so a run is slower. Seller names, phone numbers, dealer addresses and coordinates are never read. False
reportFailures boolean When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. Your input itself, your results and your identity are never sent, and successful runs send nothing at all. Switch this off and the actor behaves exactly the same. True

What you get back

One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.

FieldTypeMeaning
listingId string The site's id of the ad, the number at the end of its address.
url string Direct link to the ad.
title string The ad's title.
section string The site's section path of the ad: cars, motorbikes, tractors, livingroom, ...
sectionLabel string The section as the site labels it.
priceCents integer Asking price in euro cents.
currency string Always EUR when a price is present.
priceDisplay string The price as the site displays it.
priceOnRequest boolean True when the seller asks for offers instead of naming a price.
summary array The site's key facts line: year, engine, mileage on vehicles.
year integer Year of the vehicle.
mileageKm integer Mileage in kilometres.
county string County of the ad.
town string Town of the ad. Locality-level only: street, eircode and coordinates are never collected.
postedAt string When the ad was (last) published (ISO timestamp).
age string Age of the ad as the site shows it.
spotlighted boolean True when the seller paid for a spotlight placement.
historyVerified boolean True when the site's Greenlight check verified the vehicle's history.
sellerType string Whether the ad comes from a dealer or trader, or a private seller. The only seller-related field in the output.
imageUrls array Photos of the ad, in the site's order (the cover photo on search rows, every photo on ad pages).
description string The seller's description. Ad pages only.
make string Vehicle make. Ad pages only.
model string Vehicle model. Ad pages only.
trim string Trim as the site states it. Ad pages only.
bodyType string Body type. Ad pages only.
fuelType string Fuel type. Ad pages only.
transmission string Transmission. Ad pages only.
engineSize string Engine size as the site states it. Ad pages only.
enginePower string Engine power as the site states it. Ad pages only.
seats string Seats. Ad pages only.
doors string Doors. Ad pages only.
colour string Colour. Ad pages only.
owners string Number of owners. Ad pages only.
countryOfRegistration string Current country of registration. Ad pages only.
imported string Whether the vehicle was imported, as the site states it. Ad pages only.
roadTax string Annual road tax in euros, as the site states it. Ad pages only.
nctExpiry string NCT expiry as the site states it. Ad pages only.
attributes object Every attribute the site lists for the ad, by the site's own key. Ad pages only.
features object The vehicle's feature list, grouped as the site groups it. Ad pages only.
previousPriceCents integer The earlier asking price when the site shows a price drop. Ad pages only.
firstPostedAt string When the ad first went up. Ad pages only.
updatedAt string When the ad was last updated. Ad pages only.
status string The site's own status, e.g. published. Ad pages only.
wanted boolean True when the ad is a wanted ad rather than a sale. Ad pages only.
deliveryAvailable boolean True when the seller offers delivery. Ad pages only.
photoCount integer Number of photos on the ad. Ad pages only.
views integer The site's view counter. Ad pages only.

Health

Recently published - building its public record. Live record, failures included: status page.

Full documentation, examples and the AI-assistant prompt live on the store page.

Questions

Is scraping donedeal.ie legal?

This is not legal advice. The actor reads what any logged-out visitor sees on donedeal.ie, with no login, no CAPTCHA solving and no private endpoints, and it extracts no seller name, user id, phone number, dealer address or coordinates, so the output holds no personal data. Whether your own use of the ads is allowed under the site's terms and your jurisdiction's rules is yours to assess.

Which sections can I search?

Any section path of the site: cars (default), motorbikes, tractors, farming, commercials, furniture, or all for every section at once, plus a make and model under the vehicle sections (Toyota, Corolla) and keywords the way the site's search box takes them. An unknown section fails before anything is billed, with the rule in the message.

Can I get only the newest ads?

Sort by newest, keep maxItems to a page or two and schedule the run: each run returns the latest ads for the section, county and filters you set, and every row carries postedAt, so a daily watch is one schedule away.

How much do 10,000 ads cost?

$30.00, billed per delivered ad at $3.00 per 1,000. That price covers the run's platform usage, and a run that fails or returns nothing bills nothing beyond the actor start.

Do I need residential proxies for donedeal.ie?

No setup on your side: the site answers only consumer networks, so the actor's default proxy is already an Apify residential proxy, and the per-result price covers it. Leave the proxy setting as it is.

Does it return seller or dealer phone numbers?

No. The only seller field is whether the ad comes from a dealer or trader, or a private seller. Seller names, user ids, phone numbers, dealer addresses and coordinates are never extracted, and a test on every build fails if one ever appears, so this is not a setting that can be switched off.

What does the ad page add?

Every search row carries the title, price, year, mileage, county, town, posting time, seller type and cover photo. Turn on scrapeDetails, or name ads in listingIds, and each row also carries the description, the make, model and every attribute the site lists (fuel, transmission, body, engine, colour, owners, NCT expiry, road tax), the feature list, every photo, the earlier price when the site shows a drop, the first-posted and updated dates and the view counter.