Apify Store
AS
Apify Store
/igolaizola/idealista-scraper

Idealista Scraper - Real Estate Data for Spain, Italy, Portugal

Extract real estate data from Spain, Italy, and Portugal on idealista.com, including pricing, property features, and contact information. Scrape listings for residential, office, and commercial proper

liveasyncunknown~30s typical
real estateautomationidealista
$0.0011
per result + $0.005 call
plus $0.001 platform fee per run
Actor charges $0.0009 per result; Cracked adds 25% plus a $0.005 call fee
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /igolaizola/idealista-scraper for me.

Input

FieldTypeDescription
maxItemsintegerMaximum number of items to scrape (0 for unlimited). Large searches use the default iterator to continue past Idealista's 2500-result page window. default 50
operation*string (sale | rent)Operation type to search (sale, rent) default "sale"
propertyType*string (newDevelopments | homes | bedrooms | vacationRentals | garages | storageRooms)Property type to search (newDevelopments, homes, bedrooms, vacationRentals, garages, storageRooms, offices, premises, transfers, lands, buildings) default "homes"
country*string (es | pt | it)Select your country default "es"
locationstringLocation to search. Use a city name (e.g. Madrid), an Idealista Location ID (e.g. 0-EU-ES-28-07-001-079), or leave empty to scrape every province in the selected country. Ignored when Locations has at least one value. Use [Idealista Location Search Tool](https://igolaizola.github.io/idealista-scraper) to find a specific Location ID. default ""
locationsarrayLocations to search for properties. When this list has at least one value, the actor searches each location in order instead of using Location.
postalCodesarrayPostal codes to search in order. Idealista resolves each one to a matching search area. Takes precedence over location, locations, and coordinates. maxItems applies globally.
latitudenumberLatitude of the center point for coordinate-based search. Use together with longitude. When set, coordinates take precedence over location and locations.
longitudenumberLongitude of the center point for coordinate-based search. Use together with latitude.
distanceKmintegerSearch radius around the latitude/longitude point, in kilometers. default 20
propertyCodesarrayList of Idealista property codes to fetch directly. When set, location and all filters are ignored. Each result will include '_details' (always) and '_stats' if fetchStats is enabled. default []
sortBystring (relevance | closest | lowestPrice | highestPrice | mostRecent | leastRecent)Sorting method for results default "mostRecent"
fetchDetailsbooleanWhether to fetch detailed information for each property. Each property will have an extra field '_details' in the results. This field is still in beta, use it with caution. default false
fetchStatsbooleanWhether to fetch statistics for each property. Each property will have an extra field '_stats' in the results. This field is still in beta, use it with caution. default false
minPricestring (0 | 500 | 550 | 600 | 650 | 700)Minimum price of the property (0 for any) default "0"
maxPricestring (0 | 500 | 550 | 600 | 650 | 700)Maximum price of the property (0 for any) default "0"
minSizestring (0 | 60 | 80 | 100 | 120 | 140)Minimum size of the property (0 for any) default "0"
maxSizestring (0 | 60 | 80 | 100 | 120 | 140)Maximum size of the property (0 for any) default "0"
publicationDatestring ( | Y | T | W | M)Publication date of the property default ""
rentalTypesarrayRental usage type
bedroomsarrayNumber of bedrooms
bathroomsarrayNumber of bathrooms
homeTypearrayHome types to search
conditionarrayCondition types to search
propertyStatusarrayStatus of the property
floorarrayFloor of the property
bankOfferbooleanWhether the property is bank-owned default false
airConditioningbooleanWhether the property has air conditioning default false
fittedWardrobesbooleanWhether the property has fitted wardrobes default false
liftbooleanWhether the property has a lift default false
balconybooleanWhether the property has a balcony default false
terracebooleanWhether the property has a terrace default false
exteriorbooleanWhether the property is exterior default false
garagebooleanWhether the property has garage or parking space default false
gardenbooleanWhether the property has a garden default false
swimmingPoolbooleanWhether the property has a swimming pool default false
storageRoombooleanWhether the property has a storage room default false
accessiblebooleanWhether the property is an accessible property default false
seaViewsbooleanWhether the property has sea views default false
luxurybooleanWhether the property is a luxury home default false

Call it

curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
  -H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
  -d '{"provider":"apify","endpoint":"/igolaizola/idealista-scraper","input":{"maxItems":3,"operation":"sale","propertyType":"homes","country":"es"},"wait":false}'
poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."
cli
npx cracked-ai run -p apify -e /igolaizola/idealista-scraper -i '{"maxItems":3,"operation":"sale","propertyType":"homes","country":"es"}' -w 120
mcp
run_tool({ provider: "apify", endpoint: "/igolaizola/idealista-scraper", input: {"maxItems":3,"operation":"sale","propertyType":"homes","country":"es"}, wait: false })

Try it

Runs against your signed-in workspace balance. Sign in if you have not.