Idealista Scraper — Spain, Portugal & Italy Real Estate avatar

Idealista Scraper — Spain, Portugal & Italy Real Estate

Pricing

from $5.00 / 1,000 property listings

Go to Apify Store
Idealista Scraper — Spain, Portugal & Italy Real Estate

Idealista Scraper — Spain, Portugal & Italy Real Estate

Scrape real estate listings from Idealista.com, the leading property portal in Spain, Portugal, and Italy. Extract price, location, size, rooms, floor, amenities, agency info, and photos for sale and rental properties. Essential for real estate market analysis in Southern Europe.

Pricing

from $5.00 / 1,000 property listings

Rating

5.0

(1)

Developer

Actor stats

0

Bookmarked

10

Total users

1

Monthly active users

2 days ago

Last modified

Share

Idealista Scraper — Spain, Portugal & Italy Real Estate Listings

Idealista Scraper extracts property listings from Idealista search result pages (idealista.com, and the .pt and .it portals) and returns structured data: price, size, rooms, floor, agency name, description and photo URLs. Paste a search URL you already filtered in your browser, set how many listings you want, and download JSON, CSV or Excel. New to it? Try 10 listings first; the input schema suggests this takes about 90 seconds.

Why scrape Idealista?

Idealista is one of the main property portals in Southern Europe. Typical uses:

  • Investors and analysts: build price-per-area and asking-price datasets for a city, district or search filter.
  • Agencies and brokers: see which agencies list in a zone and how competing listings are priced.
  • Proptech and data teams: feed dashboards, valuation models or alerts with fresh listing data.
  • Researchers: snapshot supply for sale and for rent at a point in time and compare it later.

What input does Idealista Scraper accept?

The Actor takes search result URLs. Filter by zone, property type and price on Idealista, copy the URL from your browser and paste it in searchUrls. Examples from the input schema:

{
"searchUrls": [
"https://www.idealista.com/venta-viviendas/madrid-madrid/",
"https://www.idealista.com/alquiler-viviendas/barcelona-barcelona/",
"https://www.idealista.pt/comprar-casas/lisboa/"
],
"maxListings": 100,
"maxPages": 3
}
ParameterTypeDefaultDescription
searchUrlsarray of stringsprefilled with the Madrid sale URLOne or more Idealista search result URLs.
maxListingsinteger0 (prefill 10)Maximum total listings across all URLs. 0 means no cap on the count, so the run is limited only by maxPages.
maxPagesinteger3 (0 to 60)Maximum result pages per URL, about 30 listings per page. 0 means all pages.

The input schema has no proxy field. It notes that the Actor needs a residential proxy configured at Actor level, so you do not enter proxy settings yourself.

A quick test:

{
"searchUrls": ["https://www.idealista.com/venta-viviendas/madrid-madrid/"],
"maxListings": 10,
"maxPages": 1
}

What data does Idealista Scraper return?

Each dataset item is one listing. Fields grouped by block:

BlockFields
CorepropertyCode, url, propertyType, typology, subTypology, operation, status, scrapedAt
Priceprice, formerPrice, priceDropPercentage, priceByArea
Size and layoutsize, rooms, bathrooms, floor, exterior, hasLift
Locationaddress, district, neighborhood, municipality, province, latitude, longitude
Contentdescription, features, parkingSpace
AgencyagencyName, agencyPhone
Mediaimages, hasVideo, has3DTour

Important about empty fields. In the sample run for this Actor, price, size, rooms, floor, exterior, hasLift, description, agencyName and images were filled, while propertyType, typology, operation, bathrooms, the location fields, latitude, longitude, priceByArea and agencyPhone came back null, and features and parkingSpace came back as empty objects. Which fields are filled depends on what the listing page exposes, so check a small run before building a pipeline on a field. images can contain several size variants of the same photo (for example .webp and .jpg).

Abridged real output (description shortened, images cut to two):

{
"propertyCode": "104570830",
"url": "https://www.idealista.com/inmueble/104570830/",
"price": 990000,
"formerPrice": null,
"size": 102,
"rooms": 2,
"bathrooms": null,
"floor": "7",
"exterior": true,
"hasLift": true,
"address": "",
"municipality": null,
"latitude": null,
"longitude": null,
"description": "ATICO DE DOS HABITACIONES CON TERRAZA EN EL BARRIO DE SALAMANCA ...",
"features": {},
"agencyName": "aProperties Real Estate Madrid",
"agencyPhone": null,
"images": [
"https://img4.idealista.com/blur/591_420_mq/0/id.pro.es.image.master/07/b8/da/1477060096.webp",
"https://img4.idealista.com/blur/591_420_mq/0/id.pro.es.image.master/07/b8/da/1477060096.jpg"
],
"hasVideo": true,
"has3DTour": true,
"scrapedAt": "2026-10-13T17:24:05.692036+00:00"
}

