Idealista.com avatar

Idealista.com

Pricing

from $4.30 / 1,000 results

Go to Apify Store
Idealista.com

Idealista.com

Are you looking for a property in Spain or Portugal or Italy? With idealista it's easier, with more than 1.400.000 listings of flats and houses for sale or rent.

Pricing

from $4.30 / 1,000 results

Rating

1.4

(2)

Developer

Lukáš Širhal

Lukáš Širhal

Maintained by Community

Actor stats

13

Bookmarked

742

Total users

23

Monthly active users

a day ago

Last modified

Share

Actor - Idealista Scraper

Idealista scraper

Since Idealista doesn't provide a public API, this actor retrieves property data from Idealista (Spain, Portugal, Italy).

Features

  • Scrape property details — price, price per m², size, floor, rooms, bathrooms, description, energy certification, lift/parking/feature flags, location breakdown (district, municipality, province, neighborhood), photos, videos, 3D tours, contact info, and more.
  • Scrape for-sale or rental properties — target sale or rent listings directly.
  • Search by location — use a city or district name to search.
  • Filter by URL — paste any Idealista search URL (with filters already applied) as a startUrl.
  • Advanced filters — bedrooms, bathrooms, size range, home type, floor height, condition, and features.

Note: Due to Idealista's privacy policy, exact property locations may be hidden. In those cases the scraper returns the map center coordinates accessible from the property detail.

Input Parameters

FieldTypeRequiredDescription
countryStringes (Spain), pt (Portugal), it (Italy)
operationStringsale or rent
proxyObjectProxy configuration — RESIDENTIAL proxies required
districtStringLocation name to search, e.g. Madrid. Required if no startUrl provided.
propertyTypeStringhomes (default), newDevelopments, bedrooms, offices, premises, transfers, garages, lands, storageRooms, buildings
startUrlArrayList of Idealista property detail or search URLs
maxItemsIntegerMaximum number of results to return
endPageIntegerLast page number to scrape (default 50)
fetchDetailsBooleanFor each search result, also fetch the full property detail page (adds description, energyCertification, and more accurate floor/hasLift/location fields). Slower and uses one extra request per property. Default false.
minSizeStringMinimum property size in m², e.g. "60"
maxSizeStringMaximum property size in m², e.g. "200"
bedroomsArraye.g. ["studio","1","2","3","4"]
bathroomsArraye.g. ["1","2","3"]
homeTypeArrayflat, penthouse, duplex, detachedHouse, semiDetachedHouse, terracedHouse, countryHouse, apartment, villa, loft
conditionArraynewDevelopment, good, renew
propertyStatusArraybareOwnership, tenanted, illegallyOccupied, free
floorHeightsArraytopFloor, intermediateFloor, groundFloor
featuresArrayairConditioning, builtinWardrobes, elevator, exteriorDomesticSpace, balcony, terrance, exterior, garage, garden, swimmingPool, storeRoom, accessible, luxury
onlyNewestBooleanReturn only newest listings
debugLogBooleanEnable verbose debug logging

This solution requires Proxy servers. Use Apify Proxy with the RESIDENTIAL group or your own residential proxies.

Example Result

{
"url": "https://www.idealista.it/immobile/35994897/",
"title": "Flat / apartment in Via della Balduina, 63, Centro di Balduina, Roma",
"id": "35994897",
"price": 830000,
"size": 220,
"priceByArea": 3773,
"baths": 3,
"rooms": 10,
"address": "Flat / apartment in Via della Balduina, 63, Centro di Balduina, Roma",
"hideAddress": false,
"latitude": 41.9166671,
"longitude": 12.4417612,
"typology": "flat",
"subTypology": null,
"description": "BALDUINA | Refined 210 sq m apartment with livable terraces, garage, and cellar...",
"energyCertification": null,
"floor": "3",
"status": "good",
"newDevelopment": false,
"hasLift": true,
"externalReference": null,
"district": "Balduina",
"municipality": "Roma",
"province": "Roma",
"neighborhood": "Centro di Balduina",
"locationId": "0-EU-IT-RM-01-001-097-38-002",
"parkingSpace": {
"hasParkingSpace": true,
"isParkingSpaceIncludedInPrice": true
},
"features": {
"hasSwimmingPool": false,
"hasTerrace": false,
"hasAirConditioning": true,
"hasBoxRoom": true,
"hasGarden": false
},
"labels": [
{ "name": "bright", "text": "Bright" }
],
"highlight": "Top",
"photos": [
{
"url": "https://img4.idealista.com/blur/480_360_mq/0/id.pro.es.image.master/a9/f6/68/1356345714.webp",
"tag": "facade",
"localizedName": "Facade",
"deeplinkUrl": null
}
],
"videos": [],
"3dtour": [],
"listingUpdate": "2024-03-15T10:00:00.000Z",
"listingUpdateText": "Updated 2 days ago",
"priceDown": null,
"priceDownPercentage": null,
"contacts": {
"commercialName": "Grupo Ibosa",
"contactName": "NR Village homes",
"phone1": {
"phoneNumber": "919388896",
"formattedPhone": "919 38 88 96",
"prefix": "34",
"phoneNumberForMobileDialing": "+34919388896",
"nationalNumber": true,
"formattedPhoneWithPrefix": "+34 919 38 88 96"
}
}
}

Note: By default, search results (district or search-URL scraping) return the data included directly in the search response — it does not include everything a single property page has. Enable fetchDetails to fetch the full detail page for every search result instead:

  • energyCertification is only available from the detail page — there's no way to get it from search results, fetchDetails or not.
  • description, size, and priceByArea are present in both search results and detail pages.
  • neighborhood, parkingSpace, newDevelopment, and highlight are only present in search results — they're not returned by the detail endpoint at all, so scraping via a direct property URL (/inmueble/, /immobile/, /imovel/) or with fetchDetails enabled won't populate them.
  • district/municipality/province use a different, coarser location breakdown on the detail page (it's approximated from Idealista's administrativeAreaLevel1-3 fields, which don't line up cleanly with the search response's own district/municipality/province).
  • features (pool, terrace, air conditioning, etc.) is less complete from the detail page — some flags (terrace, air conditioning) only exist there as free-text, not structured fields, so they're left out to avoid unreliable text-matching.
Tip

To use a filtered search: go to Idealista, apply filters on the search page, then copy and paste the URL as a startUrl entry.

Bugs, fixes, updates and changelog

If you have any feature requests you can create an issue from here. Here is the changelog with new features and bugfix info.