Idealista All-in-one Scraper - Properties, Prices & Agencies avatar

Idealista All-in-one Scraper - Properties, Prices & Agencies

Pricing

from $0.70 / 1,000 property scrapeds

Go to Apify Store
Idealista All-in-one Scraper - Properties, Prices & Agencies

Idealista All-in-one Scraper - Properties, Prices & Agencies

Scrape Idealista real estate listings across Spain, Italy and Portugal — for sale or rent. Extract prices, size (m²), rooms, photos, energy rating, coordinates, agency details and phone numbers, by URL or filters. Export to JSON, CSV or Excel. No login or API key required.

Pricing

from $0.70 / 1,000 property scrapeds

Rating

0.0

(0)

Developer

Raven

Raven

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

Idealista Scraper — Properties, Prices, Photos & Agency Contacts (Spain, Italy, Portugal)

Extract real-estate listings from Idealista — the biggest property portal in Spain, Italy and Portugal — as clean, structured data. Scrape for sale and for rent, homes, new developments, offices, garages, land and more. Get prices, €/m², sizes, rooms, full descriptions, whole photo galleries, energy certificates, GPS coordinates and advertiser/agency details, ready to export to JSON, CSV or Excel.

Pay-per-result — from $0.70 per 1,000 properties. No login, no Idealista API key, no code, and no proxies to configure. Point the scraper at a search, a single property, a property code, or an agency — and get rows back.


What does this Idealista Scraper do?

Idealista has no open public API — its official data feed is partner-only and gated. This actor is the practical Idealista API alternative: it reads the same pages you see in your browser and returns them as structured records. It works across all three markets — idealista.com (Spain), idealista.it (Italy) and idealista.pt (Portugal) — from one actor.

ModeWhat you give itWhat you get back
🔎 Search resultsAny Idealista search URL, or filters (location, operation, type, price, size…)One row per listing, with pagination handled automatically
🏠 Property detailA property URL (/inmueble/, /immobile/, /imovel/) or a property codeThe full listing: description, every feature, energy certificate, price drops, the complete photo gallery, coordinates
🏢 Agencies / advertisersAn agency /pro/ URL or slug — or a whole searchOne de-duplicated row per agency: profile, active-listing count, years on Idealista
📞 Phone revealfetchPhones: trueThe advertiser's phone number, when published
🔄 MonitoringmonitoringMode: trueOnly listings you haven't seen in previous runs — a daily new-listing feed

Why use this Idealista Scraper?

  • All three countries in one actor — Spain, Italy and Portugal, same input, same output schema.
  • 40+ fields per property — price, €/m², explicit price-drop amount and percentage, size, rooms, bathrooms, floor, condition, year built, energy certificate, reference, full description, feature list, coordinates, the complete tagged photo gallery, and advertiser/agency details.
  • Go past Idealista's ~1,800-result cap — a single search stops at ~1,800 rows; turn on splitByPrice and the actor splits the query into price bands and collects far more, de-duplicated.
  • Agency & advertiser data — advertiser name, professional/private flag, agency logo, microsite, profile URL and internal id; or one clean row per agency with its listing count and client-since year.
  • Phone numbers — reveal the advertiser's phone for each property (opt-in).
  • Monitoring mode — return only new listings since the last run, perfect for daily alerts and incremental archives.
  • Search by URL or by filters — paste a search URL you built on the website, or fill in location + operation + propertyType + filters and let the actor build the search.
  • Anti-bot handling built in — Idealista is protected by DataDome; residential proxy rotation, geo-matching (Spain for .com, Italy for .it, Portugal for .pt) and automatic retries are all included, so you never touch proxies.
  • Pay only for results — no monthly subscription; proxy and compute are included in the per-result price.

How it compares

