Idealista Scraper | 💛 $0.5/1k | No Limit avatar

Idealista Scraper | 💛 $0.5/1k | No Limit

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Idealista Scraper | 💛 $0.5/1k | No Limit

Idealista Scraper | 💛 $0.5/1k | No Limit

⚡ From $0.5/1k 💛 Scrape Idealista property listings from Spain, Italy, Portugal, and France. Extract prices, locations, descriptions, images, property details, and listing URLs from search pages or individual property pages. Export to CSV/JSON

Pricing

from $0.50 / 1,000 results

Rating

5.0

(1)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

1

Bookmarked

10

Total users

2

Monthly active users

14 days ago

Last modified

Share

Idealista Scraper: property listings from Spain, Italy, Portugal and France with prices, sizes, coordinates and photos

Idealista Scraper turns any Idealista search page or city search into a spreadsheet of property listings. It is for investors, agents, analysts and proptech teams who track asking prices, rents and inventory. Each row has the price, size, rooms, bathrooms, address, coordinates, description, photos and the listing URL. Paste a search URL from idealista.com, idealista.it, idealista.pt or idealista.fr, or search by country, city, property type and sale or rent.

  • Four countries, one input. Spain (es), Italy (it), Portugal (pt) and France (fr). The country, language and filters are read from the URL you paste.
  • Keep your filters. Set up a search on Idealista, copy the URL, and the Actor reproduces it. Or use structured filters: price, size, rooms, bathrooms, photos, floor plan, elevator, garage, heating, air conditioning and more.
  • Past the 2,450-result page cap. A single Idealista search stops paginating at about 2,450 listings. With maxResults above that, the Actor splits large searches into price ranges and keeps going.
  • Optional full detail. Turn on includeDetails for the full property record, includeMultimedia for the complete photo set, and includeRecommendations for similar listings.
  • Pay per result, no subscription. $1 per 1,000 results plus a $0.005 start fee. No Idealista account, API key or proxy setup. Export to JSON, CSV, Excel or Google Sheets.

Scope: This Actor covers Idealista in Spain, Italy, Portugal and France. For Italian listings on another portal, use Subito Real Estate Scraper. For UK sold prices and agent branches, use Rightmove Sold Listings Scraper and Rightmove Branch Scraper.

What can you do with Idealista Scraper?

GoalHow
Compare prices across citiesRun one search per city and compare price against size (price per square meter) in a spreadsheet.
Watch a market over timeSave the search as a task, schedule it, and compare runs by propertyCode to find new, removed and repriced listings.
Build an investment shortlistFilter by minPrice, maxPrice, minSize and minRooms, then map the results with latitude and longitude.
Track rentsSet operation to rent and collect price per area and propertyType.
Find commercial and niche stockUse propertyType values offices, premises, garages, lands, buildings, rooms or newDevelopments.
Collect photos and descriptionsRead thumbnail on every row, or turn on includeMultimedia for multimedia.images with tags.
Pull a single listingPaste a property URL into startUrls. The row always includes the full detail record.

How it compares

What you needIdealista ScraperManual copy-pastePage-by-page scrapers
CountriesSpain, Italy, Portugal, FranceAny, one page at a timeOften one country
Listings per searchBeyond 2,450 by splitting into price rangesA few pagesUsually stops at Idealista's cap
Your own Idealista URLFilters are read from the URLYesVaries
Coordinateslatitude and longitude when Idealista has themNoVaries
Raw data for analysisClean fields plus the raw listing and detail JSONNoVaries
PricePay per resultYour timeVaries

Quick start

  1. Click Try for free and sign in to Apify.
  2. Paste an Idealista search URL into Idealista URLs, or leave it empty and choose a country, property type and city.
  3. For a first run, set Maximum results per query to 20.
  4. Click Start. When the run finishes, open the Output tab and export the data.
{
"startUrls": [{ "url": "https://www.idealista.it/vendita-uffici/genova-genova/con-prezzo-min_120000/" }],
"maxResults": 20
}

Input

Search by URL, or by location (country, operation, propertyType and locationQuery).

FieldTypeDefaultEffect
startUrlsArrayEmptyIdealista search pages or single property pages. Country, language and filters come from the URL.
countryString"it"es, it, pt or fr. Used for location searches.
operationString"sale"sale or rent. Location searches only.
propertyTypeString"homes"homes, offices, premises, garages, lands, buildings, rooms or newDevelopments.
locationQueryStringEmptyCity or area name, for example Genova. The Actor looks up Idealista's matching location.
locationIdsArray of stringsEmptyIdealista location IDs, if you already have them. Used instead of locationQuery.
locationSelectionModeString"best"When a name has several matches: best, all or exact.
maxResultsInteger100Maximum listings saved per URL or location search.
includeDetailsBooleanfalseOne extra request per listing for the full detail record. Slower.
includeMultimediaBooleanfalseOne extra request per listing for the full media set.
includeRecommendationsBooleanfalseAdds up to 3 similar listings from Idealista to each row.
minPrice, maxPriceIntegerEmptyPrice range in the listing currency.
minSize, maxSizeIntegerEmptySize range in square meters.
minRooms, maxRoomsIntegerEmptyRoom range, where Idealista supports it for the property type.
minBathroomsIntegerEmptyMinimum bathrooms.
hasPhotos, hasPlan, exterior, elevator, airConditioning, garage, heating, accessible, securityBooleanfalseOnly listings with that feature, where Idealista supports the filter.
proxyConfigurationObjectApify ResidentialDefaults to residential proxies in the country being scraped.