How much does it cost to scrape Idealista?

Idealista Scraper uses pay-per-event pricing:

EventPrice
Actor Start (one event per GB of memory, minimum one)$0.001
Property listing (each item in the dataset)$0.005

Worked example with the default 512 MB memory (one start event): 1,000 listings = 1,000 × $0.005 + $0.001 = $5.001. A 100-listing run costs $0.501 and a 10-listing test costs $0.051. With the default maxPages of 3 (about 30 listings per page), one search URL yields roughly 90 listings, about $0.45. To cap spend, set maxListings, and use Apify's maximum cost per run setting. Check the Pricing tab for any discount on your plan.

How to run it via API

curl -X POST "https://api.apify.com/v2/acts/rastriq~idealista-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchUrls":["https://www.idealista.com/venta-viviendas/madrid-madrid/"],"maxListings":50,"maxPages":2}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("rastriq/idealista-scraper").call(run_input={
"searchUrls": ["https://www.idealista.com/alquiler-viviendas/barcelona-barcelona/"],
"maxListings": 50,
"maxPages": 2,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["propertyCode"], item["price"], item["size"])

You can also schedule runs (daily or weekly snapshots), trigger webhooks when a run finishes, connect to Make, Zapier or n8n, export to Google Sheets, or call the Actor from AI agents through the Apify MCP server.

FAQ

How do I control cost? Set maxListings and keep maxPages low. You pay per listing returned plus the small start event.

Can I scrape rentals and sales? Yes, as long as you paste the matching search URL (venta for sale, alquiler for rent on idealista.com).

Does it work outside Spain? The input schema lists idealista.com, idealista.pt and idealista.it, and includes a Portugal example. Test a small run on a given portal before scaling.

Why are some fields null? See the note above: availability depends on the page. The Actor does not guess values.

How often can I run it? As often as you like within your Apify plan. Weekly runs are common for market tracking; compare propertyCode and price between runs to spot changes.

Is it legal? The Actor collects publicly visible listing data. You are responsible for complying with Idealista's terms and with data-protection law (GDPR), especially if you store contact data.

Something broke or a field is missing? Open an issue on the Actor's Issues tab with the URL and run ID. Rastriq maintains the Actor.

🇪🇸 Versión en español

Idealista Scraper descarga anuncios inmobiliarios de Idealista (España, y también los portales de Portugal e Italia) en formato estructurado: precio, superficie, habitaciones, planta, agencia, descripción y fotos. Sirve para analizar el mercado de venta y alquiler de una zona, comparar precios entre barrios, vigilar la oferta de la competencia o alimentar un cuadro de mando.

Cómo se usa. Filtra en Idealista por zona, tipo de inmueble y precio, copia la URL de resultados y pégala en searchUrls. Por ejemplo, https://www.idealista.com/venta-viviendas/madrid-madrid/ para venta en Madrid o https://www.idealista.com/alquiler-viviendas/barcelona-barcelona/ para alquiler en Barcelona. Con maxListings fijas el máximo de anuncios (0 significa sin tope, limitado entonces por maxPages) y con maxPages el número de páginas por URL (unos 30 anuncios por página, 3 por defecto). Empieza con 10 anuncios para ver el formato.

Qué obtienes. Cada resultado incluye propertyCode, url, price, size, rooms, floor, exterior, hasLift, description, agencyName, images, hasVideo, has3DTour y scrapedAt, además de campos de ubicación, tipología y operación. Atención: en la ejecución de muestra algunos campos, como bathrooms, latitude, longitude, municipality o agencyPhone, vinieron a null. Depende de lo que muestre cada anuncio, así que prueba con pocos antes de basar un proceso en un campo concreto.

Precio. Pago por evento: $0,001 por inicio del Actor y $0,005 por anuncio. Mil anuncios cuestan 1.000 × $0,005 + $0,001 = $5,001. Con tres páginas por URL (unos 90 anuncios) el coste ronda los $0,45.

Integración. Puedes lanzarlo por API, programarlo cada semana para ver cómo cambian los precios, enviar los datos a Google Sheets, Make, Zapier o n8n, y exportar a JSON, CSV o Excel.

Uso responsable. El Actor recoge datos públicos de los anuncios. Respeta las condiciones de uso de Idealista y el RGPD si guardas datos de contacto. Para dudas o incidencias, abre un issue en la pestaña Issues del Actor.