Official Idealista APITypical Idealista scrapersThis actor
AccessPartner-only, approval requiredPublicPublic, no key
CountriesUsually Spain-focusedOften one countrySpain + Italy + Portugal
Past the ~1,800 capn/aUsually silently truncatedPrice-band split (opt-in)
Agency profiles + phonesRestrictedRarelyIncluded (opt-in)
New-listings monitoringn/aRarelyBuilt in
PricingQuota/contractOften a monthly feePay-per-result, from $0.70/1k

Competitor-column claims are generalisations; individual actors vary.


What data can you extract from Idealista?

Property fields

GroupFields
IdentitypropertyCode, url, title, subtitle, operation (sale/rent), propertyType, reference, country, scrapedAt
Priceprice, priceByArea (€/m²), priceDrop (previousPrice, percentage)
Propertysize (m²), rooms, bathrooms, floor, condition, yearBuilt, energyCertificate (A–G), newDevelopment, features[], description
Locationaddress, latitude, longitude, locationId
Mediathumbnail, numPhotos, images[] (url, urlWebp, tag, isPlan, width, height, multimediaId), hasVideo, hasPlan, has3DTour
Advertiser (contactInfo)commercialName, contactName, userType (professional/private), phone / phones[], profileUrl, micrositeShortName, agencyLogo, commercialDataId

Agency fields (agency mode)

agencyName, agencySlug, commercialDataId, totalListings, clientSince, publicationQuality, agencyLogo, videoUrl, videoThumbnail, address, agencyWebUrl, country, scrapedAt.


How to scrape Idealista step by step

  1. Open the actor in the Apify Console and click Try for free (new accounts get $5 in free usage credits every month — enough for thousands of listings).
  2. Choose how to target listings:
    • Easiest: on idealista.com (or .it / .pt) set your filters, copy the URL from the address bar, and paste it into Idealista URLs (startUrls).
    • Or fill in Location, Country, Operation and Property type and let the actor build the search.
  3. (Optional) Turn on Scrape full detail for each result (fetchDetails) for the complete description, features, energy certificate, full gallery and coordinates.
  4. (Optional) Turn on Reveal phone numbers (fetchPhones) or Output agencies instead of properties (scrapeAgencies).
  5. Set Max results and click Start.
  6. When the run finishes, download the dataset as JSON, CSV, Excel, XML or HTML, or pull it via the Apify API.

Idealista caps any single search query at roughly 1,800 results (about 60 pages). Ask for a whole city and you'll silently miss most of the market. Turn on Bypass the ~1,800 result limit (splitByPrice) and the actor automatically re-runs your search across a ladder of price bands (0–100k, 100k–200k, … 3M+), then de-duplicates by property code — so you collect far more of the market from a single input.

{ "startUrls": [{ "url": "https://www.idealista.com/venta-viviendas/madrid-madrid/" }], "splitByPrice": true, "maxItems": 0 }

How to get only new listings (daily monitoring)