Advanced fields (itemsPerPage, searchConcurrency, maxRetries, requestTimeoutSeconds, delaySeconds, order, sort, quality, gallery, debug) are in the input form with their defaults. Filters in the table apply to location searches. With a URL, Idealista's own filters in the URL are used.

Ready-to-run examples

Offices for sale in Genoa, from a URL

{
"startUrls": [{ "url": "https://www.idealista.it/vendita-uffici/genova-genova/con-prezzo-min_120000/" }],
"maxResults": 500
}

Rentals in a Spanish city, by location

{
"country": "es",
"operation": "rent",
"propertyType": "homes",
"locationQuery": "Madrid",
"minRooms": 2,
"maxPrice": 1800,
"maxResults": 300
}

Full records with all photos

{
"country": "pt",
"operation": "sale",
"propertyType": "homes",
"locationQuery": "Lisboa",
"maxResults": 50,
"includeDetails": true,
"includeMultimedia": true
}

Output

Results go to the run's default dataset. Export as JSON, CSV, Excel, XML or HTML. The Overview view shows the main columns.

This is a real row from an Italian search, with the description and image list shortened:

{
"id": "35585970",
"propertyCode": "35585970",
"url": "https://www.idealista.it/immobile/35585970/",
"country": "it",
"operation": "sale",
"propertyType": "chalet",
"price": 37000,
"currency": "EUR",
"size": 172,
"rooms": 6,
"bathrooms": 2,
"address": "Detached house in Località Scabbiabella, 24, Torriglia",
"municipality": "Torriglia",
"province": "Genova",
"latitude": 44.5184183,
"longitude": 9.1172171,
"description": "Scabbiabella – Semi-detached two-level house...",
"thumbnail": "https://img4.idealista.it/...",
"multimedia": {
"images": [
{ "url": "https://img4.idealista.it/...", "tag": "views" },
{ "url": "https://img4.idealista.it/...", "tag": "corridor" }
]
},
"features": {
"hasSwimmingPool": false,
"hasTerrace": true,
"hasAirConditioning": false,
"hasBoxRoom": false,
"hasGarden": false
},
"sourceUrl": "https://www.idealista.it/en/vendita-case/genova-provincia/",
"scrapedAt": "2026-07-11T14:14:42.211Z",
"status": "success"
}

Other fields on every row: extendedPropertyType, priceInfo, contactInfo, rawListing (the search payload) and rawDetail (the detail payload, empty unless details were requested). recommendations is added when requested.

Notes on fields

  • price is the advertised price in currency (EUR). For rentals it is the monthly rent.
  • size is in square meters.
  • Missing values are null. Coordinates, bathrooms, features and contact data depend on the listing.
  • Each listing is saved once per search. The same listing can appear again if it matches another URL in the same run.
  • If a URL fails, the Actor saves a row with status set to failed, the sourceUrl and an error message. Failed rows count as dataset items for pricing.
  • Dates use UTC (scrapedAt).

Track Idealista listings over time with scheduled runs

Most of the value comes from running the same search again and comparing. Apify can run the actor for you on a schedule and send the results wherever you need them.

1. Save your input as a task

Open the actor, set your search URLs or locations and options, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.

2. Schedule the task

In Apify Console, go to Schedules, click Create new, choose how often to run (for example daily at 06:00 in your time zone), and add your task. See Schedules and How to create a schedule.

Watch how to schedule an Actor:

Or schedule a saved task:

Common schedules:

Use caseFrequencyCron expression
New listings alertsDaily0 6 * * *
Price drop monitoringDaily0 0 * * *
Market reports by cityWeekly (Monday)0 6 * * 1
Fast marketsTwice a day0 6,18 * * *

3. Send the results to a spreadsheet

Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:

4. Compare runs

  • New listings: ids that were not in the previous run.
  • Price drops: price per id over time. Rentals compare monthly rent.
  • Removed listings: ids that disappeared between runs.
  • Price per square meter: price divided by size, grouped by municipality or province.

FAQ

How many listings can I get?

Idealista paginates a search up to about 2,450 results. Set maxResults higher than that and the Actor splits a large search into price ranges to collect more. To go further still, run several narrower searches, for example one per district.

Why did I get fewer results than my limit?

The search itself has fewer listings. The log shows the total Idealista reported. Narrow filters reduce it further.

Should I turn on includeDetails?

Search results already include price, size, rooms, address, coordinates and a thumbnail. Turn on includeDetails when you need the full property record. It makes one extra request per listing, so runs are slower.

Can I scrape a single property page?

Yes. Paste the property URL into startUrls. The row is built from the full detail record.

Does it support sale and rent?

Yes. Use operation for location searches, or paste the sale or rent URL.

Do I need proxies, an Idealista account or an API key?

No. The Actor uses Apify Residential Proxy in the right country by default and does not log in.

The Actor collects publicly visible listing data. You are responsible for how you use it, including Idealista's terms, database rights and laws such as GDPR, especially for contact details.

What about other real estate portals?

For Italian classifieds, use Subito Real Estate Scraper. For the UK, use Rightmove Sold Listings Scraper and Rightmove Branch Scraper.

Cost

This Actor uses pay-per-event pricing, with no subscription:

EventPricePer 1,000Charged when
Actor start$0.005n/aOnce per run, per GB of memory.
Result (dataset item)$0.001$1A row is saved to the dataset.
RunCost
100 listings$0.105
1,000 listings$1.005
10,000 listings$10.005

includeDetails and includeMultimedia make runs slower but do not add a separate charge. Set a maximum cost per run in the run options. The Pricing tab always shows the current prices.

Support

Report problems or request features in the Issues tab. Include the run ID, the input and what you expected.

This Actor is not affiliated with or endorsed by Idealista. "Idealista" is a trademark of its owner.