Turn on Monitoring mode (monitoringMode) and the actor remembers every property code it has already emitted (in the actor's key-value store). On the next run of the same actor it returns only listings it hasn't seen before — a ready-made new-listing feed you can schedule daily and pipe into Slack, a sheet, or a CRM.

How to scrape real-estate agencies and phone numbers

  • Set Output agencies instead of properties (scrapeAgencies: true) on a search URL and the actor walks the results, collects every unique advertiser microsite, and returns one clean row per agency — name, listing count, client-since year, logo and profile URL. A ready-made B2B lead list.
  • Or scrape specific agencies directly with Agency slugs (the part after /pro/).
  • Set Reveal phone numbers (fetchPhones: true) to add the advertiser's phone number to each property record when one is published.

Input parameters

FieldKeyDescription
Idealista URLsstartUrlsSearch, property or agency URLs — type auto-detected. The most reliable input.
LocationlocationLocation slug as it appears in an Idealista URL, e.g. madrid-madrid, barcelona-barcelona.
Countrycountryes (idealista.com), it (idealista.it) or pt (idealista.pt).
Operationoperationsale or rent.
Property typepropertyTypehomes, newDevelopments, offices, premises, garages, lands, storageRooms, buildings, rooms.
Sort bysortByrelevance, mostRecent, lowestPrice, highestPrice, biggest, smallest, highestPriceReduction
Price / sizeminPrice, maxPrice, minSize, maxSizeNumeric filters.
Bedroomsbedroomsstudio, 1, 2, 3, 4 (multiple).
Home typehomeTypeflat, penthouse, duplex, detachedHouse, countryHouse, studio (multiple).
ConditionconditionnewDevelopment, good, renew (multiple).
FloorfloortopFloor, intermediateFloor, groundFloor (multiple).
AmenitiesamenitiesairConditioning, lift, terrace, garage, garden, swimmingPool, storageRoom, fittedWardrobes, exterior, luxury, accessible, seaViews.
Published withinpublicationDate24h, 48h, week, month.
Property codespropertyCodesScrape specific properties by code.
Agency slugsagencySlugsScrape agency profiles by slug.
Full detailfetchDetailsExpand every search result with its full property page.
Advertiser detailsfetchContactsFetch the advertiser block (on by default).
Reveal phonesfetchPhonesReveal the advertiser's phone number.
Agencies modescrapeAgenciesOne row per unique agency found in a search.
MonitoringmonitoringModeOnly listings not seen in previous runs.
Bypass capsplitByPriceSplit the search into price bands to go past ~1,800.
Max resultsmaxItemsCap the number of records (0 = no limit).
Max pagesendPageStop each search after N pages (~30 per page).
ConcurrencymaxConcurrencyParallel workers, 1–20.
Max retriesmaxRetriesProxy-rotation retries per blocked request.
ProxyproxyConfigurationResidential recommended; country auto-matched to the site.

Ready-to-paste input recipes

All flats for sale in Madrid, cheapest first, with full detail

{ "location": "madrid-madrid", "operation": "sale", "propertyType": "homes", "homeType": ["flat"], "sortBy": "lowestPrice", "fetchDetails": true, "maxItems": 200 }

A filtered search you built on the website, with phone reveal

{ "startUrls": [{ "url": "https://www.idealista.com/alquiler-viviendas/barcelona-barcelona/con-precio-hasta_1500/" }], "fetchDetails": true, "fetchPhones": true }

New listings only (schedule this daily)

{ "startUrls": [{ "url": "https://www.idealista.com/venta-viviendas/valencia-valencia/" }], "monitoringMode": true, "maxItems": 0 }

Go past the ~1,800-result cap for a whole city

{ "startUrls": [{ "url": "https://www.idealista.com/venta-viviendas/madrid-madrid/" }], "splitByPrice": true, "maxItems": 0 }

Agencies operating in an area (lead list)

{ "startUrls": [{ "url": "https://www.idealista.com/venta-viviendas/madrid-madrid/" }], "scrapeAgencies": true }

Italy rentals built from filters

{ "country": "it", "location": "milano-milano", "operation": "rent", "propertyType": "homes", "minSize": 60, "bedrooms": ["2", "3"], "amenities": ["lift", "terrace"], "maxItems": 150 }

Specific properties by code, in Portugal, with phones

{ "country": "pt", "propertyCodes": ["33528290", "33500123"], "fetchDetails": true, "fetchPhones": true }

Output examples

Property record

{
"propertyCode": "111901446",
"url": "https://www.idealista.com/inmueble/111901446/",
"title": "Piso en venta en Calle del Príncipe de Vergara",
"subtitle": "Ciudad Jardín, Madrid",
"operation": "sale",
"propertyType": "homes",
"price": 1250000,
"priceByArea": 8117,
"priceDrop": { "previousPrice": 1350000, "percentage": 7 },
"size": 154,
"rooms": 4,
"bathrooms": 2,
"floor": "4ª planta exterior con ascensor",
"condition": "good",
"yearBuilt": 1971,
"energyCertificate": "D",
"reference": "DG 220077",
"description": "Gilmar le presenta en exclusiva este magnífico piso de 154 m²...",
"features": ["154 m² construidos", "4 habitaciones", "2 baños", "Terraza", "Trastero", "Aire acondicionado"],
"numPhotos": 28,
"images": [
{ "url": "https://img4.idealista.com/.../1453959145.jpg", "tag": "Salón", "isPlan": false, "width": 1500, "height": 1000 }
],
"latitude": 40.4419,
"longitude": -3.6772,
"contactInfo": {
"commercialName": "Gilmar Avenida de América",
"userType": "professional",
"phone": "+34919382490",
"profileUrl": "https://www.idealista.com/pro/gilmaravdadeamerica/",
"micrositeShortName": "gilmaravdadeamerica",
"commercialDataId": "130154577"
},
"country": "es",
"scrapedAt": "2026-07-09T18:20:00+00:00"
}

Agency record (scrapeAgencies: true)

{
"type": "agency",
"url": "https://www.idealista.com/pro/gilmaravdadeamerica/",
"agencySlug": "gilmaravdadeamerica",
"agencyName": "Gilmar Avenida de América",
"commercialDataId": "130154577",
"totalListings": 214,
"clientSince": 2001,
"publicationQuality": 98,
"agencyLogo": "https://st3.idealista.com/.../logo.jpg",
"country": "es",
"scrapedAt": "2026-07-09T18:20:00+00:00"
}

How much does it cost to scrape Idealista?

This actor is pay-per-result: you pay a small fixed amount for each record saved to your dataset, plus a negligible actor-start fee. There is no monthly subscription, and residential proxy and compute are included in the price — no separate proxy bill.

EventFree planPaid plans (from)
Property scraped$0.85 / 1,000$0.70 / 1,000
Agency scraped$2.50 / 1,000$1.50 / 1,000
Phone number revealed$2.50 / 1,000$1.50 / 1,000
Actor start$0.00005 per GB$0.00005 per GB

Paid-plan prices fall as your Apify subscription tier rises (Bronze → Diamond). Worked examples on the free-plan rate:

What you scrapeCost
100 properties~$0.09
1,000 properties~$0.85
1,000 properties + phone revealup to ~$3.35
1,000 agencies~$2.50
10,000 properties~$8.50

Free-plan translation: the Apify Free plan includes about $5 in usage credits every month, which is roughly 5,800 properties per month at no cost. Phone reveal and agency profiles are only charged when data is actually returned — you are never charged for a phone that isn't published, or for a search that returns nothing.


Integrations

Run this scraper on a schedule and connect the output to the rest of your stack — no glue code needed:

  • Make, Zapier and n8n — trigger a run or react to new dataset items.
  • Google Sheets, Airtable, Slack, Discord — push fresh listings automatically.
  • Webhooks — fire your own endpoint when a run finishes.
  • API clients — official JavaScript/TypeScript and Python clients, plus a plain REST API and CLI.
  • Schedules — keep a market refreshed daily/weekly, ideal with monitoring mode.

Use with AI agents (MCP)

This actor works with the Apify MCP Server, so AI assistants and agents (Claude, ChatGPT, Cursor and others) can call it directly as a tool. Example natural-language prompt:

"Scrape the 50 cheapest flats for sale in Valencia from Idealista and give me the price, size in m² and the agency's phone number for each."


  • 🏠 Real-estate investors & flippers — track new listings and price drops across a city daily.
  • 📊 Market & price analysts — build €/m² benchmarks by neighbourhood, city or region.
  • 🏢 Proptech & CRM vendors — feed live Iberian inventory into your product.
  • 📇 Estate agents & lead-gen teams — export agency profiles and advertiser phone numbers.
  • 🎓 Researchers, journalists & NGOs — study housing supply and pricing with real data.
  • 🤖 AI & data teams — clean JSON to power dashboards, models and agents.

Scraping publicly available data — like the listings anyone can browse on Idealista — is generally lawful, and this actor only collects public information. But your results can contain personal data (for example an advertiser's name or phone number), which is protected by the GDPR in the EU (and LOPDGDD/RGPD locally) and by similar laws elsewhere. Only collect and store personal data when you have a lawful basis, keep only what you need, and always respect Idealista's Terms of Service. This actor is not affiliated with Idealista.

For a deeper overview, see Apify's guide: Is web scraping legal?


FAQ

Do I need an Idealista account or API key?

No. There's no login and no Idealista API key. Just paste a URL or set a few filters.

Does Idealista have a public API?

Idealista's official data API is partner-only and approval-gated, so it isn't practical for most users. This actor is the accessible Idealista API alternative — it returns the same public listing data as structured JSON/CSV.

Which countries and sites are supported?

Spain (idealista.com), Italy (idealista.it) and Portugal (idealista.pt) — all from one actor. The proxy egress country is matched to the site automatically.

Can I scrape both properties for sale and rentals?

Yes. Set operation to sale or rent, or just paste a for-sale or rental search URL — the actor follows whatever the URL asks for.

Turn on Bypass the ~1,800 result limit (splitByPrice). The actor re-runs your search across price bands and de-duplicates, collecting far more of the market.

Can I get real-estate agencies with phone numbers?

Yes. Use scrapeAgencies: true to get one row per agency (with listing count and client-since year), and fetchPhones: true to add advertiser phone numbers to property records.

Do I need proxies or a proxy subscription?

No. Residential proxy rotation, country geo-matching and retries are built in and included in the per-result price.

Will I be charged for a search that returns nothing?

No. You're charged per property or agency actually saved to your dataset (plus a tiny actor-start fee). Zero-result runs cost essentially nothing, and a phone is only charged when one is genuinely returned.

Why are some fields (coordinates or phone) empty?

Some advertisers hide the exact address, so coordinates come back empty and only the neighbourhood/city is available. Phone numbers appear only when the advertiser publishes one and fetchPhones is on. Detail-only fields (full description, features, energy certificate, gallery) require fetchDetails: true.

How much does it cost to scrape Idealista?

From $0.70 per 1,000 properties on paid plans ($0.85 on the free plan). Proxy and compute are included. See the pricing section above for worked examples.

Can I export the data to CSV or Excel?

Yes. Every run stores results in a dataset you can download as JSON, CSV, Excel, XML or HTML, or read via the Apify API.

Can I scrape a single property by URL or code?

Yes. Paste a property URL into startUrls, or list codes in propertyCodes with the matching country.

Can I get only new listings for a daily alert?

Yes. Turn on monitoringMode and schedule the actor — it returns only listings it hasn't seen in previous runs.

How do I filter by price, rooms or property type?

Either build the search with the minPrice/maxPrice, bedrooms, homeType, condition, amenities and propertyType fields, or apply the filters on idealista.com and paste the resulting URL — both work.

Can I use this with Make, Zapier or n8n?

Yes — via Apify's native integrations, webhooks, or the REST API. Combine it with Schedules for hands-off daily exports.


Feedback & support

Found a bug or need a new field or filter? Open an issue on the actor's Issues tab in the Apify Console — include your input and run link and we'll take a look.


More scrapers by this developer


Tags: idealista scraper, idealista api, idealista.com scraper, idealista.it scraper, idealista.pt scraper, scrape idealista, idealista spain scraper, idealista italy scraper, idealista portugal scraper, spain real estate scraper, italy real estate scraper, portugal real estate scraper, iberia property data, madrid property scraper, barcelona property scraper, valencia property scraper, milan property scraper, lisbon property scraper, alquiler idealista, venta viviendas, immobili idealista, comprar casas, real estate api, property listing scraper, real estate lead generation, real estate agency contacts, agent phone scraper, property price tracker, real estate monitoring, 1800 cap bypass, property market intelligence, real estate json csv export